CS 2704:  Object Oriented Design and Construction

Summer I 2002 (May 20 - June 29)

Class Time/Location: M-F  12:30-1:45
Location: McBryde 126
Final Time: Sat., June 29, 10:30-12:30

Course Description:  Object-oriented programming concepts are studied and basic skills in software design are developed. Sound practices for design, construction, testing, and debugging of object-oriented software systems are emphasized. Object-oriented features of the C++ programming language are examined. The primary principles and language features studied are: objects, classes, inheritance, and polymorphism.  

Instructor: K. Todd Stevens

Office: 523 McBryde Hall
Phone: 231-4485 (Please, use email if possible.)
Office Hours: Mon - Thurs 1:45 - 3:00 and by appointment
E-mail: todds@cs.vt.edu

I prefer to talk to students in person, so talking to me during my office hours, after class, or making an appointment is best. I will answer questions over the phone whenever I'm in the office (although this usually does not work well), but in-person students get priority over email or phone calls.

GTA: Purvi Saraiya

Office Hours: when/where ???

Course Website: http://courses.cs.vt.edu/~cs2704/summ02/ The course Website will include copies of the course syllabus (this document), pertinent department policy statements, office hours, test dates, programming project specifications as available, and timely announcements. You are advised to (read that as "You must") consult the Website on a regular basis. The course Website also will have links to other useful information.

Prerequisite: CS1704 (absolutely required)

Texts & Materials:

  1. The Practice of Programming by Brian W. Kernighan and Rob Pike, Addison-Wesley 1999.
  2. Recommended: C++ How to Program, 3rd Edition, by Deitel & Deitel (or any other good C++ reference)
  3. Strongly recommended: An inexpensive copy of the Spring/Summer 2002 edition of the course notes is available through A-1 Copy Center (University Mall).

Honor Code: All work on assignments and exams is to be your own. You will be required to sign an honor code statement on all of your work. Students are encouraged to discuss general project design issues and to discuss the problems themselves, as the sharing of ideas and a better understanding of the problema will lead to better systems. However, discussion of actual code or (even worse) sharing of code is not tolerated and furthermore it is easy to detect. Please avoid the awkward situation of being caught sharing code with other students. To sum up, plagiarism will not be tolerated.

What is plagiarism? Check the website, http://www.plagiarism.org/. I do not tolerate plagiarism, so avoid doing it and do not even try to justify it by giving excuses that begin as "I was not aware that ..."

An exhaustive list of Honor Code violations would be impossible to present here, but among other things, each of the following is a flagrant violation of the Virginia Tech Honor Code, and violations will be dealt with severely (Honor Court):

  • Working with another student to derive a common program or solution to a problem. There are no group programming projects in this course.
  • Discussing the details required to solve a programming assignment. You may not share solutions.
  • Copying source code (programs) in whole or in part from someone else.
  • Copying files from another student's disk even though they might be unprotected.
  • Editing (computer generated) output to achieve apparently correct results.
  • Taking another person's printout from a lab printer, remote rprint printer, trash can, etc.

It is acceptable to discuss with classmates a programming assignment in a general way, i.e., to discuss the nature of the assignment. In other words, you may discuss with your classmates what your program is required to accomplish but not how to achieve that goal using C++. 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 those people cited in the following statement. Privately hired tutors are not an exception to this requirement, nor are athletic or other tutors provided by the University.

Feel free to discuss the assignment and your program specifically with the instructor or graduate teaching assistant. The discussion of your individual program must be limited to these people.

If you have any questions as to how the Honor Code applies to this class, remember that:

  • Any work done in this class must be done on an individual basis.
  • Credit will be given only for work done entirely on an individual basis.
  • Do not make any assumptions as to who can provide help on a programming assignment.
  • Evidence indicating the violation of the policy stated above will be turned in directly to the Honor Court.
  • It is much easier to explain a poor grade to parents or a potential employer than to explain an Honor Court conviction.

In addition, the Honor Code statement included in the Student Guide to the Curator is in force for this class.

The Honor Code will be strictly enforced in this course. All assignments submitted shall be considered pledged graded work, unless otherwise noted. All aspects of your work will be covered by the Honor System. Honesty in your academic work will develop into professional integrity. The faculty and students of Virginia Tech will not tolerate any form of academic dishonesty.

If you are uncertain about what is and is not acceptable, please ask the instructor.

Programming Assignments and Homeworks: There will be several programming assignments in the semester. Some are larger projects and some are smaller homeworks. All work is to be done individually.

The programming projects must be implemented in Standard C++. You may use any Standard conformant compiler you like, however all programming assignments submitted are required to compile under either Microsoft Visual C++ version 6.0 or the GNU g++ compiler installed on the Linux machines in McB 124 (preferably Microsoft Visual C++). Programs will be tested under either Windows NT or Linux. It is your responsibility to ensure that your programs execute correctly in the appropriate environment.

All the programming projects will be submitted electronically, using the Curator System. See the Curator Project Guides Page (http://ei.cs.vt.edu/~eags/Curator.html) for more information. Be sure to download and read the Student Guide to the Curator — it contains answers to most questions students have about the Curator System. The Student Guide also contains information about how the Honor Code applies when using the Curator; be sure to read and follow the guidelines given there.

Each of your programming projects will also be graded for adherence to good software engineering principles, including documentation, design, conformance to the stated specification, and programming style. Each project specification will include explicit guidelines that you will be expected to follow, in addition to the general SE principles discussed in class.

Late Policy:  Late work is not accepted (personal catastrophes should be discussed with the instructor).


Programs 50% 3 programming assignments
Quizzes & Homework 15% Unannounced quizzes-- approximately 2 per week. Homework will consist of small programs and questions.
Mid-term Exam 15% In-class exam.
Final Exam 20% Comprehensive final exam.

Attendance: Required. There are approximately 30 classes. You may miss 3 for free. The 4th one will cost you a letter grade, e.g. from an A to an A-. For every 2 classes you miss after the first 3, you will drop a grade.

Special Assistance: Any student who needs special accommodations because of a disability should contact the instructor the first week of classes to make arrangements.  Please do not wait to see if you will need special accommodations for this class;  let me know ASAP so that it does not become a major problem.