Note that you don't have to physically sit at the console of those machines, and can just login to them remotely via ssh, which provides for secure login and file transfer. ssh is available (through UITS's IUWare) for Windows platforms and is on all IU Unix machines. Your Kerberos password (from IU's ADS) is what will work on both CS and UITS systems.
We will use Matlab in the course, a language that provides interactive graphing capabilities. If you use a Windows-based machine as your console, you may also want to install and use a tool like hummingbird, which allows graphics windows from a remote Unix-based machine to be opened on your local Windows machine. Another option (somewhat clunky) is to use Matlab's print command to save the graphics window as a file. To test this, type
% matlab -nojvm -nosplash
in a console or command line interface on the remote Unix system. Then test the ability to view graphics dynamically via the command
> plot(randn(12,1))
If that does not open a window on your console, the clunky way is
> print -dpng graph
which will create a file called graph.png, that you can then transfer over to your own platform to view. In the worst case, you can use the clusters in LH004 and LH125.
If your lab or research group has other machines, use them as well - in the long run, those are the machines you want to learn how to use effectively. However, some assignments will require your codes to run on a specified system so that we can have comparable results across the class.
The course is not the same as numerical analysis, which concentrates on the study of convergence, stability, and error analysis in numerical methods. For that, students should take Math 571-572. Although numerical analysis is an important component of scientific computing, it is only a part of the field. Instead, this course concentrates on
This course is not just parallel computing. Another course, CSci B673, concentrates on that aspect of scientific computing.
Matlab will be as a rapid prototyping tool and for its easily-accessed graphics. The needed skills in Matlab will be taught as part of the course, but for those who would like a preview the Matlab Tutorial material prepared by Dave Hart is useful, and a good Matlab tutorial is at the University of Florida. Another tutorial, posted on is at Michigan Technical University . However, all that is needed will be covered in class, so don't go out and memorize Web pages ... yet.
Another good policy is to use it for any question where you are unsure about attribution.
Some or all of the projects you can tackle in groups.
I reserve the right to call on any member of the group to present/explain/defend/justify the group's work and to base the entire group's score on that member's performance. Just to make this even more life-like, I will assign any teams. In the event that your team cannot come to agreement about something, your report may include a "dissenting opinion" section, the way Supreme Court decisions do.
The final exam is sheduled for 10:15 AM to 12:15 PM on Friday, 16 December 2011. Yes, that is the last day of final exams, so plan for it now (August 2011), not belatedly in November or December. That exam will likely consist of a final project, in which case it is due at 12:15 PM on 16 December 2011 but you can turn it in earlier ... or even remotely.
Grading percentages:
Leveraging the existing base of tools, software, knowledge, and earlier explorations is the only practical way to carry out science and engineering via computational methods.
Cheating in this class is nearly impossible, because the course encourages collaboration, code scavaging, and using publically available resources available whenever possible. It's why they gave us ears, the Internet, the ability to read and write things and Google. You can get away with almost any lifting or scavenging of material, provided that you cite the source. If your citation is "I photocopied another student's write-up" then you may not get many points on the assignment or may be assigned something to verify you have learned the material and skills, but at least you won't be expelled for plagiarism. The distinction between plagiarism and leveraging is citation. If in doubt, ask me. If I am not available, then play it safe and give a citation for any material or help you have received or given. Note that using the Web board is a great way to seek help - it's public to the entire class and hence the questions and answers are available to everyone.
In spite of it being "nearly impossible", amazingly often somebody hands in a document or code that duplicates another's, down to the mispellings and errors in the coding, without mention of its provenance. It's not that hard to put in a code comment or a text footnote about just where you got any material, guidance, or help. Make a habit of having a section just for that in any code or other material handed in or presented, so that you have to think about and remember just where everything came from.
Although Professor Bramley is older than dirt, he also knows how to use Google as well as some tools to find matches that you don't have. So ... play it safe and give a citation anytime you did not do all the work yourself.