The Registrar's office scheduled the final for Monday, 15 March, from 7 to 10 pm, in HSS 2250, the same room in which the lectures are given. Here is an online copy.
An online review of the course is now available, as is a previous year's final (but that course was quite different from this one). You may also find chapter 15 of Sethi useful.
There will be a review session from 10 to 12 am in Center 216 on Saturday, 13 March.
The final exam will cover the whole course and will be weighted 50%. After some discussion with students, we have decided to take the maximum of two weights for the remaining 50%: homework at 35% and midterm at 15%, or else 25% each. The structure of the final will be similar to the midterm, with probably fewer historical questions, and with some emphasis on functional and logic programming.
Instructions for Prolog on ieng9 are available, as are Instructions for BinProlog at CSE.
We are providing webboards for discussing homework problems; click below for
Solutions for the midterm are available in pdf and in postscript. The mean was about 58, with a standard deviation of about 14.Here is a link to the previous version of this class, which you may find useful for exams, etc., though this year differs in some significant ways.
Please do not ask the TAs, grader, or professor for help doing your homework; this is not fair to other students. Of course, it is acceptable - indeed, it is encouraged! - to ask questions about the content of the course. And naturally you can also ask about bugs in the homework questions (if there are any). Also please check the website before asking us administrative questions; the chances are good that the answer is already here.
Past classes have seen homework answers with strongly overlapping content. In this class, a grade of zero will be assigned for such answers, and there will be more drastic consequences for repeat offenders. You can talk with other students about how to approach homework problems, but you are not allowed to work together on solutions. See the Integrity of Scholarship Agreement, by Scott Baden, and UCSD's official policies on Plagariasm; see also the most recent amended policy (sorry, it's in MS Word). You are expected to abide by these rules; failure to do so can have very serious consequences.
Some general features, history and comparison of programming languages. Abstract and concrete syntax; induction. Types and modules; type systems and module systems. Functional programming and polymorphism; logic programming and Prolog. If time permits, the course will conclude with a brief discussion of internet languages like Java, HTML, JavaCC, JavaScript, Perl, and XML. Click here for an outline of the class
In addition to the usual topics, this course will include some formal methods and a little on social and historical aspects. We consider what languages are, how they are used, what they mean, and how and why they differ, rather than focus exclusively on programming.
The following is required:
The following books are recommended:
Grades will be based on 50% for the final, 25% for the homework, and 25% for the midterm (subject to modification as I get to know the class better).
The class TAs are Sean O'Rourke (office hours: Thursday 9:00-10:30 AM in EBU1 6307), and Fox Harrell (office hours: Tuesday 8:30 - 9:30 AM, in EUB1 6307A); both are doctoral students in CSE.
Prerequesites for this class are CSE 100, CSE 20, CSE 12, and one of the basic programming courses. If you are not familiar with the discrete mathematics in CSE 20, you should review it; a good textbook is Discrete Mathematics with Applications, by Susanna Epp (Brooks/Cole 1999).
If you find bugs in the lecture notes or the textbook, please send me email, because I want to include a comprehensive bug list in the class notes.