Course Description

Study of computer science techniques and tools that support computational sciences and engineering. Emphasis will be on visualization, performance evaluation, parallel computing, and distributed computing. Prerequisites: CS-115, CS/EE-380, and engineering standing.

Venn diagram

(Picture courtesy of CSEP)

Requirements and Goals

Students need knowledge of programming in a modern object oriented language and a basic knowledge of machine organization and architecture. You need to know how to make presentations in either PowerPoint or Acrobat.

Students will learn about hardware and software support for high performance computing. They will learn to select algorithms and develop code for computing in a parallel (or distributed computing) environment. They will learn about benchmarking, optimization, and visualization.  The course will include a hands on component utilizing a parallel computing environment.

Web Site, Textbook, and Course Outline

The course web site is http://www.mgnet.org/~douglas/Classes/cs521 or you can get to the web site by clicking on Current Course from my home page of http://www.mgnet.org/~douglas.

The course will follow, where still appropriate, the lecture notes of the Computational Science Educational Project (CSEP). CSEP is somewhat dated, however. There are two recent books that I suggest you read:

  1. C. Moler, Numerical Computing with MATLAB, SIAM Books, Philadelphia, 2004 (course textbook).
  2. C. C. Douglas, G. Haase, and U. Langer, A Tutorial on Elliptic PDE Solvers and their Parallelization, vol. 16, Software, Environments, and Tools (SET) series, SIAM Books, Philadelphia, 2003.  See the publisher's web page for this book.
The first book will teach you about basic numerical methods used in simulations. The second book will teach you how to solve many problems on parallel computers.

The lectures will cover some or all of the topics below, usually one topic per week. Students will nominate new topics early in the course.  One or two of the nominations may be included in an expanded list during the semester.

We will cover as many of these topics as time permits. Which case studies we consider will depend on the class preferences.

Readings

Read by Link/Interesting Problems Comments
1/16 (Monday) 2006-hw1 Individual effort only: no groups
1/31 1.1, 1.2, 1.4, 1.8, 1.34, 1.38 Read Moler preface and introduction to MATLAB chapters (P,1)
2/7 2.3, 2.5(a), 2.12, 2.14 Read Moler linear equations chapter (2)
3/7 7.2, 7.6, 7.11, 7.19 Read Moler ODE (7)
3/9 11.1, 11.2, 11.4, 11.6 Read Moler PDE (11)
2/28 E3.1-E3.7 Read DHL chapters 2 and 3 - Examples.tgz
3/21 E5.1-E5.6 Read DHL chapter 5
3/28 E6.1 Read DHL chapter 6
2/1 - 4/27   Weekly topics
5/2 2006-project Project write up and discussion

Research Projects and Presentation Teams

I will be mixing you up into small teams all semester, approximately once a month. I may allow swapping of team members on a one for one basis as long as I approve it well in advance. I expect to see your presentations one week in advance. You can assume that I will offer advice which might include starting over (but hopefully not). I expect that your presentation will be grammatically correct without misspellings. At then end of this course you should be able to give a professionally acceptable scientific presentation.

Office Hours and Contact Information

My office hours will be reached by class consensus during the first class and posted as part of the electronic syllabus. Office hours will be on Tuesday through Thursday,

Day Time
Tuesday 2:30-3:30
Wednesday 10:00-11:00

but you are far more likely to find me by making an appointment.

My office is 514H Robotics (RMB).  My office telephone number is 257-2428 and my eFAX is 203-547-6273. In a pinch, I can be reached at home on weekends at 203-625-9449. Please do not call me at home before 9:00am or after 9:00pm. I respond to e-mail (douglas-craig@cs.yale.edu) fairly quickly (always include a phone number where I can call you back). If you are stuck on something, please do not hesitate to contact me.

Grading

Your grade will be based on the homework and class participation. Only letter grades will be given (no +/-'s). Homework assignments usually have a presentation associated with them. You will be expected to use a computer to make the presentation. Our lecture hall has both projection and computer equipment to do both styles of presentations including in parallel. I would prefer that you use PowerPoint for your presentations, however, I will allow Acrobat. I do not want weird Linux/Unix presentation tools (e.g., Star, K, or Open Office) unless you have convinced me in advance.

From a legal viewpoint, I am allowed to change the grading system anytime in the course as long as I give adequate notice to the class. The university ombud issues memorandums that cover this and many more topics. However, you should watch the class web page for any changes in the grading policy.

It is very difficult to either cheat or plagiarize in this course. However, either can be done. I ask that you not copy, verbatim, presentations given in earlier years. Seeing them twice will put me to sleep and then you will not get a very good grade since I will not have noticed that you did the project. There are plenty of interesting things on the web on any of these topics that will be different from before and you will learn more by doing some research on the topics. Getting caught cheating or plagiarizing will result in a grade of E and possibly much worse, including expulsion from the university and legal proceedings against you.

The projects are done in small groups in which everyone gets the same mark. If one fails, the whole group fails on the assignment. A lot of the information is available through CSEP and other web resources. It is considered good academic form to cite others' work that you use. A simple mechanism is to include a set of references at the end of a presentation with pointers to interesting places to visit to get more information.