|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 contain, and omit the features 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.
|Points||Undergrad||Graduate (+50 pts)|
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 April 27, at 12:00. The last day to drop this course is Friday, March 23, 2018.
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 4 pages single-spaced, using reasonable fonts and margins. It must have at least 8 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:
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.
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.