CSE 142: Computer Programming I
Course Administration and Syllabus

Martin Dickey and Steve Wolfman, Spring 2001

Web site
http://www.cs.washington.edu/education/courses/142/
 
Instructor Information
Name Room E-mail Office hours
Martin Dickey (9:30 lecture) Sieg 423B dickey@cs.washington.edu see my schedule
Steve Wolfman (11:30 lecture) Sieg 226D wolf@cs.washington.edu see my schedule
Both instructors   cse142-instructors@cs.washington.edu  
Teaching assistants     full information is on the Web  
You are welcome to go to office hours of any TA and either instructor, not just the one you are registered for. Usually, the fastest way to reach an individual on staff is to send e-mail to that individual (e.g., cse142-instructors@cs.washington.edu for either instructor). The fastest way to reach some staff member is usually by sending an e-mail message to cse142-staff@cs.washington.edu.
Course Goals
CSE 142 provides an introduction to Computer Science; a major 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, we will study and use the C programming language.   Another goal of this course is to provide the background necessary for students who wish to continue to  CSE 143; students who feel they already have adequate preparation may take CSE 143 immediately and if successful in that course, may receive credit for 142 (see UW course catalog p.23).
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 class meets three times a week for lectures. Once a week, you meet with your TA and the other members of your quiz section.  The class does not meet in a computer lab on a regularly scheduled basis. On your own time, you have homework to do, mostly computer programs to design and debug.  You will be working on homework more or less all the time, with frequent, inflexible deadlines.  You will also need to use Internet tools (see below ) to get and turn in assignments and to keep in touch with the course.  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.
Times and Locations
142A Lecture (Dickey): MWF 9:30-10:20, Kane 210
142B Lecture (Wolfman): MWF 11:30-12:20, Kane 210
Quiz section times and locations are on the Web.
Textbook (required)
Jeri R. Hanly and Elliot B. Koffman, Problem Solving and Program Design in C, third edition, Addison Wesley, 1999. 
Course Packets
Reading packets will be available at Professional Copy 'N Print, 4200 University Way (estimated $12.00 total). The packet contains copies of the lecture slides used last quarter.   Purchase of the packet is strongly recommended as an aid to note-taking.
Exams
There will be two 45-minute midterm exams, and a comprehensive final exam. There will also be regular short quizzes.  Tests may include a mixture of multiple-choice, short-answer, and programming questions. The final will be an approximately 100-minute exam on Wednesday, June 6th, 2001. You must take the exams on the scheduled date; please do not make plans which would prevent you from doing so. You must take the final exam in order to pass the course.   The final exam will  not necessarily be at the time listed in the UW Time Schedule and may be held in a room other than the usual lecture room.
Attendance
Attendance is expected at all quiz section meetings (Thursdays) and lectures. There will be regular, graded quizzes in section. Attendance is not taken in lecture, but there may be some opportunities for credit that you will miss when you don't attend. If you miss a lecture, talk to a friend who was present, and be sure to check the Web site for class messages and updated lecture slides. Instructors and TAs will not furnish make-up materials to individuals who miss class.
This is not a distance learning course, even though a great deal of class material is available via the Internet. Students who choose not to attend class cannot expect to succeed as readily as those who do.
Homework
Computer Science is best learned hands-on. Five to six sizable programming projects will be assigned throughout the course, as well as a number of smaller exercises, which may include problems to solve, questions to answer, short writing assignments, diagrams or charts to draw, etc.. Assignments must be done by each student individually, unless explicitly directed otherwise. Pick up graded homework from your TA in quiz section. Unclaimed homework is discarded at the end of the quarter.
Turning in Assignments
Each assignment will carry instructions about when and how it is to be turned in.   Some assignments might be collected in class or by e-mail. However, for most programming homework you will turn in both electronic and paper copies via the Web. There will be a special page with a form to fill out, and a "receipt" page is sent back to your computer.  To get credit for the assignment, this receipt must printed and turned in before the deadline, along with any other materials specifically requested. Paper copies of assignments should be turned in in class.  There is a CSE Homework Box located in the hallway outside of Sieg 128, but it should be used only if the instructions so state, or in special situations. Any material placed in that box must be sealed in a large (e.g. 9x12 in.) envelope, with "CSE 142" and  your quiz section  written clearly on the front. Unless the instructions specifically say otherwise, you don't need to turn in a disk.  Points may be deducted if the mechanics of turn-ins are not correct (not in an envelope, missing information, wrong format, etc.)
Late Policy
Programming homework assignments have fixed deadlines (see "Homework Submission" link on home page.)  Late homework is not accepted. Because of the administrative difficulties of the course, we cannot relax this restriction.
 
Grading Scheme (tentative)
Tools for Communication
The course web site is the primary source of information about CSE 142. In addition, everyone should read the newsgroup uwash.class.cse142.bboard. This is a forum for discussions about the class, and the course staff will monitor it and contribute. You are also required to have a UWNetID, and you must read email at the address you've provided to UW. We will send email to that address if we need to broadcast a message to everyone in the class.  Messages are archived on the course web site. 
Labs
There is a new Introductory Programming Laboratory (IPL) for CSE 142 and CSE 143 on the third floor of Mary Gates Hall (MGH 334). Computers in the labs run Windows and Microsoft Visual C++ 6.0 plus the usual browsers, mail, and other web tools. Visual C++ is also installed in all publfic UW computing facilities, including the main lab on the ground floor of MGH. The IPL is our home base, and we provide consulting support there, but you can work in any of the other labs. It is also possible to work at home, especially on home PC's that have software similar to that in the IPL. 
Materials
Students who work in campus labs will need two or three 3.5" high-density (1.4 Megabyte) floppy diskettes for storing their course files.  Disks are not usually handed in.
Course Administrator
Melissa Albin, Sieg 114; 616-3225, cse142-admin@cs.washington.edu (malbin@cs.washington.edu).  See Ms. Albin for administrative matters related to the course such as scheduling conflicts, corrections to entries in our grade database, etc.  See the staff page for office hours. 
Computer Use Policy
Some excerpts from the campus policies. Take them seriously: "You must use all UW [computing] resources in strict accordance with local, state, and federal laws. These laws cover such areas as illegal access to computer systems, networks, and files; copyright violations; and harassment issues... Software and information resources provided through the university for use by faculty, staff, and students may be used on computing equipment only as specified in the various software licenses. Unauthorized use of software, images, or files is regarded as a serious matter and any such use is without the consent of the University of Washington...If abuse of computer software, images, or files occurs, those responsible for such abuse will be held legally accountable."
Academic Misconduct
All work turned in is expected to be your own. Unacknowledged copying or using parts of someone else's program, even if it has been modified by you, is plagiarism and is not acceptable! If you have a tutor or helper from outside the course, that person may not write any part of any program for you. The University has very clear guidelines for academic misconduct and the staff of CSE 142 will be vigorous in enforcing them. We make use of very effective automated tools for detecting similarities between homework solutions.
Although students are encouraged to study together to understand the course content, each student is expected to produce his or her own solution to the homework problems. It is unacceptable for two or more people to work together as a team in solving a problem. It can be hard to draw the line between studying together and working on a program together. A safe guideline is: never look at a fellow student's program, or show them yours. (This, of course, does not apply to programs that are written for fun or curiosity and not for credit!) When in doubt, ask a TA or instructor for guidance.
Detailed Syllabus
See the lecture schedule handed out on the first day of class; also available on the Web