|
Course Information and Syllabus (PDF)
Lecture: MWF Course Web
Page: http://www.cs.washington.edu/373/
Overview and Goals: Achieve an understanding of fundamental data structures and algorithms
and the tradeoffs between different implementations of these abstractions. Theoretical analysis, implementation, and
application. Lists, stacks, queues,
heaps, dictionaries, maps, hashing, trees and balanced trees, sets, and
graphs. Searching and sorting
algorithms. Prerequisite: CSE 143 Course Text:
Weiss, Mark Allen. Data
Structures and Algorithm Analysis in Java 2nd Ed., Addison Wesley: 2007, ISBN:
0-321-37013-9
Assignments: Assignments will be a mix of written exercises and
programming projects. Assignments will normally be due Thursday
evenings and will be submitted electronically
via the web. Exact dates and deadlines will be specified on each assignment.
Exams: Two
midterm exams and a final, which is
scheduled for Wednesday, Dec 12 from 10:30‑12:20 p.m. No makeup exams will be offered; you should
plan to attend the exams when they are given. Exams will normally be closed-book,
closed-notes, and no calculator will be needed.
Late Policy: Deadlines for homework and scheduled times for
exams are strict — no late assignments or exams will be accepted. However, if unusual circumstances that are
truly beyond your control prevent you from submitting an assignment or
attending an exam on time, you should discuss this with the instructor, preferably
in advance. (Even if you’re sick in bed
at home, you should still be able to make a phone call or send an email
message.)
Grading and Evaluation: Grades will be computed approximately as follows (weights may be modified):
Academic
Integrity: You are to complete
assignments individually. You may
discuss the assignment in general terms (see description of Gilligan’s
Communications: The course message board is a good medium for
discussing the course, getting help on assignments, and staying in touch
outside of class hours. You can also
email the instructor or TAs or go to office hours. In addition, the course staff will
occasionally post announcements to the course email list. You will be automatically subscribed to the
course email list if you are registered for the course and will be held
responsible for anything posted there.
Computing
Resources: We will use Java 6 (aka
Java 1.6) for programming assignments.
There are many good text editors and development environments available
for Java. We strongly recommend Eclipse.
The College of Arts & Sciences Instructional Computing Lab (http://depts.washington.edu/aslab/)
is the designated lab for this course; they have the above software installed,
but the software should also be available in public campus labs. All of the software, as well as many other Java tools
and environments, is freely available on the web and we generally don’t care
what you use for your programming projects. Exception: you may not rely on or
use “wizards” or other program generation tools in your programming environment
to create code for your assignments.
The
code in your assignments should be written by you, and you should understand
and be able to explain anything in it.
However you create it, your code should compile and run properly using
the standard Sun Java 6 software.
Preliminary topic list:
|