CSE 143: Computer Programming II

General Information and Syllabus

Autumn 2000

Course Web Site
http://www.cs.washington.edu/education/courses/143/00au/ or
http://www.cs.washington.edu/143
Instructor
Hal Perkins, Sieg 208, 543-4784, cse143-instructor@cs.washington.edu Office hours: MW 3:45-4:30 (i.e., right after lecture) or send email to schedule an appointment.
Schedule
Lectures: 2:30-3:20 pm MWF, GUG 224
Sections: 8:30 or 9:30 am, Tuesday & Thursday.  Section AA is intended for students who feel they have relatively less background; section AJ is intended for those who feel they have more background than average and want to explore technical issues beyond the core content of the course.
Topics, assignments, & exams: A tentative week-by-week schedule is available online.
Staff: Check the online staff schedule for instructor and TA office hours, as well as lab consultants' hours. For answers to most questions, you can go to any of the staff, not just your own TA or instructor. A fast way to reach any of the course staff is by sending electronic mail to cse143-staff@cs.washington.edu .
Communication
The course web site is the primary source of information about CSE 143.  In addition, everyone should read the newsgroup uwash.class.cse143.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.
Course Goals
We will cover concepts of modular programming, abstract data types, and object-oriented programming. CSE 143 is a continuation of CSE 142. Its goals are similar, namely to teach the foundations of problem-solving through programming; software engineering principles and practice, particularly abstraction and modularization; elementary data structures; and an introduction to the performance analysis of algorithms. To make the principles concrete, we will study and use the C++ programming language.
Successful completion of the course will give you the tools needed to construct substantial computer programs and the concepts needed to better understand computers and software in a variety of situations. In particular, the material provides a good foundation to students who continue in more advanced computer science and computer engineering courses.
Course Format
The class meets three times a week for lectures. A day-by-day lecture schedule may be found on the Web. Twice a week, you meet with your TA and the other members of your quiz section. On your own time, you have homework to do, mostly computer programs to design and debug.
Texts
[Recommended] CSE 143 Course Packet, available at Professional Copy and Print, 4200 University Way N.E. This packet contains all of the lecture slides from last winter, and most of this quarter's slides will be similar. The packet does not contain old exams or other supplementary information.
[Recommended] Frank Carrano, Paul Helman, and Robert Veroff, Data Abstraction and Problem Solving with C++: Walls and Mirrors, 2nd ed, Addison-Wesley, 1998.  Many past students have found the discussions and examples in this book to be a valuable supplement to the course slides, assignments, and other material. Some students have found they never opened the book during the quarter and did just fine.  We recommend this book, but it is not required.
[Optional] At practically any bookstore you can find books about C++ aimed at all sorts of readers. You might find that one or more of these books appeals to your unique learning style and background. One widely used book is the C++ Primer by Stanley Lippman and Josée Lajoie, third edition. Addison-Wesley, 1998. This book is particularly useful if you plan to do C++ programming beyond the level of CSE 143.  The Late Night Guide to C++ by Nigel Chapman is a good introduction to the essentials, and is particularly good at pointing out pitfalls and common problems.  The author's dry humor can be either a feature or a bug, depending on how it matches yours.  These books, and a few others are on reserve in the Engineering Library.
Quizzes and Exams
There will be several quizzes, two midterm exams, and a comprehensive final exam. All tests are closed book, closed notes, and calculators are not permitted, unless otherwise announced. Tests cannot be made up. Tests may include a variety of multiple-choice questions, short answers, short essays, and programming problems. You should bring a #2 pencil to each exam (we'll supply the blank Scantron forms).
Midterm exams: will be held in sections.  The tentative dates are Thursday, October 19, and Thursday, November 9.  We will try to stick to these dates unless there is a good reason to change.   Midterm exams are 45 minutes long, to allow time to hand out material before and collect it at the end of the exam.
Final exam: is at the regularly scheduled time: 2:30-4:20 pm on Monday, December 11.  The exam will be held in Kane 130..  It will not be possible to take the final at any other time. Please be careful not to schedule travel or other activities that conflict with the exams.
Attendance
Attendance is expected at all quiz section meetings. You should also plan to attend every lecture. If you miss a lecture, talk to a friend who was present, and be sure to check the Web for class messages or handouts that you may have missed.. The instructor and TAs will generally not have copies of old handouts or other make-up materials for students who skip class.
Homework
Programming is one of those things you learn by doing. About five or six programming exercises will be assigned throughout the course. Programming assignments must be done individually, unless explicitly directed otherwise (see Academic Misconduct below).
Homework Turn-In
Most programming assignments will be turned in via the Web. Electronic submission forms will be available a few days before the due date of the assignment. You must print out and hand in (on time) the receipt generated after your electronic submission in order to get credit for the assignment. Parts of some assignments may be turned in by other methods. Specific instructions will be available with each homework.
Generally, the deadline for electronic submission of assignments will be Wednesdays at 10 pm. The paper receipt will be due at the beginning of your quiz section the following day.
Late Policy
Except in truly exceptional circumstances, late homework will not be accepted.
Grading
Approximate breakdown of the course grade is as follows:
Programming Projects 35%
2 midterm exams 15%+15%
Final exam 25%
Quizzes & other 10%
If you find an error in our grading, you must bring it to your TA's attention within one week of that item being returned in sections.
Computing Facilities
A new Introductory Programming Laboratory (IPL) for CSE 142 and CSE 143 is nearing completion on the third floor of Mary Gates Hall, and should be ready within a few weeks.
Until then, MGH 030, a computer classroom in the basement, has been reserved for our use.
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 public 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 (in MGH 030 until the new lab is ready), but you can work in any of the other labs.  It is also possible to work at home, especially on home PC's configured similar to those in the IPL.
Materials
If you use the public labs, you will need a few 3.5" high-density (1.4 Megabyte) floppy diskettes for your course files. They can be purchased at the computer section of the University Bookstore and at many retail outlets.  Back up your files frequently.
Computer Use Policy
Some excerpts from the campus policies follow. 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. Although students are encouraged to study together to understand general course content, each student is expected to produce his or her own solution to the homework problems. Copying or using sections of someone else's program, even if it has been modified by you, is plagiarism and is not acceptable. If a tutor or someone outside the course is helping you, that person may not write any part of any program for you, even if that tutor is provided by the University.
The University has very clear guidelines for academic misconduct and the staff of CSE 143 will be vigorous in enforcing them. Here is some further clarification: You may not copy code from someone else; that is considered cheating. If caught cheating in this or any other way, full disciplinary measures may be invoked, including a failing grade and initiation of a cheating case in the university system. To avoid creating situations where copying can arise, you cannot mail or post or otherwise make your code available electronically to anyone. You can post general questions about programming problems and even pseudo-code snippets, but no actual C++ code taken from an assignment.
Now for the good news. It is educationally valuable to work with others on general ideas for how to go about solving some problem, and to help others in general terms when they are stuck. You may occasionally look at (but not copy down) others' code on screens, but only to give them help in debugging. If in doubt about collaboration vs. cheating, just don't, or send the instructor mail asking for clarification.