Textbook:
Harry R. Lewis and Larry Denenberg,
Data Structures & Their
Algorithms, Addison-Wesley, 1991. ISBN 0-673-39736-X.
It should be available soon at the UVa Bookstore, or you can order it
from
Amazon
($61.60),
Addison-Wesley
($77.00), or
search
for used versions (from about $45.00). In addition to the textbook, there will be supplemental readings from
other sources.
Coach:
David
Evans (
evans@virginia.edu, phone
x2-2218, Olsson 236A). I will hold regular office hours Wednesdays, 2-3pm and
Fridays, 10:30am-11:30am. If you want to meet at another time, send me
email (listing several possible times when you are available) to arrange a meeting.
Assistant Coaches: Erika Chin,
David Faulkner,
Erin Golub,
Sam Guarnieri,
Katherine Jogerst,
Phu Le,
and
Pitchaya Sitthi-Amorn
Assignments
Problem Sets. There will be about eight
problem sets that involve both written
questions and programming problems. Some problem sets will be done by
small groups of students. For almost all students, doing the problem
sets will be the best way to learn the course material. Unless noted
otherwise, problem sets are due at the beginning of class (11:00 am) on
the day they are due. (See the
schedule for the problem set topics and
due dates.)
Quizzes. There may be several short in-section or in-class
quizzes throughout the semester. These may or may not be announced in
advance. Except in unusual circumstances, these will have no effect on
your grade. Instead, they are used to allow you and I to determine if
important concepts have been understood throughout the semester.
Exams. There will be two exams during the semester and a final.
Assuming the course staff and your classmates have good confidence in
the honor system, exams will be take home and open book. Exam 1 will
be handed out on Wednesday, February 22 and due on Monday, February 27.
Exam 2 will be handed out on Wednesday, April 19 and due on Monday,
April 24.
Collaboration Policy
Your fellow students are your best resource. Except on assignments and
exams which are done individually, students are encouraged to discuss
readings and assignments in study groups. Assignments will contain a
specific collaboration policy, which should make it very clear what
kinds of collaboration are appropriate for that assignment. If this is
ever unclear, ask to make sure before proceeding.
Students are also encouraged to consult outside sources, including human
experts. Always list the resources you used (students, outside experts,
papers, web sites) on your submission.
Several questions on your registration survey are designed to measure
how much confidence students in the class have in the honor system. A
course pledge will be written that reflects these responses. All
students will be required to sign a course pledge, which will be
distributed at the second class meeting.
Topics
The expected topics covered in CS216 include Analysis of Algorithms
— correctness, efficiency, asymptotic complexity; Basic Data
Structures (lists, trees, strings, arrays, hash tables); Low-Level
Programming in C (data abstraction, types); Data Representation
(numbers, pointers); Virtual Machines (memory management, security,
interpretation); Assembly Language Programming (addressing, calling
conventions); and Crossing Abstraction Layers. For details, see the
Grades will be tabulated varying the weights assigned to each category
in several different ways using the ranges above. Some of those
weightings will drop the lowest problem set score. In general, the
weighting that is best for you is used. Spend your energy focusing on
what you are learning, instead of worrying about your grade.