CSE 413 Administrivia & Useful Information



Personnel

Instructor: Hal Perkins, perkins@cs.washington.edu, 206-543-4784.  Office Hours: Seig 210:  MWF after class until around 4:15pm, plus whenever the door is open.

Teaching Assistants: TBA, tba@cs.washington.edu .  Office Hours: TBA, or by appointment.

Class Meetings

MWF 2:30-3:20, EE1 045 (New building)

Objective

Our objective is to learn fundamental programming concepts and gain insight into how languages are implemented.  We will study functional and object-oriented programming using the languages Scheme and Java.  Then, after looking at basic machine organization, we'll finish the quarter by implementing a compiler for a small subset of C using Java.  The tentative plan is to have the compiler generate x86 assembly language code that can be run on standard PCs.

Prerequisite: CSE 373 (data structures and algorithms).

Texts

The only required book is:

The following books are recommended references for Scheme. However, these books and others are on reserve in the Engineering Library, and you may find that you don't need to buy either of them. We'll also have handouts and online reference material.

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 machine (see the Scheme and Java pages for more details).

Assignments and Grading

For both Scheme and Java, there will be one or more small assignments and a larger programming assignment.  The final compiler project will use Java, and there may be some shorter written homework. There will be a midterm covering Scheme and some Java, and a comprehensive final at the end of the quarter.

Here is the grading structure (possibly subject to modification):

homework 50%
midterm 15%
final 30%
other 5%

The last 5% of the grade will take into account effort, contribution to class, etc. This grading structure is subject to change.

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

Cheating

Students are expected to do the assignments on their own, except for assignments explicitly labeled as group assignments. Any cases of cheating that we discover will be sent to the College disciplinary committee.

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.

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.