CS2604: Data Structures and File Processing
Summer Two 1999
Textbook/Notes
A Practical Introduction to Data Structures and Algorithm Analysis -- C++ Edition
by Clifford A. Shaffer
Class notes (copies of slides) are available for purchase from A1 Copies in the University Mall.
Instructor
Hussein Suleman (hussein@vt.edu)
Teaching Assistants
Ryan Richardson (ryanr@vt.edu)
Batul Mirza (bmirza@vt.edu)
Grade Weighting and Tentative Dates
5 Programming Assignments: 30% total
2 Midterms: 10% each (20 july, 3 august)
Final: 30% (14 august)
Quizzes: 5%
Homework: 15%
Honor Code
The Honor Code (and in particular, the document "DEPARTMENTAL POLICY ON KOOFERS, OLD PROGRAMS,
CHEATING, AND COMPUTER USE" (http://www.cs.vt.edu/academic/ugrad/koof.html)
applies to this course
and will be strictly enforced. Homework and exams must be done strictly on an individual basis.
Design and coding of programming assignments must be done strictly on an individual basis.
It is acceptable to discuss with classmates the question but not the solution (neither algorithmically nor
programmatically). In no way should the individual statements of a program or the steps leading to the solution
of the problem be discussed with or shown to anyone except the graduate teaching assistants, the instructor,
or the free tutors provided by ACM or UPE. Any discussion of your program source code must be limited to these people.
Always give credit for work that is not entirely your own (e.g., parts of programs or homework answers
borrowed from a book).
Prerequisites
CS2704 and either Math2534 or Math 3034
The Computer Science Department rigorously enforces the prerequisite requirements for all courses.
Additionally, for majors or minors in Computer Science the Department enforces the requirement that all
prerequisite Computer Science courses be completed with a grade of C or better. Any student not meeting
these requirements and not obtaining written permission from the course instructor to remain in the course,
must withdraw from the course within the first week of classes. Any student who is subsequently found
not to meet these requirements will be subject to an honors violation report on the basis of falsification of
qualifications. Instructors are NOT bound to investigate the records of students to ascertain their prerequisite
status; this is the student's own responsibility.
In all cases, the student is responsible for knowing all prerequisite material.
Assignments and Grading Policy
All questions for assignments, along with all related requisites, will be available online on the class
website (http://ei.cs.vt.edu/~cs2604/).
Grading of programming assignments will be based on the following criteria:
- Correctness of program.
- Output from program that adequately demonstrates correctness.
- Documentation, internal and external, included as appropriate - the CS Departmental Documentation Standards entitled "Elements of Programming Style" (http://ei.cs.vt.edu/~cs2604/Standards/Standards.html) will be enforced.
- Efficient use of algorithms and appropriate data structures.
- Stress - program must function correctly under all and/or extreme and unusual combinations of input.
- Creativity - credit for innovation in interface, implementation, style, etc.
Solutions to homework assignments must be typeset either using a word processor or in plain ASCII text.
All files must be readable in MS-Word 98. No handwritten work (including scanned documents) will be accepted.
All programming assignments and homework are due at the date and time specified. No late submissions will be accepted unless a general extension has been granted. In very rare instancees, exceptions may be made at the discretion of the instructor on an individual basis. Requests for extensions must be made at least 24 hours in advance of the due date.
There will be NO extra credit assignments on an individual basis.
All assignments will be submitted electronically. The acceptor program used to receive your assignments
will provide the official timestamp used to determine whether a program is on time.
All graded work (whether in paper or email format) must be kept until
the end of the semester.
Queries about grades must be made within a week of grades being published.
Equipment and Programming Language
All programming for this course will be done in C++. The GTAs will compile and test programs under one of the
following two platforms, at the choice of the student: MS Visual C++ Version 6.0 under Windows NT, or Gnu G++
Version 2.7.2.1 under FreeBSD (as installed in the undergraduate lab). It is the responsibility of the student to
submit a program that will successfully
compile and execute on the specified platform. Computing facilities are available for use in the Departmental
Computing Lab in McBryde 118. All Computer Science majors should have lab accounts for use on these machines -
if not, please see the consultant on duty in McBryde 116 to apply for one. For non-majors, accounts to the McB 118
machines will be given on request.
Information Dissemination
All students enrolled in the class will be added to the class listserv. All public discussion will take place on the
listserve. You should receive email from the listserv during the first week of class giving information on how to
contribute to the listserv.
Information will also be added to the class website. All students will be expected to consult the website on a
daily (M-F) basis for updates on projects, homework, grades, hints, deadlines, etc.
If any student needs special accommodations because of a disability, please contact the instructor during
the first week of classes.