CS 44001/54001 Computer Science III
Programming Labs
Lab policy.
Unless stated otherwise the rest of the policies ar as for CSI
found here.
You may develop your assignments on any platform (Windows/MS Visual
Studio, Unix/GCC, Mac). However, your program should compile on
departmental machine wasp or hornet
using g++ command. Make sure to check that
it properly compiles before submitting your code.
The URL for the subversion repository for this class is http://svn.cs.kent.edu/courses/cs44001/svn/YOURNAME
Submit your lab assignment into a separate subfolder. Name the
subfolder LabX where X is the lab number. If the lab
contains several independent parts, name subfolder LabX_Y where Y is the part number.
Assignments
- Procedural Diff
- Word Count
- Templated List
- Roster with Class Schedule
- Roster with Class Schedule, Associative; Set of Students
- Fruit Processing, Container Adapters, Multimaps, STL Algorithms
- Updating Hash Container
- Singleton Logger, Templated Dice
- Abstract Car Dealership, Bridge Painted Square
- Adapter Moving Square, Prototype State Scheduler
- Decorator Observer Chain of Responsibility Coffee Shack
The following is considered bad programming practice and may be penalized:
- re-using portions of nearly identical code: i.e. copy-and-paste
programing.
- using c-style strings instead of c++ style strings
- using a fixed-size buffer for variable-size collection of
elements, i.e. hard-coding container size
- using variables where constants are appropriate e.g.
using int i = 55; instead of const int i = 55;
even if i is not modified again
- using excessive variable and constant scopes, for example
declaring all variables/constants global or declaring them all at the beginning
of a long function
- writing the source code lines over 80 characters
- not commenting your code
- using literal constants inappropriately, i.e. hard-coding the dimensions
of the problem
- reading the same file multiple times from the disk
- inlining long (i.e. more than one or two line-) member functions
- defining classes in source (rather than header) files
- defining templates in source files
- placing executable code in header files
- using raw arrays instead of appropriate containers; using vectors where
more specialized containers are appropriate
- using explicit loops instead of appropriate STL algorithms
- placing using namespace std; in a header file
- breaking out of infinite loops with break; instead of properly
coding the loop termination condition
- giving constructs non-descriptive names: var1, intVar, myobj, func()