Homework

There will be 6 homework assignments during the quarter, requiring a combination of analytical and programming work. See Homework format below for information on the desired format.

Late homework: Homeworks will generally be due Thursday evenings at 11:00pm to a Canvas dropbox. You may turn in an assignment up to 24 hours late with a reduction of 10% for tardiness. After that homework will not be accepted unless you have made arrangements in advance due to special circumstances.

Discussing homework: You may discuss homework problems with other students, but the work you turn in should be your own. In particular, write your own computer code for problems that require computing and make sure you understand what you are doing. General clarification questions are appropriate to ask on the Discussion board, but please don’t ask or answer specific questions about how to do a problem. Do talk to the instructor or TA if you have questions, or if you don’t understand how to do something.

There will also be in-class midterm and final exams, see Course information for details.

Schedule (tentative)

Homework format

Homework should be submitted online via the Canvas page.

Written solutions should be submitted as pdf files (not Word, please). Ideally these should be typeset using latex. (See Latex for some references). Or you can hand write and scan, but typeset work is much easier to grade and is good practice, so I encourage you to do some problems in latex..

You can also write analytical solutions in a Jupyter notebook if you wish to, which makes it particularly easy to mix analysis with code illustrations.

If you use a notebook, please submit both the .ipynb file and the .html or .pdf file that is generated via the Files –> Download as… menu, or with the jupyter nbconvert command.

If you use a Python script, please submit the .py file, or a .m file if you use Matlab.

For computer code, please include suitable documentation to describe what you’ve done and also explain it in your written solutions when appropriate. Include appropriate figures in your writeup.

Matlab vs. Python

I strongly encourage you to learn Python and Jupyter notebooks if you don’t already use these, since they are becoming standard in many fields of scientific computing. Moreover they are open source and freely available, so you can continue to use them beyond the lifetime of your student version of Matlab.

The demonstrations and sample code given in class will be done in Python, typically in a Jupyter notebook and archived in the notebooks directory of this repository. Some of the homework assignments will be based directly on notebooks, so you will find it easiest to use Python and Jupyter notebooks to do the assignments. Some tutorials will be given in class and many resources are available online, see Python and Jupyter.

You may use Matlab if you insist, but you may have to do some extra work to convert code provided from Python to Matlab. Note that there are some Matlab scripts available on the textbook webpage that may be useful, but I am working on developing Jupyter notebooks to cover similar material and more.