6.S096 | January IAP 2014 | Undergraduate

Effective Programming in C and C++

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.
  • Your comments interspersed in their code.
  • A summary of main points relating to the review (what they did well, major areas for improvement, common issues, general observations).

Use the C++ Coding Standards and Best Practices provided to guide your review.

Course Info

Instructor
As Taught In
January IAP 2014
Learning Resource Types
Problem Sets with Solutions
Lecture Notes
Programming Assignments with Examples