5903 Intro Scientific Prog:
Summer 2009 Assignments

Rules:
  1. All programs must be submitted electronically as gzipped archives that unpack into a directory named "Name_HWn" where Name is your name and n is the number of the assignment.
  2. The directory must be complete and self contained.
  3. The program must compile with the gcc compiler using a simple make command. The executable must be named "Name_Hwn".
  4. The executable must operate according to the program specifications.
  5. The directory must contain one (or more) "ReadMe" files explaining usage, any known problems, and how the program was tested/validated.
  6. We will discuss submitted programming assignments after the deadline in class.  For this reason deadlines will be enforced.
  7. Each assignment will be 10pts.  A non-compiling program or one that does not run correctly on the test problem is a zero.  A compiling program that runs correctly on test problems is at least 7/10.  Of the remaining three points: one is for complying with the naming and documentation requirements;  the remaining two points are for programming readability and style.    
Style:
  1. Your code NEEDS to behave as it is supposed to.
  2. No "magic" Numbers.
  3. Meaningful/reasonable variable names.
  4. Adequate documentation/comments.
  5. Thorough testing and validation.
  6. Reasonable code reuse and compartmentalization.
Formats:
  1. Vectors and Matrices are structures 
  2. The file format for a vector and a matrix are
  3. You should be able to substitute new lines for tabs and vice versa in all locations
  4. No comments in file before the end of the data. 
  5. I will put .vec and .mat as extensions as mnemonics (i.e. memory aids).
  6. Require: Creator/Destructor/Reader/Writer for both mat and vec
  7. All should provide some feedback in return.
  8. Sample vector (small/med) and matrix files (small/med) are provided.

Assignments: (Due Dates and additional assignments will appear as we go through the term. Assignments will be discussed in class) 
    1. Hello World
    2. Libraries and Makefiles
    3. Multiple Input Files
    4. Parsing Input Arguments
    5. Primes
    6. More Primes
    7. Word Count A
    8. Word Count B
    9. CORDIC
    10. Project Plan
    11. Optimization Functions A
    12. Conjugate Gradients
    13. Optimization Functions B
    14. Grading Exercises
    15. QR Eigenvalue Algorithm
    16. Function Pointers
    17. Project Report
    18. Project Presentation