|
|
|
|
CSE 143 -- Summer 2004
Course Administration and Syllabus -- DRAFT 6/21/2004
- Course Web site
- www.cs.washington.edu/143
(which points to http://www.cs.washington.edu/education/courses/143/04su)
- Place and Time
- Lecture: MWF 12:00-1:00 in Gowen 301.
- Quiz sections: TuTh, various times and
locations. Check the UW
Time Schedule.
- Instructor
- Martin Dickey
- email:
dickey@cs.washington.edu; office Paul Allen Center for CSE, room 640.
Regular hours to be
announced. 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. \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. The second edition was just published
(May, 2004) and should be in the bookstore. If you have a copy of
the UW Custom Edition for Spring, 2004, you can use that, although the
page numbers and some details may be different. Versions earlier
than than will not work.
- 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 may 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, 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 55-minute midterm exams and a comprehensive
final exam, timed at 110 55
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 during the regularly
scheduled last lecture period of the quarter, Friday, August 20. 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 quite a few short quizzes, hinted at but
not always exactly announced in advance. Quizzes may occur in
quiz sections or 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 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: 24%
- Quizzes:10% (all weighted equally)
- Participation and Service: 4%
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.
- CLUE
- We will have a regular presence at CLUE, the evening
program in Mary Gates Hall where students can drop by to talk about the
course, get extra help on assignments, and so forth.
-
- 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.
|