AM 3611F: C++ for Scientific Computing Project1
Proposal: Due October 7
Mini-Project: Due November 11
Presentation: November 25 – December 4
Full Project: Due December 4
Before starting your project
For this project, you will be working in groups of 2–3 people from the class (if you would prefer working
alone, you will have to get the instructor’s approval before the proposal of your project is due). This project
is intended for you and your group members to explore a topic (which has a computational aspect to it)
that interests your group. Some topics that could be done for your project are Bohemian matrices (eigenvalue computations and eigenvalue visualization)2
, homotopy methods for finding roots2
, linearizations of
matrix polynomials expressed in different polynomial bases2
, solid-liquid-gas simulation, stock/option prices,
database correlation finder, etc.—the options are endless!
When deciding on your group, keep in mind that a larger group will be expected to accomplish more. For
example, the written description (not including figures, code, or sample I/O) of the project might be expected to be about 5–8 pages (Arial 12 point single-spaced) for a group of 2, but about 9–12 pages for a
group of 3. In addition, all members must be involved in the coding, the write-up, and the presentation (you
can divide each of these tasks up, but each member must have some significant contribution to each aspect
of the project). Groups of two are probably ideal.
Make sure you can break out a small sure-fire achievable mini-project to ensure you have something completed and working before you have to give a presentation. How realistic a project is may depend on your
background. If you are not sure whether your project is reasonable, please come to see me and we can discuss
Your proposal (one proposal per group) should include:
1. Group members’ names: 2–3 people from this class (if you want to work alone, you will have to get
the instructor’s approval beforehand)
2. 1/2 to 1 page description of your proposed project
3. 1/4 to 1/2 page description of your proposed mini-project
4. Citation of two journal articles that are related to your proposed project
Your project description should include something like what is included in the samples below along with some
indication that you have thought about how to implement the project (such as some classes you might need
to create (you are expected to use object-oriented programming for this project so there must be multiple
classes involved), including some functions that might be needed, etc). Note that the project you do for this
class must be distinct from any project done in any other class at Western or elsewhere: it is considered
academic misconduct to attempt to get credit for the same work multiple times.
The mini-project is essentially a first draft of your main project. It should involve a discrete deliverable that
will be needed for the main project and the write-up (requirements are below in the description of the Full
Project) should be similar to, but a bit shorter, than that for the main project with the difference that for
the mini-project I will accept bullet points and references to Wikipedia.
1This document has been adapted from a previous version by Prof. Colin Denniston.
2These projects are of particular interest to me.
We will have presentations in the last 5 lectures plus potentially another 1-2 hours outside of regular classtime in the last week. There will be a doodle poll for people to sign up to a specific time-slot closer to the
date, perhaps with some bonus mark incentive for people who sign up to do their presentation early.
Presentations will be 12-20 minutes each (I will make this more precise once we know how many presentations
we need to fit in) and you should use a power-point like program (MS PowerPoint is free to install for all UWO
students, Keynote is common for Macs, Beamer if you prefer to use LaTeX, and there are many others—
please do not use Prezi since it may cause some people to become dizzy or have headaches). Suggestions for
formatting your presentation include:
• I recommend using no more than 1 slide per minute of presentation.
• Your slides should not contain large amounts of text. (Recommendation: max 8 words across and 8
rows of text)
• You should certainly not read directly from your slides.
• You should probably not include an outline slide as this is a short talk.
• You should view the presentation similar to an advertisement for a product (the paper version of your
final project). As such, you do not need to provide all the backup information in your presentation,
just the main points and results.
• If you feel rushed, you probably have put too much stuff in your presentation. Step back and cut out
some of the details.
• Rehearse your presentation with your group at least once before the day of your presentation.
Your final project write-up should contain the following sections:
(a) State basic objectives and explain why the topic is important
(b) Literature review: You should summarize what has been done on this topic before and where you
found out about it (Wikipedia can be used as one of your references for the mini-project, but you
should look up the original sources for the full project).
(c) Grab the reader’s attention by presenting some of the interesting questions you will address with
your project: eg. paradoxical results that are known, topical examples, or challenges to common
(d) Give a short summary of results in the introduction.
2. Conceptual framework of the problem
(a) Background information about the specific problem you are addressing
(b) General approach to answering the question posed (e.g. The theory suggesting a framework for
analysis; intuitive discussion of the result you might expect)
(c) Mathematical formulation of the problem
3. Numerical model/computation algorithm to be used to solve the problem
(a) Specify the numerical model you will use to solve the problem described in part 2. This should
i. Where the algorithm came from, including references
ii. A description of why it solves the problem outlined in part 2. (A derivation if it can be done
in about half a page, otherwise a summary of how one could derive it). This should also
include any assumptions that need to be made for the method to work.
iii. A discussion of any errors associated with the method. e.g. do you expect the result to be
a numerically exact solution to the problem or just an approximate solution to the problem.
How do you plan on getting an estimate of how big these potential errors might be?
iv. A description of how you implemented the numerical model including the overall design of
the code (e.g. The code was broken down in 3 main parts, a part to input data/instructions,
a part to implement the actual algorithm, a part to output/plot/analyze results); any data
structures or classes used; any special implementations of things you are especially proud off,
v. A description of any libraries you used and how you interfaced your code to use them.
(b) Data: If you need external data for your project, then you should describe the data used and the
source of any such data.
(a) Test results that demonstrate your program works as advertised. This might include comparison
to extreme or idealized cases that can be solved exactly, some demonstration of the I/O the
program used, etc.
(b) The main results should be present in a prose-like format (i.e. tell a story). For example, you can
explain a measurement/simulation you did, then present a plot of the outcome of the simulation,
then comment on the plot using words describing the result (increasing x causes y to increase
linearly/nonlinearly/as expected/not as expected, etc).
(c) A discussion of estimate of any errors discussed in part 3(a)(iii). Does your numerical solution of
the model perform as expected?
(a) Summarize main results and conclusions from them
(b) Discuss caveats to the conclusions drawn
(c) Suggest directions for further research
6. Additional Style Requirements
(a) Choose a title reflecting the paper’s topic
(b) Papers should be typed
(c) Number equations, figures (plots), and tables
(d) Plots should have labeled axes, including clear units, a figure caption describing what is plotted,
a legend or description in the caption of all lines/symbols so it is clear what is plotted.
(e) If you wish to compare two things they should be compared quantitatively, not some vague
statement about similarity.
(f) Attach bibliography of cited articles, and cite them specifically in the text either by number in
your reference list; e.g. , or by author and date; e.g. White (1980) (in which case the reference
list should be ordered alphabetically 1st and by year 2nd).