Click here for plain text version to print.
Instructor: Megan Hazen,  
mh75[at]cs[dot]washington[dot]edu
For most purposes, use the course staff email: cse374-staff[at]cs[dot]washington[dot]edu
. You will get a quicker and more comprehensive response.
See the course homepage (www.cs.washington.edu/374) for information about the course. You will also wish to refer to the Canvas course (canvas.uw.edu/courses/1371969) including lectures, assignments, TAs, and office hours. Additionally, this course will use an EdStem discussion board (us.edstem.org/courses/388/discussion/). The discussion board will provide invaluable information and discussion with your peers and instructors. Lectures will be provided via Zoom meetings.
This course is scheduled to run synchronously at your scheduled class time via Zoom. These Zoom class sessions will be recorded. The recording will capture the presenter's audio, video, and computer screen. Student audio and video will be recorded if they share their computer audio and video during the recorded session. The recordings will only be accessible to the students enrolled in the course to review materials. These recordings will not be shared with or accessible to the public.
The University and Zoom have FERPA-compliant agreements in place to protect the security and privacy of UW Zoom accounts. Students who do not wish to be recorded should (1) change their Zoom screen name to hide any personal identifying information such as their name or UW Net ID, and (2) not share their computer audio or video during the recorded Zoom sessions.
(Course Catalogue) 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 concepts, and 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.
Successful course participants will:
In principal, all homeworks contribute equally to the 60%, but larger programming projects will be weighed somewhat more than others. Weekly review quizzes will take the place of a midterm exam and are designed to quickly check comprehension. Percentages are tentative and may be adjusted.
Extra credit on homeworks 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. You should not attempt the extra credit on homeworks 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.
There may occasionally be extra credit questions on quizzes or the final exam. Details will accompany each extra credit question.
Deadlines will be given with each assignment - due dates are specified with day and time in Pacific Daylight Time. These deadlines are strict - it is your responsbility to ensure that you can and do submit assignments on time. If you are aware of a challenge BEFORE the due date, please contact your instructor for help meeting your due date.
Assignments that are late by up to four days will be graded with a penalty of 20% for each day. (For example, an assignment turned in two hours after the submission deadline will be considered one day late. You will receive a grade equal to 80% of the grade merited by the work. An assignment received five or more days after the due date will not be graded and will earn a grade of zero.)
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 (cs.washington.edu/academics/misconduct). You are responsible for knowing the information in that document.
There is one book listed for this course (Linux Pocket Guide). There are a large number of resources that may be useful. One skill you will exercise in this course is finding your own reliable resources - this may be a good time to build a bookmark table of your favorite resources. A number of useful links may be found on the course web page. Recommended books:
Linux Pocket Guide, Barrett, O'Reilly, 3rd ed., 2016
  (different editions are ok too)
The C Programming Language, Kernighan & Ritchie, Prentice-Hall, 2nd ed, 1988
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, but I strong recommend that you read through 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.
This course has a Canvas page which will be the primary guide to all assignments. This page will be udpated frequently. It is your responsibility to stay on top of all Canvas announcements and assignments.
An EdStem discussion board is linked to the course home page so we can keep in touch outside of class meetings. Please participate. The discussion page may be used for any course related purpose. When discussing code please refer to general approach, or possibly psuedo-code, but do not share code snippets.
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.