# Projects¶

The initial completion check: Each project will specify a set of items that you must complete approximately one week prior to the official due date. This is to ensure that your tools work, and to minimize the burden of last minute questions. Unless otherwise approved, these completion checks must be performed during your Monday lab session, and it is your responsibility to meet with the TA to have her/him check your code. Failure to have your project checked during lab will result in a 10% grade reduction on your project.

Due date: The project reports must be turned in by 5:00 pm on the specified due date. Late work will lose points based on the following schedule:

• 1 minute to 24 hours – 10 points
• 24 hours to 48 hours – 20 points
• 48 to 72 hours – 30 points
• 72 to 96 hours – 40 points
• over 96 hours – no credit

Turning things in: Before 5:00 pm on the date indicated, you must upload a single ”.tgz” or ”.zip” file to Canvas, containing all of the following items:

• Turn in all C++ functions as separate ”.cpp” files, and all Jupyter notebooks as ”.ipynb” files. If you have used or modified the C++ “Matrix” class, turn in the corresponding files as well.

• A technical report, that should:

• Use complete sentences and paragraphs – this is a report, not an itemized list of responses.

• Explain the problems to be solved, and the mathematical approaches used on them.

• Describe your codes, including a discussion on any unique decisions that you had to make.

• Discuss all of your computed results. In this portion, you should include any relevant plots, as well as any relevant output from running your codes.

• Answer all questions posed in this project.

• In your own words, explain why you found the results that you did, justifying them mathematically if applicable.

• Include all of your C++ functions, Makefiles and input files as attachments to the report.

• Be in a single ”.pdf” file.

Note

I highly recommend you write your report, with all text, C++ code, Python commands, and plots, as a Jupyter notebook. Your notebook may be “saved” or “printed” directly to a ”.pdf” file.

For example: notebook, pdf file.

The uploaded code and all results in your writeup must match – always turn in output from the final version of your program. Otherwise points will be deducted, and we will not know whether the results came from your program or somebody else’s (so you will be suspected of violating the Honor Code).

You must obey the SMU Honor Code on all projects (all work must represent your own individual effort).

## Example Project¶

The following project was turned in by a student for a previous year’s project (Matlab-based). It is a good example of the level of detail and the kind of work that is expected in the write-up for projects in this class.

## Project 1: Taylor Series and Floating-Point Error¶

(assigned 8/23, progress check 9/7, due 9/15)

## Project 2: Linear and Nonlinear Solvers¶

(assigned 9/15, progress check 9/26 & 9/28, due 10/6)

 Project description Example files: p2.tgz (bisection.cpp, fcn.hpp, test_bisect.cpp, Makefile)

## Project 3: Polynomial Interpolation¶

(assigned 10/6, progress check 10/24 & 10/26, due 11/3)

 Project description Example files: p3.tgz (Lagrange.cpp, test_Lagrange.cpp, plot_Lagrange2D.py, plot_Lagrange2D.ipynb, matrix.hpp, matrix.cpp, Makefile)

## Project 4: Numerical Integration¶

(assigned 11/3, progress check 11/16 & 11/21, due 12/1)

 Project description Example files (composite_Gauss2.cpp, test_Gauss2.cpp, fcn.cpp, Makefile)