CS 291: 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 class as a 291 course will be expected to do additional work compared to undergraduate students who are taking the class. The assignments will explain 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:

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.


There will be one in-class final exam. This will be worth 25% of your grade. Material tested on the final exam will be comprehensive.


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: Note that I reserve the right to change the weights during the course of the semester.

Back to CS 291 home page.