CSE 142: Computer Programming I
Course Administration and Syllabus

Hal Perkins, Summer 2001

Web site
http://www.cs.washington.edu/education/courses/142/
 
Instructor Information
Name Room E-mail Office hours
Hal Perkins Sieg 208 cse142-instructor@cs.washington.edu Tentatively MWF, 1:30-2:30; see my schedule for any changes
Teaching assistants   full information is on the Web  
You are welcome to go to office hours of any TA, not just the one you are registered for. Usually, the fastest way to reach an individual on the staff is to send e-mail to that individual. 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 Java 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, we assume 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; creation of objects and method calls; defining new methods, classes, and objects; expressions, values, and types; conditionals; iteration and connections; 1- and 2-D arrays; as well as possibly a brief introduction to sorting, recursion, graphics, event-driven programming and other topics.  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.  The exact mix of topics and schedule is subject to change, as this is the first time the entire course has been taught using Java.
Times and Locations
Lecture: MWF, noon-1:00, Gowen 301
Quiz section times and locations are on the Web.
Textbook
Course slides and notes will be distributed in class, and will be available on the web a day or two before class (see the course lecture schedule).
David Riley, The Object of Java: Introduction to Programming Using Software Engineering Principles, Addison-Wesley, 2001.  This book is being published during the first week of summer quarter.  Preprints of the first two chapters will be handed out in class this week; copies of the book should be available in the UW Bookstore by early next week.
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 tentative plan is to hold the midterm exams in class on Friday, July 6, and Friday, July 27.  The final exam will be held in class on the last day of the quarter, Friday, August 17. 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 programming is best learned hands-on. Several 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 the assignment electronically 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 verify that we received the assignment. 
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)
Homework assignments are your opportunity to learn; exams are the place to assess how well you have mastered the material. That is why the homework does not count as heavily towards the final grade as might seem warranted, given the amount of time you will spend on it.
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
During the summer, CSE142 uses the general UW computing labs.  Computers in these labs run Windows and include Java programming tools for the course plus the usual browsers, mail, and other web tools. The main lab on the ground floor of Mary Gates hall will be our base during the week, and we will provide consulting support there.  During the weekends, we will provide some consulting support in the Odegaard general lab. It is also possible to work at home, especially on home PC's that have software similar to that in the labs. All of the software that we plan to use this quarter can be downloaded freely from the internet.
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, unless explicitly allowed otherwise.
These rules are an attempt to reach an appropriate balance between three goals:
- Learning: The only way to learn to program is to do it; so it is important that every student actually gain the experience of solving problems, by writing and debugging programs.
- Cooperation: People learn best when they are able to exchange ideas and discuss things.  It is important that we create an atmosphere in which everyone involved in the course feels free to help each other out.
- Fairness: It is important that people receive credit only for work they do themselves.  It is fundamentally unfair and dishonest to represent someone else's work as your own.
There is no problem if you occasionally help a colleague by looking over his/her shoulder, ask questions, listen to explanations, discuss design and implementation issues and so forth.  It is a problem if you ever have a copy (printed or machine-readable) of someone else's code, or knowingly give your code to someone else.  It is a problem if you develop a solution to an assignment jointly with someone else or if you include code in your program that was written by someone else.
If you are not clear on whether some form of cooperation is allowed by these rules, don't guess - ask a TA or the instructor first.  Violations of these rules will be referred to the appropriate University authorities for disciplinary action.
Detailed Syllabus
See the lecture schedule available on the Web