Course Information
Course Catalog Description
Syntax and semantics. Compilers and interpreters. Programs as data. Regular expressions and context free grammars. Programming paradigms, including procedural, functional, and object-oriented programming. Type systems, including dynamic and static typing disciplines. Binding, scope, data abstraction, and modularity. Denotational, operational, and axiomatic semantics. Introduction to program correctness.
Textbook
There is no required textbook. For those who like having a textbook for reference, the following book is
recommended:
Kenneth C. Louden and Kenneth A. Lambert,
Programming Languages: Principles and Practice, 3rd ed.,
Course Technology CENGAGE Learning, 2012.
Prerequisites
Officially: CS202, and CS251, passed with grades of C or better. CS201 is also strongly
advised. It is assumed that you have substantial programming experience in C++ and some experience in C.
Requirements and Grading
- Weekly lab assignments in form of programming problems or written exercises.
- Midterm exam (in the lecture slot on Nov. 5) and Final exam.
- Makeup of grade:
Lab/Homeworks |
40% |
Midterm Exam |
25% |
Final Exam |
35% |
Labs and Homework
- Concurrent registration in a lab section (CS320L) is required.
- Labs meet in the CS linuxlab (FAB 88-09).
- You should automatically have an account
on the CS linux machines.
- Each lab will have a handout (available on D2L) with exercises.
Handouts will be made available by the Saturday prior to the lab week.
-
Completed exercises for each week are to be submitted to D2L by
11:59pm on Monday of the week following the lab.
- Exercises may be completed on your own computer or on a CS linux
machine, but they must work on a CS linux machine, which is where
they will be tested and graded.
- Extensions will be given only under extraordinary circumstances; consult the
instructor in advance.