CSE 413 Winter 2002

Administrivia & Useful Information

Personnel

Class Meetings

MWF 2:30-3:20, MGH 241

Objective

Expand our notions of programming, learn some basic concepts of programming languages, and gain insight into how languages are implemented.  The course will study functional and object-oriented programming using the languages Scheme and Java.  The final project will be to implement a compiler for a small language, generating executable x86 assembly language code for standard PCs.

Prerequisite

CSE 373 (data structures and algorithms).

Texts

There are no required books for the course.  A number of relevant books are on reserve in the Engineering Library (see this list).  Copies of the Scheme language definition and handouts will be distributed during the quarter.

Learning Java by Niemeyer & Knudsen (O'Reilly, 2000) is one of the better introductory Java books and is an optional textbook for CSE 413.

Computing Resources

We will have access to the MSCC computing facilities.  But feel free to use any up-to-date version of Scheme or Java on your own computer (see the Scheme and Java pages for more details).

Assignments and Grading

For both Scheme and Java, there will be a combination of small assignments and larger programming projects.  The compiler project will be written in Java.  There will also be shorter, written problems on some homework assignments. The midterm exam will cover Scheme and some Java, and there will be a comprehensive final exam at the end of the quarter.

Grades will be calculated roughly as follows (subject to change)

The last 5% of the grade will take into account effort, contribution to class, etc.

If you discover an error in the grading of an assignment or test, please bring it to the TA or instructor's attention within one week after the material is first returned.

Academic Misconduct

You are expected to do assignments on your own, except when an assignment explicitly allows group work. Any cases of cheating that we discover will be handled according to the University disciplinary policy.

However, we also want to be clear on what is legitimate collaboration -- please help each other out in this class in appropriate ways! It is OK to help other students debug their programs, and to discuss general approaches to solving problems. After having such a discussion, though, you should go do something else for at least half an hour, for example watch an inane TV show, before independently working on your solution. (This is sometimes called the Gilligan's Island rule.) However, it is not OK to copy someone else's code or homework solution.

This course includes a substantial term project (the compiler).  Developing good assignments of this size can take years.  To make sure that assignments are as good as they can be, we may reuse them, with appropriate changes to take into account feedback from past offerings of the course.  It is a clear case of academic misconduct if you hand in a solution to a similar project from a previous quarter, or obtain copies of such solutions from others.  We have effective tools for checking this, as well as other cases of cheating, electronically, and we have retained copies of work handed in during pervious quarters to make this possible.

Exams must, of course, be done on your own. Both the midterm and final will be open book and open notes.  Laptops, PDAs, pagers, and other computers or devices will not be allowed.

Late Assignments and Incompletes

Assignments are due at the beginning of class on the date assigned.  No late assignments will be accepted.

Exceptions will be made only for circumstances truly beyond your control, such as a serious illness or family emergency.  Please be sure to get in touch with the instructor to discuss the circumstances if this happens.

Incompletes are never given never simply because assignments were not completed on time.


Back to CSE 413 home