Computer Science 180
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.
|hw01||Television Class||Friday, 12 September 2008, 10:00am||individual||soln|
|hw02||Transition to C++||Friday, 19 September 2008, 10:00am||individual||soln|
|hw03||Usage of the (simplified) vector class||Wednesday, 1 October 2008, 10:00am||individual||soln|
|hw04||Stacks and Queues||Thursday, 23 October 2008, 10:00am||individual||soln|
|hw05||Linked List Manipulations||Wednesday, 5 November 2008, 10:00am||individual||soln|
|hw06||Trees||Friday, 21 November 2008, 10:00am||individual||soln|
|hw07||Balanced Trees||Friday, 5 December 2008, 10:00am||individual||soln|
|prog01||GC Content of DNA||Friday, 5 September 2008, 11:59pm||individual|
Monday, 29 September 2008, 11:59pm
|prog03||Web History||Thursday, 16 October 2008, 11:59pm||individual|
|prog04||Merging Lists||Thursday, 30 October 2008, 11:59pm||individual|
|prog05||Smart Stacks||Monday, 17 November 2008, 11:59pm||pair|
|prog06||Decision Trees||Monday, 1 December 2008, 11:59pm||individual|
|prog07||Programming Contest||Monday, 8 December 2008, 11:59pm||pair|
For each assignment, you must submit all source code files that you have created or modified. For many assignments, we will have provided you with a number of files containing source code that need not be modified. In such cases, there is no need for you to re-submit these files; we have them already.
You are required to submit a text file titled "readme" with every program you submit. Please do not submit any formatted files such as those produced by Microsoft Word or other word processors. It will be read at the time your program is graded, so it allows you to give helpful information.
The content of the file should generally include
A brief (i.e. one or two paragraph) overview of your program and any interesting design decisions that you made.
A clear citation of any help you received on this program from other (approved!) sources, as detailed in the policy on Academic Integrity.
Many of our program assignments explicitly require the inclusion of additional, specific information in this file. Please read the individual program assignments carefully.
Finally, you may include any other discussion that you feel will be helpful when grading your assignment. For example, if there are known bugs or problems with your program, you might briefly discuss them here.
For some of the programming assignments, you will be asked to submit an additional file "inputfile" that provides test input for the program. In these cases, we will run all of the students' programs on all of the students' test inputs. Your goal will be to have your test input fool as many students as possible while having your program work correctly on as many of the other test inputs as possible.
In such cases, please make sure that your input files conform strictly to the expected format standards when the program driver is run using your file as input. Again, such input files must be submitted as a plain unformatted text file (for instance one created with "Notepad" on a Windows system). Do not submit any formatted files such as those produced by Microsoft Word or other word processors.
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 gammaIn 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