Syllabus

Click here for printer-friendly version

Logistics and Contact Information

Instructor: Melissa Winstanley
Staff email:
TAs: Bruce Wen
Jeanette Yu
Soumya Vasisht
Thai Pham

See the course homepage for all information about the course including lectures, assignments, TAs, and office hours.

Course Description

From the catalog:

Covers key software development concepts and tools not in introductory courses. Concepts of lower-level programming (C/C++) and explicit memory management; techniques and tools for individual and group software development; design, implementation, and testing strategies. Intended for non-majors. Cannot be taken for credit if credit received for CSE 333. Prerequisite: CSE 143.

This is a very practical, skills-oriented course. The goal is to gain exposure to a wide variety of useful concepts and tools. Lecture will introduce these, and the homework will provide an opportunity to practice. There will be a strong emphasis on independent learning, as it will not be possible to cover each topic comprehensively in class.

Goals

Successful course participants will:

Grading and Exams

In principal, all homeworks contribute equally to the 60%, but larger programming projects will be weighed somewhat more than others. Percentages are tentative and may be adjusted.

Extra Credit Policy

Extra credit is designed to have little (but some) impact on your grade whether you do it or not. Not doing extra credit will not lower your grade - regardless of how many other students attempt it. Extra credit is designed to be challenging and an opportunity for people with extra time to work on something optional.

Therefore expect an extra-credit problem to be worth much less than it should be based on how difficult it is. For example, if a homework is graded out of 100 points, the extra credit may be worth a maximum of 4 points with no chance for partial credit. You should not attempt the extra credit until you have finished the rest of an assignment. We will ignore extra-credit work on assignments that are not at least "almost perfect" otherwise.

Late Policy

Deadlines will be given with each assignment. These deadlines are strict. It is exceedingly unlikely that skipping class or being late to class because of homework is in your interest. For the entire quarter, you may have four free "late days". You are strongly advised to save them for emergencies. You may not use more than two for the same assignment. On group projects you may only use late days if all members of the group have them available, and all members of the group will be charged for each late day used. They must be used in 24-hour (integer) chunks. This policy may not be the same as in your other classes. You are responsible for understanding it if you choose to submit late work.

If you do not have any remaining late days, you will be deducted 20% of the assignment's maximum points per day late. No assignment may be submitted more than two days late.

Academic Integrity

Any attempt to misrepresent the work you submit will be dealt with via the appropriate University mechanisms, and your instructor will make every attempt to ensure the harshest allowable penalty. The guidelines for this course and more information about academic integrity are in a separate document. You are responsible for knowing the information in that document.

Text

There are two books listed for the course. Both books are OPTIONAL. They contain useful and relevant information but if you are not the type of person who reads textbooks, they may not be worth owning.

The Pocket Guide is a concise source of information and provides a useful reference to Linux at the level you need for 374. You are not responsible for memorizing all of the details in it. The Kernighan & Ritchie book is the classic reference on C from the people who invented the language. It has useful explanations and examples beyond the information presented in class or reference information available online.

See the Linux and C resource pages on the course website for links to additional useful information on Linux and C.

Communications

A discussion board is linked to the course home page so we can keep in touch outside of class meetings. Please participate. You will also automatically be subscribed to a class mailing list at your uwnetid address. This will primarily be used for announcements, clarifications, hints, and other notices from the course staff, and you are responsible for everything that is mailed there.

Messages to the course staff that are not appropriate for the discussion board can be sent to cse374-staff[at]cs. Please don't send email to individual staff members if possible. Messages sent to the entire staff are more likely to receive a timely response, and it helps ensure the staff gives consistent answers to questions, as well as help us get a better idea of whether several people have the same or similar questions.

Course Topics