There are two different types of assignments for this course. Those designated as "homework" assignments are typically pen-and-paper assignments that are turned in at classtime, while "programming" assignments are completed and submitted electronically.

The tables below gives the assignments, and associated dates. All future dates are tentative until such assignments are made available.

Please make sure you understand the policy towards Academic Integrity.

Late assignments of either type will be penalized in accordance with our Late Policy.


HOMEWORK ASSIGNMENTS

Assignment Topic Due Collaboration Policy Solutions
hw01 Television Class individual soln
hw02 Transition to C++ individual soln
hw03 Usage of the (simplified) vector class individual soln
hw04 Stacks and Queues individual soln
hw05 Linked List Manipulations individual soln
hw06 Trees individual soln
hw07 Balanced Trees individual soln


PROGRAMMING ASSIGNMENTS

Program Topic Due Collaboration Policy
prog01 GC Content of DNA individual
prog02 Credit Card pair
prog03 Web History individual
prog04 Merging Lists individual
prog05 Smart Stacks pair
prog06 Decision Trees individual
prog07 Programming Contest pair

GENERAL INFORMATION ABOUT PROGRAMMING ASSIGNMENTS


Programming Assignments

What to submit

Electronic Submission Procedure

All programming assignments must be submitted electronically. For each assignment, there will be an aptly named folder in your online submit directory.

Receiving Grade Reports

Grade reports for each program, as well as an overview of all grades received in the course will be kept for each student in a special directory named 'grades' within the online submit directory.

Command-Line Arguments in C++

The execution of a program is generally started on the command line by typing the name of the executable in the current working directory (e.g., ./MyProgram). In this case, the program begins running and can further query the user for any additional information which might be needed. However, tere is an alternate approach which is quite common.

The same executable can be provided additional arguments at runtime by including them on the command line, separated by spaces. These are often called either runtime arguments or command-line arguments. For example, you might start the MyProgram executable with the command:

./MyProgram alpha beta gamma
In this case, the main routine of the executable MyProgram will be run, with signature as follows
int main(int argc, char* argv[])
where argv is an array of C-style strings which represent the arguments specified on the command line, and argc is the number of such arguments. Please note that the name of the executable is the first such argument, so the example above would result in main being invoked with argc=4 and argv representing the four strings {"MyProgram","alpha","beta","gamma"}.


Last modified: Monday, 08 December 2008