|
|
|
|
CSE 143 -- Autumn 2004
Course Administration and Syllabus
- Course Web site
- www.cs.washington.edu/143
(which points to http://www.cs.washington.edu/education/courses/143/04au)
- Place and Time
- Lecture: MWF 11:30-12:20, Kane 120
- Quiz sections: TuTh, various times and locations.
Check the UW
Time Schedule.
- Instructor
- Hal Perkins
- email: cse143-instructor@cs.washington.edu
(or perkins@cs.washington.edu); office Paul Allen Center for CSE, room
548. Office hours MW 2-3pm. Feel free to drop by at other times or send
email to set up a specific appointment.
- Course Administrator
- Pim Lustig
- email: cse143-admin@cs.washington.edu; office: in the
CSE main office in the Allen Center; 616-3225. See Pim for administrative
matters related to the course such as scheduling conflicts, routine
corrections to our records, etc. See the staff
page for his office hours.
- Staff Information
- See the staff page
on the course web for information about TAs and consultants. You are
welcome to visit any TA in office hours, not just your own TA.
- Course Goals
- CSE143 is a continuation of CSE142. Topics covered include classes;
interfaces and inheritance; software design principles and practices;
error handling and 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 is used to gain concrete
experience with these ideas. In addition to its technical content,
CSE143 is intended to help you develop strategies for becoming self-reliant,
adaptable, and confident as a computing practitioner.
Successful completion of the course will give you the tools needed to
construct substantial computer programs, and the concepts to help you
better understand computers and software in your everyday world.
Finally, the course also provides a foundation for further study in
computer science and engineering.
- Prerequisite: CSE142 or equivalent.
- To be fully prepared, you should have taken the Java version of the
course at the UW, or have equivalent background. Look at recent
CSE142
web pages if you are not sure whether your previous course included
the appropriate topics. The Java version of CSE142 introduces
basic programming concepts in the context of Java classes and objects,
topics that were not part of the former (C language) version of the
CSE142. Our current CSE142 also includes use of reference-based
data structures, standard collection classes, and (usually) simple graphics. If
you have some experience with these areas in an object-oriented programming
language (C++, for example), you should be able to make the transition
to Java, and to this course. There is only a (very brief) opportunity
near the beginning of the course to catch up with any elementary material
and terminology that you have not seen before.
- 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.
- This is a programming course. Students almost
universally report that CSE143 is time-consuming compared to100-level
courses in other disciplines. Much of the time is consumed by
the unpredictable but exhilarating activity of programming. You
can't succeed without a commitment to spend the time it takes to understand
and complete the assignments.
- This is not a programming course. CSE143 is about
much more than just getting a program to run. It's about fundamental
concepts of computer science. Without mastering these fundamentals
and the accompanying technical vocabulary, analytical, and design skills,
you will not do well in the course, not matter how beautiful and accomplished
your programs.
- Topics Covered and Schedule
- A day-by-day schedule is online.
This shows topics covered, related reading, links to lecture slides,
and identifies dates of major events. The exact mix of topics
and activities is subject to change. You can expect the schedule
to be updated fairly frequently, so please revisit it often. In particular,
updated lecture slides for this quarter will normally be posted by dinner
time the day preceding class. You are encouraged to print copies of
the slides and bring them with you to class to use for taking notes.
- Textbook and Other Required Reading
- Textbook Jaime Niņo and Frederick Hosch, An Introduction
to Programming and Object-Oriented Design using Java, 2nd edition,
Wiley, 2004. If you have a copy of the first edition,
you can use that.
- Note: CSE143 is not a course built around a 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. In the case of the Nino and
Hosch book, there will be small differences in the version of Java used.
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.
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 better than the textbook.
- Other required reading includes:
- every message sent to the cse142-announce mailing list (registered
students are automatically subscribed to this list);
- every word of every assignment (you need to read critically and
carefully);
- 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 will definitely be material presented in lecture and sections
which does not exist on the slides or any printed form. You should take
notes and keep up with all of these materials and be prepared to be
quizzed on them, just as you would with the textbook readings.
The class discussion board (an epost list) is not strictly required
reading, but it is to your advantage to keep up with material posted
there. In particular, if you have a problem with a project or assignment,
there's a good chance that it has already come up on the discusson list,
or if it hasn't, you'll find it productive to post a message there.
We do ask that you read previous messages before you post in case existing
messages already address the topic.
- Other Materials
- You need to arrange a way to save copies of your work, either on
floppy discs, a USB key disk, the online disk space available to all
UW students, or something
else. Backup is something you should take seriously.
- Tests and Quizzes
- There will be two 50-minute midterm exams and a comprehensive final
exam, timed at 110 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: 2:30-4:20 p.m. Wednesday, Dec. 15, 2004
. 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 a number of short quizzes not announced in advance,
usually in quiz sections, but possibly in lecture. 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, however if the reason is something truly beyond
your control (serious illness, family emergency, etc.), please be sure
to notify your TA so we can make a note about the situation and take
it into account when final grades are assigned.
- Participation and Service
- A small percentage of the course grade is based on class citizenship,
including things which help you learn and helps the staff or
benefit the class as a whole, and things like how well you work with
your partners on programming projects and with other students in quiz
sections.
- 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 private tutoring to individuals who miss class, but of course
you are welcome to visit office hours with questions about the material.
We will, of course, help students who miss class because of illness
or other circumstances outside their control.
- 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, problems, demonstrations,
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 possibly
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 almost every week,
occasionally even more than once per week, and sometimes on or close
to an exam
date.
Programming projects will normally be done in pairs, and partners will
be assigned by the course staff. Other assignments, including written
reports about programming projects, must be done by each student individually,
unless explicitly directed otherwise. Graded written homework and
exams
will be returned by 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. Programming projects will normally be submitted
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 evening. Non-electronic assignments will generally
be collected in lecture or quiz section, or may be submitted in the
CSE department office. However, there may be exceptions to these
general rules, so you need to pay attention to deadlines and submission
instructions on each assignment.
- Late Policy
- Except in truly exceptional circumstances, late homework will not
be accepted. Expect to spend a lot of time on the programming
projects. Estimating how long a project will take is difficult,
even for software professionals, so start early!
- Grading Scheme (tentative)
-
- Homework and Projects: 30%. Longer or more difficult assignments
will be weighed more heavily.
- Midterm #1: 16%
- Midterm #2: 16%
- Final Exam: 25%
- Quizzes: 8% (all weighted equally)
- Participation and Service: 5%
Homework and tests assess somewhat 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
the instructor or a TA.
If you find an error in the grading or in our records, you must bring
it to your TA's attention within one week of when the item was
returned.
- Your grade in the course
- The distribution of grades in the course is generally the same from
quarter to quarter, with a median of about 3.0. If everyone does much
better than usual this quarter, then final grades will be higher, of
course, but because the course is so large, we rarely see any significanct
difference in scores from quarter to quarter.
Midway through the course, students often ask for an 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 the instructor about grades or any other concern.
- Tools for Communication
- The course web site is a primary source of information about CSE143.
In addition, everyone should read the class message board (also referred
to as the bulletin board or discussion board). 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. These e-mail messages are
also archived and can be viewed on the course 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, but 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 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.
-
- Appropriate Use of UW Computers
- Here are some excerpts from the campus policies;
please 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. Quoting from those policies: "In
general, any activity you engage in for the purpose of earning credit
while avoiding learning, or to help others do so, is likely to be an
act of Academic Misconduct."
Violations of these rules will be referred to the appropriate University
authorities for disciplinary action... not fun for anybody.
|