Saint Louis University |
Computer Science 220
|
Dept. of Math & Computer Science |
The table below gives the assignments, and associated dates. All future dates are tentative until such assignments are made available.
Program | Topic | Date |
---|---|---|
prog01 | Credit | Wednesday, 8 September 2004, 8pm |
prog02 | Web History |
Part 1 - Monday, 20 September 2004, noon
Part 2 - Thursday, 23 September 2004, 8pm |
prog03 | Survivor |
Part 1 - Wednesday, 6 October 2004, 8pm
Part 2 - Monday, 18 October 2004, 9am |
prog04 | Merge | Thursday, 28 October 2004, 8pm |
prog05 | Cards | Monday, 15 November 2004, 8pm |
prog06 | Magic | Tuesday, 23 November 2004, 8pm |
prog07 | Arithmetic Expressions | Tuesday, 7 December 2004, 8pm |
For each assignment, you must submit all source code files which you have created or modified. For many assignments, we will have provided you with a number of files containing source code which 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
Your name
A brief (i.e. one or two paragraph) overview of your program and any interesting design decisions which 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 which 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" which 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.
We ask that you read Section 1.7.2 of the text and expect you to adhere to the guidelines outlined within in regard to programming readability and style.
The execution of a program is generally started on the command line by typing the name of the executable (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
The "%" operator, when evaluated with integer operands, is for doing
modular arithmetic. Specically
Pease keep in mind that this operator has equivalent precedence as multiplication and division. That is, the expression a + b % c + d is implicitly evaluated as a + (b % c) + d, which is not the same as (a + b) % (c + d).
Furthermore, the behavior of the "%" operator is peculiar when one or both of the operands are negative numbers. You will probably want to avoid allowing negative numbers to enter into such calculations.
An account for each student has been created on, turing.slu.edu, our department computing cluster. The cluster runs the Linux operating system. It is accessible from both on and off campus by one of the following two ways:
For text-based access to your account, you may log in using 'ssh' a protocol for a secure shell connection.
Alternatively, if you wish a fully graphical, windowing environment, you may log into the cluster using a program called VNC (Virtual Network Connection). This can be done directly within a web browser, or more efficient viewers can be installed on your own computer if you wish.
For more detailed information on access to the cluster, visit http://turing.slu.edu/, and the link to "Accessing Turing".
Please note: you are not explicitly required to use turing as your computing platform, it is simply the only platform what we will officially support. If you wish to use another platform that offers you sufficient support for completing your assignments, please feel free to do so.