This course covers a number of fundamental concepts and general principles underlying the hundreds of programming languages that have been designed and implemented. In the course, comparative studies will be made of paradigms taken from imperative, functional, logic, and object programming. Other concepts such as concurrency and exception handling will also be studied.
We plan to cover the following topics in the course:
There will be four assignments in this course. Assignments will be graded according to their correctness, preciseness, and elegance. Each assignment weighs 10% of the course grade.
All assignments are to be handed in to the Computer Science 3342 assignment locker (number 306-Third floor MC) and/or through the Electronic Submission System depending on the specification of the instructor. All assignments are due by 10pm of the due date. Late assignments will be accepted for up to five days after the due date, with weekends (Saturday and Sunday) counting as a single day; the late penalty is 2^n%, where n is the number of days late.
There will be a midterm test and a final exam. The midterm test is scheduled for Thursday, February 16 at 7:00-9:00pm in SSC 2024. The final exam is scheduled for Friday, April 20 at 9:00AM-12:00AM in SSC2020. Midterm test weighs 25% of the course grade and final exam 35%.