Course Home | Homework | Programming | Schedule & Lecture Notes | Submit

Saint Louis University

Computer Science A220/P126
Data Structures and Object-Oriented Programming

Michael Goldwasser

Spring 2005

Dept. of Math & Computer Science


  • List of Programming Assignments
  • General Information about Programming

  • PROGRAMMING ASSIGNMENTS

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

    Program Topic Date Collaboration Policy
    prog01 Arrays and Vectors Tuesday, 25 January 2005, 8pm individual
    prog02 Magic Thursday, 3 February 2005, 8pm pair
    prog03 Webhistory Monday, 14 February 2005, 8pm individual
    prog04 Survivor Tuesday, 1 March 2005, 8pm pair
    prog05 Merge Thursday, 17 March 2005, 8pm individual
    prog06 Cards Tuesday, 5 April 2005, 8pm individual
    prog07 Arithmetic Expressions Monday, 18 April 2005, 8pm pair
    prog08 Bin Packing Friday, 29 April 2005, 8pm pair


    GENERAL INFORMATION ABOUT PROGRAMMING


    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.

    C++: Software, Documentation, Technicalities

    Coding Style and Conventions

    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.

    Command-Line Arguments

    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 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"}.

    Modular Arithmetic Operator

    The "%" operator, when evaluated with integer operands, is for doing modular arithmetic. Specically expr1 % expr2 will return the remainder of dividing expr1 by expr2.

    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.


    Computing Resources at SLU

    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 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.


    Michael Goldwasser
    CS A220/P126, Spring 2005
    Last modified: Sunday, 17 April 2005
    Course Home | Homework | Programming | Schedule & Lecture Notes | Submit