CS 251: Course Work
We will construct software components and applications using popular
programming tools available in the Linux and/or Windows environment.
You are expected to be familiar with an object-oriented programming
language. Implementation will be done using C++.
Graduate students who are taking this course will be expected to do
additional work compared to undergraduate students in the class. This
additional work will involve the following sorts of activities:
- Additional algorithms, additional features, and additional
optimizations on programming assignments
- Additional questions on quizzes and final exam.
The assignments and quizzes will explain precisely what additional
work graduate students will be expected to perform.
Programming Projects
There will be around 5-6 programming projects that will build upon one
another to illustrate the value of good design and implementation
techniques on the software lifecycle. Online descriptions of these
assignments will be made available at the appropriate times via the Web.
An important goal of the assignments is to teach you about design
alternatives by comparing and contrasting a number of examples of
designs based on different paradigms. Data structures taught in CS
201 will be used to reinforce the implementation of these
projects.
Projects will involve programming in C++ on Linux and/or Windows and
will be done individually by each student. Students are
assumed to be competent in C++ and familiar with basic operating
system capabilities, such as electronic mail and WWW browsers.
Students not familiar with these tools will have to learn them outside
of class. I will present lecture material on C++ early in the
semester.
To encourage you to write well-designed software, I reserve the right
to change the assignment specifications at any point before the due
date. Expect this to happen several times during the semester. If
you have written your program in a modular fashion the changes will be
trivial to implement.
The programs will be graded using the following criteria:
- 40% execution correctness
- 30% structure (e.g., modularization, information hiding, etc.)
- 10% insightful programming (e.g., developing reusable class components, etc.)
- 10% Consistent style (e.g., capitalization, indenting, etc.)
- 10% appropriate commenting style
There will be a mandatory 5 point deduction (out of a possible
100 points) for each day that your program is late after the
deadline. Moreover, I will not accept programs that are turned in
later than two calendar days after the due date.
I will read all initial submissions and provide students with detailed
comments on what to fix. The students are then responsible for fixing
problems I identify (and other problems they identify based on their
testing) and resubmitting their solutions to the TAs, along with an
overview of how they addressed my initial comments. The TAs will then
assign the final grades. Here's a summary of the policies for
resubmissions and grading:
- The code submitted to the TAs after my comments must build and run
correctly. If not, points will be deducted.
- The code should also be well-written, e.g., exception safe,
well-commented, etc. If not, points will be deducted.
Students are expected to submit programs that meet these criteria,
i.e., it's not the TA's job to fix these problems for the students and
engage in an iterative resubmission process. Moreover, because I
carefully inspect, compile, and run all submissions I can quickly
identify students who do copy each others' programs. Please make sure
to do your own work, therefore, to avoid problems with violating the
Vanderbilt University Honor Code.
Exams
There will be one in-class final exam. This will be worth 15% of your
grade. Material tested on the final exam will be comprehensive.
Quizzes
There will be a short graded quiz at the end of class each Wednesday,
starting on August 25rd. The exam and the quizzes will largely be
based on material presented in class. It is therefore essential that
you attend class in order to prepare for the quizzes and final exam.
There will be no ``makeup'' quizzes unless you ask permission from me
before the quiz.
The relative weighting of each portion of the course is presented
below:
- 45% Programming projects
- 40% Quizzes
- 15% Final Exam
Note that I reserve the right to change the weights during the course
of the semester.
Back to CS
215 home page.