We will construct software components and applications using popular
programming tools available in the UNIX environment (such as C++,
make, emacs, dbx, RCS, gprof, and CORBA). You are expected to be
familiar with an object-oriented programming language. Implementation
will be done using C++.
There will be a number of 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 available 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. Algorithms and data structures
taught in CS241 will be used to reinforce the implementation of these
Projects will involve substantial programming in C++ and UNIX and will
be done individually by each student. Students are assumed to be
competent in C++ and familiar with basic UNIX operating system
features such as electronic mail, WWW browsers, and USENET newsgroups.
Students not familiar with these tools will have to learn them outside
of class. I will teach a short seminar on C++ early in the semester
during my office hours.
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.
- 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
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 Thursday,
starting on January 18th. The exam and the quizzes will be based on
material presented in class. Therefore, it is 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
Note that I reserve the right to change the weights during the course
of the semester.
- 25% Exams
- 40% Programming projects
- 35% Quizzes
Back to CS342 home page.