Project Report Guide



You are free to discuss projects with your classmates. However, each project report must be solely your own work: it must be written by you in its entirety, including all computer code. Plagiarism will result in the zero score on a report, and possibly in additional sanctions (an F grade, an academic disciplinary action etc.).

Using external resources

There are two types of resources that may be relevant. First, there are plenty of books and websites devoted to Python programming. You should take advantage of this. If you have a programming question then in most cases a quick google search will get you an answer.

Second, most of the projects you will be working on are based on mathematical problems and ideas that are described somewhere. However, you should not start your work on a project by doing a web or library search. The goal of each project is for you to explore a problem on your own. Description of your explorations and experimentation must be the main part of your project report. It is fine to include some background information on the project (properly referencing books and websites it comes from) but it is not necessary, and you can get a perfect score without it. Moreover, projects are open-ended so there is no "complete solution" you should be looking for. Have fun, explore, and put in the report what you came up with.

Additional Python features

We will not be able to cover all features of Python in this course. You are free (and encouraged!) to explore additional Python tools on your own and use them in your code. The only condition is that you must understand your own code and be able to explain it in detail if asked. You must not copy code snippets that you found somewhere and that somehow seem to be doing what you need.

Report grading rubrics

Project reports will be graded as follows. Each element listed in the table below will be graded on the A-F scale. These letter grades will be then converted into numerical scores (A = 4.0, A- = 3.67 etc.), multiplied by the corresponding weights, and added together. The resulting score will give the letter grade for the whole report.

Bonus (if any) will be indicated by either 'X' or 'XX'. The 'X' bonus will increase the overall report grade to the next higher grade (from B to B+, from B+ to A- etc.). The 'XX' bonus will increase the report grade by two grades (e.g from B to A-). A report grade with a bonus may be higher than A, and will be indicated by either A+ or A++.

Element Weight What will be graded
Introduction Section 10% Quality of the narrative.
Conclusions Section 10% Quality of the narrative.
Report Content 30% Work done on developing the project. Your analysis, insights, observations, and interpretations. Quality of the narrative of the report.
Python Code 30% Quality of the Python code included in the report. Relevance of the code to the project. Code organization. Documentation of code by code comments.
Presentation 20% Organization of the report. Text formatting. Use of LaTeX to typeset mathematics. Formatting of code output. Quality of graphs and plots.
Bonus   Extra credit for excellent work that exceeds expectations.


The reports are your opportunity to tell a compelling story. When I read your report, I will look for your understanding, coverage and presentation of results. So submitting project reports is not about merely carrying out the tasks laid out in the problem statements. I expect you to use those as a springboard to begin your explorations and study in depth. When you finally report your results, you must be speaking in your own voice, and the report should be laid out in a complete, coherent and engaging manner demonstrating that you are thinking and learning.

Report Style Guide

Report introduction

A report must begin with an introduction section. It should explain the project and the goals of the report in a way which is engaging and understandable to a student who has some math background, but does not take this course. Introduction should not be limited to a list of tasks you want to accomplish. While explaining the project use your own words, do not copy the project description.


Report conclusions

The final section of the report must summarize your results and conclusions.

Report organization

Beside the sections with introduction and conclusions the body of the report should be logically organized into sections reflecting its content.


If you used books, articles, websites etc. while preparing the report they should be listed at the end of the report.

Math formatting

Use LaTeX to format all mathematical symbols and formulas.


Code structure

Python code should be split into possibly short code cells that accomplish a single, well defined task. In particular you should not define several functions in one cell or define a function and execute it in the same cell.

You should explain (even if very briefly) the purpose of each piece of code. As a rule, you should not have in a report two consecutive code cells without any text between them.


Code sequencing

All Python code in the report must be entered in such order that it can be read and executed sequentially, from the beginning to the end of the report. For example, you should not use a Python function in your report prior to defining this function.


Code comments

Code comments should be used to explain workings of the code.


Execution errors

All code included in your report must work. Do not submit reports with execution errors.


Output size

Your report should contain only code output that serves some purpose and that you expect someone to read. As a general rule, do not print more than 30 lines of output unless you have a good reason for it.


Output formatting

Format code output in a way that makes it easy to read.


Graphs and plots

Graphs and plots must be well formatted. They should have titles and, if appropriate, axis labels, a legend etc.