|Text:||Programming Languages: Principles and Paradigms, by Allen B Tucker & Robert Noonan, ISBN 987-0-07-286609-4|
An introduction to the principles of programming language design and implementation, syntax, data types, scope, data abstractions, concurrency and Object-Oriented Programming. Prerequisite: CSC 216
This course is fundamental to the understanding of programming languages. By studying the history, development, design and implementation of programming languages, the student gains an understanding of how and why the languages we use contain the features they do, and omit what they omit.
The course will examine formal methods for describing programming language syntax and semantics, and the methods used to translate languages and support them at run time.
Instruction will be through lecture, class discussion, programming projects, and problem-solving.
This class is a mixed undergraduate/graduate section. For graduate students, an additional 100-point graduate project is required. For both classes, grades are assigned based on the percentage of points earned.
|Programming Projects and Homework||250|
|Regular exams (3 @ 100)||300|
|Comprehensive Final Exam||200|
|Graduate (+100 pts)|
The semester point total may vary due to unforeseen circumstances. Any variance will be small. Final grades will be based on these same percentages of the actual total.
There will be several programming assignments of varying difficulty, three regular exams, and a comprehensive final exam, according to this schedule. The final exam will on Friday May 1, at 12:00.
The last day to drop this course is Friday, March 26, 2021.
Graduate students must perform an additional project. The graduate report may be a library research paper, or present the results of the student's own work. The topic must be approved by the instructor. A research paper must be at least 6 pages single-spaced, using reasonable fonts and margins. It must have at least 10 references. A programming project should be accompanied by a short paper (one page is usually sufficient) describing what it does and how to run it. Some possible topics include:
As part of our study of programming languages, we will have several small projects using three important languages which are “off the beaten path.” Software to process these languages will be available in the labs, and are usually available for free online. These projects are given to emphasize concepts in the course, as well as to expand the student's horizons beyond the usual way of doing things in the procedural languages.
Each project will be small. Each language will have one very simple project to give experience running the language processor, and at least one more project which emphasizes interesting features of the language.
Projects should be handed in on time, and late projects are charged 10 points for each day late. However, each student has five free late days which may be spent on any programming project in any combination. Free late days are not transferable, and expire at start of the final exam.
Mississippi College class attendance policies as described on pp. 46 and 47 of the college catalog will be enforced. Absences may be excused for illness or other appropriate cause. Exams missed due to circumstances beyond the student's control may be made up at a mutually agreeable time and place. Adequate documentation of the cause of an absence may be required.
The college is taking a number of precautions due to the Coronavirus 19 outbreak. You must comply with the various MC policies, including masking and staying off campus if you are not healthy. If you are unable to attend, please let me know so I can make a recording of the lecture. Classes will use assigned to seating to insure distancing and aid contact tracing if needed.
Because of the need to sit separately, the classroom cannot accommodate the entire class at once. The class will be divided into multiple groups who will attend lecture on different days. You will be assigned to a group and instructed which days you should attend.
I like you all fine, but don't just drop by my office. If you need help, call or send email. Perhaps I can answer you the same way, or we can teleconference, or arrange something else. I am happy to talk to you, it's just complicated these days.
Mississippi College regulations regarding the integrity of academic work will be enforced. The computer science group has established the following addendum:
In a computer science class individual effort is expected. Student misconduct not only includes cheating on tests, but also extends to copying or collaborating on programming assignments, projects, lab work or research unless otherwise specified by the instructor. Using other people's accounts to do your work or having others do your work is prohibited. Close proximity in lab does not mean collaboration is permitted. NOTE: Discussing logical solutions to problems is acceptable, exchange of code, pseudocode, designs, or procuring solutions from the Web, other texts, the Internet or other resources on or off campus is not acceptable.
First offense: grade of 0 for all parties involved unless the guilty party can be determined. Second offense: grade of F in the course.