There will be regular assignments and exercises. Post orals students are not required to do all assignments completely. If you want to be exempted from an assignment, please see me when the assignment is given. I emphasize coding and numerical experiments, mostly in C++ and python. One of my goals for the class is to develop you as a programmer and expert in scientific computing.

Collaboration, code sharing, web resources

As an advanced class, the rules on code sharing and collaboration are looser that they would be in lower level classes. Students are allowed to collaborate on assignments, to work in groups, and to share code. Collaborating groups of 2 to 4 students are allowed to submit a single copy of an assignment. Code sharing is allowed between indviduals or groups that are not collaborating. Whenever you hand in an assignment, you must make clear what code you shared and with whom. You are allowed to use web resources, but you are not allowed to download code from the web to hand in, with the exception of graphics. I expect collaborating groups to accomplish more than individuals on the assignments. This may mean exploring related issues not explicitly required by the assignment. You may be able to find answers to non-computational exercises on the web. You are not permitted to download them. I reserve the right to ask any student to explain their work or the work of their collaborating group. A student who is unable to do this may lose points on the assignment.

Coding standards

Every good scientific programmer adheres to a set of professional coding standards. These standards are hotly debated, particularly after hours, and vary from person to person. Part of becomming a good scientific computing person is training yourself to follow a set of principles. Here are some suggestions.

Using posted code

Some computing assignments come with posted code. The code is a combination of C++, python, and a makefile. You are required to read the comments at the top of the code before using it. The code is in the form of a "tarball", which is a collection of files collected using the UNIX "tar" command.

Assignments and code

Assignment Code, sample output, instructions Due date
Unpack: in a new directory, type: tar -xvf Week1.tar
Build and test: type: make fTest
Check: compare the figure to Week1.pdf
February 19
no programming this week February 26
Unpack: in a new directory, type: tar -xvf Week2.tar
Build and test: type: make fTest
Check: compare the figure to Week2Output
March 26