# Assignments

ASSIGNMENTS SUPPORTING FILES
Assignment 1

Problem 1: Floating Point (PDF)

Sample Solution to Assignment 1, Problem 1

Test data: floating.data (ZIP) (This ZIP file contains: 7 .in files and 7 .out files.)

Problem 2: Matrix Manipulation (PDF)

Sample Solution to Assignment 1, Problem 2

Test data: matrix.data (ZIP) (This ZIP file contains: 10 .in files and 10 .out files.)

Problem 3: Matrix Manipulation 2 (PDF)

Sample Solution to Assignment 1, Problem 3

Test data: matrix2.data (ZIP - 20.7MB) (This ZIP file contains: 11 .in files and 11 .out files.)

Problem 4: Transposition Cipher (PDF)

Sample Solution to Assignment 1, Problem 4

Test data: loop.data (ZIP - 19.1MB) (This ZIP file contains: 10 .in files and 10 .out files.)

Assignment 2

Problem 1: Linked List Library (PDF)

Sample Solution to Assignment 2, Problem 1

Solution code and test data: list (ZIP) (This ZIP file contains: 2 .h files, 2 .c files, 1 .make file and 1 .txt file.)

Problem 2: Minimum Spanning Tree (PDF)

Sample Solution to Assignment 2, Problem 2

Solution code and test data: mst (ZIP - 5.3MB) (This ZIP file contains: 1 .make file and 1 .cpp file.)

Problem 3: Rational Number Library (PDF)

Sample Solution to Assignment 2, Problem 3

Solution and test data: rational (ZIP)  (This ZIP file contains: 2 .h files, 3 .cpp files, 1 .make file and 1 .txt file.)

Assignment 3

Problem 1: C++ Linked List Library (PDF)

Sample Solution to Assignment 3, Problem 1

Solution and test data: cpplist (ZIP) (This ZIP file contains: 3 .h files, 4 .cpp files, 1 .make file and 1 .txt file.)

Assignment 4 (Final Project)

Problem: N-Body Gravity Simulation (problem statement available in Lecture Notes for Lecture 8)

Starting environment: nbody (ZIP - 2.2MB) (This ZIP file contains: 5 .h files, 5 .mk files, 7 .cpp files, 1 .make file and 1 .txt file.)

## More Details on Assignment 4 (Final Project)

The following should be included as your final project deliverables:

• Zip file containing the group's project environment that contains the full source code and can be used for setup.
• Overview of the project: What are the important features you've created? What was challenging, and what have you achieved?
• A short write-up describing the division of work. For example, "We decided to have person X and Y work primarily on the physics engine while Z developed the visualization components…"
• A short description of the project's structure, including descriptions of important classes and their interactions. If you can make a readable diagram of the interactions, you can submit that rather than a text description.
• Screenshots of the results and description of how to operate your project. Examples include images of the visualization in operation, what happens when you run certain n-body systems, etc.

The operative words for the written bits are "short" and "concise"—don't write an essay. Describe enough to give an overview of the system; if your code is well written, you should have to write very little!

## Code Review

You should choose a bite-sized chunk that will take you approximately 45 minutes to an hour to fully review. The following should be included when submitting a code review:

• The snippet of code you are reviewing: more than 30 lines, less than 100.