|Office||925 EMS, 229-6986|
|Office Hours||R 10:00-12:00pm, F 8:30-9:30am|
Students must have received a `C' or better in CompSci 351. In particular, this class requires that student be able to use and implement
The required textbook for the course is
The grade for the course will be computed from the following parts:
Programs and written assignments will be graded for correctness, suitability, style, clarity and practicality. Although we will provide solutions to some assignments, there are usually a wide variety of correct answers to any particular assignment.
Unless an assignment explicitly says otherwise, all graded assignments must be your own work (your own words), but you may work with other people as long as you list their names prominently on the first page of the assignment, and/or in a comment at the top of the assignment. For this course, verbal communication and collaboration using non-code text or hand-written code is permitted, as long as it is properly documented. Documentation must also be made for help from anyone not in the course, such as a tutor, friend, or relative, and for information off the Web.
You may not make copies for other people of assignments, including through email, texting, scanning, photography, or any other copying technique, except where specifically permitted in an assignment. Whether or not you have permission of the other, submitting someone else's work as your own is plagiarism, a serious instance of academic misconduct. Everyone is responsible for learning the material themselves. Some of the assignments may be graded in person, especially in cases where the individual contribution to the assignment is not clear. If you are graded in person, you will be expected to demonstrate that you have mastered techniques used in the material you submitted.
In this course, you will be running code written by course staff. None of these programs are ``Trojan horses'': none will ever attempt to perform covert tasks that invade privacy or destroy data. Similarly, you may not submit Trojan horses as regular assignments. Any such action will be dealt with severely.
At the end of the course, the numeric grade will be converted into a letter grade according to the following scale:
This course meets weekly for 45 contact hours. You also have required reading of about 500 pages, which we estimate will take approximately 50 hours. There are thirteen required homework assignments, each of which will take 10 or more hours. This yields a total estimated workload of 225 hours.
|Week starting||Topic||Reading (Default MPL)|
|9/6||Introduction; Syntax||Ch. 1, 2|
|9/11||Abstract Syntax; Language Systems||Ch. 3-4|
|9/18||Introduction to ML; Type||Ch. 5-6|
|9/25||ML Patterns and Nesting; Polymorphism||Ch. 7-8|
|10/2||Higher Order; Scope||Ch. 9-10|
|10/9||ML Datatypes; Activation Records||Ch. 11-12|
|10/23||Midterm (both days)||JSG 1-8, MPL Ch. 1-12,14|
|10/30||JS Objects||JSG 9-12, MPL Ch. 16|
|11/6||JS Iterators and Generators; Exceptions||JSG 13, MPL Ch. 17|
|11/13||Parameters; Introduction to Prolog||Ch. 18-19|
|11/20||Procedural Prolog; Cost Models||Ch. 20-21|
|11/29||Arithmetic in Prolog||Ch. 22|
|12/14||History of Programming Languages||Ch. 24|
|12/22||7:30am: Final Examination|
About this document