Class Monday/Wednesday 11:00-12:30 in the Digital Class Room (Trailer 932)
The course will be project oriented. Lectures will attempt to provide and enhance the understanding that is necessary to write Computational Grid programs. The projects provide an opportunity to cement this understanding pragmatically.
The TA's will be responsible for managing the projects from an administrative point of view. All questions regarding the projects should be directed to the TAs first, and then to me.
I will use the lecture notes to guide my lectures, however, unless I feel a rant coming on. You should try to print out the lecture notes for each class and bring them with you. I will be using some some unspecified mixture of the white board, my laptop, cave painting, and interpretive dance to try and get my points across. If you have hard copy with you that you can annotate, it will be much easier for you to share your knowledge with posterity.
Since I am developing my take on this class in real-time, not all of the notes for the class are available. I will try and have the notes for each lecture complete no later than 48 hours before it occurs, but you should probably plan to visit a web-browser and a printer on the morning of the day when class is held just in case.
Therefore, you should submit a tar file that can be unpacked in an empty directory and which will build the necessary executable(s) if the command make is run in that directory after the file is un-tarred. As such, the TAs will be using the following algorithm to build your executable(s). On either a Linux or a Solaris system (or both) they will
This perspective bears re-iteration. Part of the challenge to building Grid codes comes from the need to make them absolutely portable (at least among all versions of Unix and Linux, at the present time). Your TAs will be grading you on your success or failure in achieving this portability as well as on the degree to which your submission fulfills the requirements of the project. You should assume that the TAs will not be using the same system that you used to test the code when you turn in your assignments. Your makefiles and tar balls should be prepared with this caveat in mind. If the TAs can't build it EASILY it is your responsibility -- not theirs.
Thus.
You may talk with the TA, other students, myself, or any other aberrations (real or imaginary) about your assignments, but do the programming on your own. If you find yourself cutting and pasting code (in any amount) from something you did not write in its entirety into something you are developing, you are making a mistake. I also believe in abstracts and as such the term "cut and paste" has several concrete realizations. For example, if you find yourself in possession of a piece of code that provides functionality you desire, and you incorporate that functionality not through the deft use of your mouse, but through a laborious typing sequence that may involve a change of variable names, equivalent but different loop constructs, irrelevant movement of operations in the execution sequence, etc., you are abstractly "cutting and pasting."
In other words, your brain should be the only coding reference material you use to develop the programs necessary to fulfill the programming assignments.