CSE logo University of Washington Department of Computer Science & Engineering
 CSE 143 Autumn 2002 -- Syllabus
  UW Home     CSE Home   Announcements    Message Board    Contact Info 

CSE 143
 Home page
 Syllabus
Classwork
 Calendar
 Homework
 Exams
People
 Instructors
 TAs
 Consultants
 Consultant Schedule
 Pictures
Software & Computing
 Programming Lab Info
 Using BlueJ
 Computing at Home
 Java Libraries
Staying in Touch
 Mailing Lists
 Discussion Board
 Announcement Archive
   

Course Administration and Syllabus

Instructor: Martin Dickey

Web site
http://www.cs.washington.edu/education/courses/143/02au
 
E-mail: dickey@cs.washington.edu

Office: Sieg 423b    Office hours TBA; see Weekly Schedule

Place and Time
Lecture: MWF 11:30-12:30, Guggenheim 224
          Quiz sections: TuTh, various times and locations.  Check the UW Time Schedule.
 
 
Staff Information
Teaching Assistants Office hours
Kuang Chen kkchen@cs
Zachary Crisman zcrisman@cs
Danielle Farrar dcfarrar@cs Chris Fitzner cf@cs
Sam Kim samuelk@cs
Jesse Kinkead jesse@cs
Eric Nordberg erock@cs
Parag parag@cs
Dmitriy Portnov dportnov@cs
Gary Yngve gyngve@cs

For locations and  schedule, please go to the Staff page.  You are welcome to visit any TA's office hours, not just your own TA.

cse143-ta@cs.washington.edu will reach all TAs.

Course Goals
CSE143 is a continuation of CSE142.  Topics covered will include classes and interfaces; inheritance; software design principles; exceptions; stream I/O; user interfaces; recursion; elementary data structures and associated algorithms (lists, queues, stacks, trees); and an introduction to performance analysis and implementation tradeoffs.  The Java programming language will be used to gain concrete experience with these ideas.  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.  The course also provides a foundation for further study in computer science and engineering. 
Prerequisites
CSE142.  To be fully prepared, you should have taken the Java version of the course at the UW, or have equivalent background.  Look last year's CSE142 web pages if you are not sure whether your previous course included the appropriate topics.    The new Java version of CSE142 introduces basic programming concepts in the context of Java classes and objects, topics that were not included in the C version of the course, and it also includes use of reference-based data structures. If you have done some object-oriented programming in another language (C++, for example), you should be able to make the transition to Java, and to this course.
Course Format
The class meets five days a week: three lectures on MWF, and two quiz sections on TTh.  On your own time, you have homework to do, mostly computer programs to design and debug.  Students almost universally report that CSE143 is time-consuming compared to100-level courses in other disciplines.  But many students also report the course to be interesting and rewarding!
Topics Covered and Schedule
A day-by-day schedule will be online.  This shows topics covered, related reading, pointers to lecture slides, and identifies dates of major events.  The exact mix of topics and schedule is subject to change.  You can expect the schedule to be updated fairly frequently, so please revisit it often.
Textbook and Other Required Reading
Textbook: Jaime Niņo and Frederick Hosch, An Introduction to Programming and Object-Oriented Design using Java, Wiley, 2002.  This book begins with the very fundamentals of Java.  We will cover the first several chapters quite rapidly.  If you did not have CSE142 at the UW, this will be your (very brief) opportunity to catch up with some elementary material and terminology.  CSE143 is not a course built around this particular textbook.  Don't be surprised to find details that differ between the lecture presentations and the textbook explanations and examples.  There will also be differences in the order of topics.  Please don't let it throw you!  To supplement the textbook, there may be handouts or pointers to readings on advanced topics, especially near the end of the quarter.
Other required reading: every message sent to the announcement mailing list; every word of every assignment; all the lecture slides, including those that are not presented in class; and anything else that we might designate as required reading (which might include sample solutions and handouts).  There may also be material presented in lecture which does not exist on the slides or any printed form. You should try to keep up with all of these materials and be prepared to be quizzed on them, just as you would with the textbook readings.
 
Other Materials
You may wish to buy some disks to make backups of your work.  Probably we will not require you to turn in any disks.  Backup is something you should take seriously, though.

In most any bookstore you can find an almost frightening number of books about Java.  You may find that one or more of these appeals to your learning style and background.
Tests and Quizzes
There will be two 45-minute midterm exams and a comprehensive final exam, timed at 100 minutes.  Unless otherwise announced, exams will be held in the same lecture hall as regular classes.   Tests and quizzes may include a mixture of multiple-choice, short-answer, and programming questions. All tests are cumulative, but emphasize the more recently covered material.  The final exam will be held at the time set by the University: Tuesday, December 17, 2:30 p.m. .  You must take the exams when they are offered; please do not make plans which would prevent you from doing so. You must take and pass the final exam in order to pass the course.
  
There will also be lots of short quizzes, at unpredictable times. These miniquizzes will be of three types: Reading quizzes, which cover assigned reading that has not yet been covered in class (!); knowledge quizzes, which test important skills or concepts just recently introduced; and feedback quizzes, where the main goal is for us to assess how well we are getting the material across.  All quizzes will be graded on a simple system, and all quizzes will count equally, regardless of length or difficulty.  No makeup quizzes will be given regardless of reason for missing, but if you miss one (only), we will drop it from the average when computing your grade.  If you miss no quizzes, we will drop the lowest score (percentage-wise).
Participation and Service
A small percentage of the course grade comes from participation and service.  The best way to earn these points is to look for opportunities to do things which help me or the TAs or the class as a whole.  I'll throw out examples and suggestions as we go along, but you can look for opportunities, too. 
Attendance
Attendance is expected at all class meetings. 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 information. Instructors and TAs will not furnish make-up materials to individuals who miss class, but of course you are welcome to visit office hours with questions about the material.
Even though a great deal of class material is available via the Web, this is not a distance learning course, Students who don't attend class cannot expect to succeed as readily as those who do.  If you miss class, you may miss information, examples, handouts, advice, announcements, and other things that are not guaranteed to be anywhere on the Web.
Homework
Computer programming is best learned hands-on. Several sizable programming projects will be assigned throughout the quarter, 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. You should expect to have something due every week, occasionally even more than one per week, and sometimes on or close to an exam date.  Assignments must be done by each student individually, unless explicitly directed otherwise. Pick up graded written homework and exams 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 may 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.  Work that is not turned in according to instructions will not be graded.
Most often, the deadline for electronic submission of assignments will be Wednesday or Thursday evening.  Non-electronic materials assignments will generally be due at the beginning of lecture or quiz section.  However, there will be exceptions to these general rules.
Late Policy
Except in truly exceptional circumstances, late homework will not be accepted.   Expect to spend a lot of time on the programming homework.  Estimating how long a project will take is difficult, even for software professionals, so start early!
Grading Scheme (tentative)
  • Homework and Projects: 28%.  Longer or more difficult assignments will be weighed more heavily.
  • Midterm #1: 14%
  • Midterm #2: 16%
  • Final Exam: 24%
  • Miniquizzes: 12% (all weighted equally)
  • Participation: 6%
Homework and tests assess very different things.  It's quite possible to do very well in one category and not-so-well in another.  If that happens to you and you don't see why, please come and talk to me.  Along the same lines, sometimes the lectures, homeworks, and quiz sections will seem coordinated, and other times they may seem to come from different planets!

If you find an error in the grading, you must bring it to your TA's attention within one week of when the item was returned.

Your grade in the course
Yes... the rumor is true.  The class is graded on a curve, with the mean set at about 3.1. Midway through the course, students often ask me to estimate what grade they are likely to get.  This is very difficult.  One thing you can look at is how your scores compare with the class mean.  This information will be available on-line after our grades database is set up.  Of course, you are always welcome to come and talk to me about grades or any other concern.
Tools for Communication
The course web site is the primary source of information about CSE143.  In addition, everyone should read the class message board (also referred to as the bulletin board or newsgroup). This is a forum for discussions about course content and activities.  Please do not post your code on it!  We will send email to your UWNetID if we need to broadcast a message to everyone in the class.  E-mail messages are also archived and can be viewed on the web. 
You can reach the entire teaching staff at once by sending electronic mail to cse143-staff@cs.washington.edu .  This is often the fastest way to get an answer from some staff member. You are encouraged to use the message board for most discussions and questions.
Labs and Computing Facilities
The Introductory Programming Laboratory (IPL) for CSE142 and CSE143 is in room 334 of Mary Gates Hall.  The IPL is our home base, and we provide consulting support there at scheduled times throughout the week.  Software to support the course is also installed in the other UWired public labs.  See the lab information web page for more information on the UW programming labs, their hours, etc.  All the software is freely available over the web, for you to install on your own computer; see the computing at home pages for help.  The same instructions apply to both CSE142 and CSE143 in most cases.  If you have software left over from CSE142 -- it's all been updated.   Please get the new versions and reinstall.
Course Administrator
The course administrator is Pim Lustig, Sieg 112E (inside Sieg 114); 616-3225, cse143-admin@cs.washington.edu.  See Pim for administrative matters related to the course such as scheduling conflicts, routine corrections to entries in our grade database, etc.  See the staff page for his office hours. 
Appropriate Use of UW Computers
Here are 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, unless we specifically ask you to work in teams. 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 CSE143 will be vigorous in enforcing them. We make use of very effective automated tools for detecting similarities between homework solutions. Please read carefully the CSE policies on these matters.  Violations of these rules will be referred to the appropriate University authorities for disciplinary action.  Not fun for anybody.


CSE logo Department of Computer Science & Engineering
University of Washington
[comments to cse143-webmaster]