CSE 142: Computer Programming I
Course Administration

These course materials are from the Autumn 2000 offering of CSE 142 taught by Richard Anderson and Martin Dickey and are being made available for self study use along with the archived lecture material. This is an abbreviated version of the information handout for the UW course.
Web sites
Online: http://www.online.cs.washington.edu/cse142/
UW CSE: http://www.cs.washington.edu/education/courses/cse142/
Course Goals
CSE 142 provides an introduction to Computer Science; in particular, the goal is for students to learn the general principles of programming, including how to design, implement, document, test, and debug computer programs. To make these principles concrete, the C programming language is used.
Prerequisites
No prerequisites are listed in the catalog. However, it is assumed that students in this course have met the minimum requirements for admission to UW, and in particular: three years of mathematics, at least at the level of geometry and advanced (second-year) algebra; two years of science; and four years of English.  The course is not recommended for students who are at a remedial level in English or mathematics.
Course Format
The UW class meets three times a week for lectures and once a week for quiz section. The class does not meet in a computer lab on a regularly scheduled basis. Students work on homework assignments on their own time. Homework has frequent, inflexible deadlines. Many students who take this course report that it makes great demands on their time.
Topics Covered and Schedule
The main topics include: the concept of a computer and of programs; variables, values, and types; functions; program organization; style; iteration; arrays, including 2-D arrays; structs and arrays of structs; strings; and brief introductions to sorting, recursion, graphics, and event-driven programming.  A day-by-day lecture schedule may be found on the World Wide Web. This shows topics covered, textbook sections for each topic, and dates of major events.
Textbook
The text book used at UW for the course is: Jeri R. Hanly and Elliot B. Koffman, Problem Solving and Program Design in C, third edition, Addison Wesley, 1999.  The second edition (1996) may also be used with occasional minor adjustments. Lecture readings are indicated for this text. Many other textbooks provide similar coverage, and can be substituted.
Exams
There are two 45-minute midterm exams, and a 100-minute comprehensive final exam. Tests include a mixture of multiple-choice, short-answer, and programming questions.
Homework
Computer programming is best learned hands-on. Five programming projects are assigned throughout the course, as well as a number of smaller exercises, which include problems to solve, questions to answer, short writing assignments, diagrams or charts to draw, etc.. Assignments are done by each student individually, unless explicitly directed otherwise.
Grading Scheme
Labs
Students at University of Washington have access to a PC lab which runs Windows and Microsoft Visual C++ 6.0 plus the usual browsers, mail, and other web tools. Many students choose to work at home, especially on home PC's that have software similar to that in the University labs.  The course does not require the use of any particular software, although some aspects of the course are more convenient if the same programming environment is used.