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:

  1. Correctness of program.
  2. Output from program that adequately demonstrates correctness.
  3. 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.
  4. Efficient use of algorithms and appropriate data structures.
  5. Stress - program must function correctly under all and/or extreme and unusual combinations of input.
  6. 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.