Syllabus for CS A321: Computing Tools for Scientific Research

Purpose:

This course provides some basic programming capabilities for students in the natural sciences. It is tool and skill oriented, and intended to be sufficient for creating short computer programs and using software produced by other scientists. The primary language is Matlab, a "fifth generation" programming framework that supports scripting, graphics and plotting, and provides a "glue" for accessing and using software written in other languages (C, C++, Java, Fortran). Matlab is valued because it provides a rapid prototying environment for quickly and easily testing out new ideas.

C/C++ is also covered, but primarily how to connect from Matlab to an existing program written in C/C++. The same ideas and general methods apply to Fortran and Java for this linkage.

The course does not emphasize object oriented programming, software design methodology, or higher level design patterns and data structures. Students needing those capabilities are probably better off taking some of the A-courses in the Computer Science Department.

Grading:

The necessary skills define the grading schema: These skills need to be demonstrated via a sequence of coding and analysis projects.

Textbooks

No textbook is required. If you want supplementary material most of it is online. But if you intend to keep using Matlab it would be worth the money to get the first book listed. Everything needed will be in online or through Matlab's help, lookfor, and other commands.

The books listed are intended to be long-term reference works that can be useful even after the course is over. The course will not cover all of the material in them. You can get along just dandy without any of them, and then when you graduate make your employer buy them for you.

  1. Mastering Matlab, Hanselman and Littlefield. A comprehensive reference work for Matlab, and even those from versions 5 and 6 are still useful (Matlab is up to ver. 7 now).
  2. Matlab Guide, Desmond Higham and Nicholas Higham. This is more of a follow-along text, but assumes more math knowledge than A321/A521 does.
  3. Practical C Programming, Steve Oualline. An easily read introduction to C.
  4. C++ How to Program , Dietel and Dietel. This is more of a reference work - nobody could get through this in a single semester.

Outline of Material

Some flexibility will be exercised depending on the students taking it. So the following outline is not contractual, but instead meant to give a rough idea of what will be covered. The timing of when material is presented may also be shifted depending on questions/needs from the students.


Changes to this page:
  1. Initialized, Thu Nov 2 08:54:44 EST 2006
  2. Updated: Mon Jan 7 11:33:32 EST 2008