CS 403: Development of Scientific Computing Programs

Description

This course is designed for graduate students who, in their research, will develop computer programs to solve scientific or engineering problems (e.g. in Fortran, C, or C++). Approaches and tools are presented which facilitate the development of good software. The course will emphasize the tools available on UNIX and Windows environments.  Topics covered will include: compilers, debuggers, software design, and project management.

Course number for registration: 441-198

Who should take this class

This course is designed for "fledgling" scientists and engineers (e.g. advanced undergraduates and beginning graduate students) who expect to use computing in their research. Students are assumed to be familiar with basic programming concepts at the level of CS 100.

Time and Place

M 9:05-9:55AM, Upson 211
WF 9:05-9:55AM, ACCEL Green room--ATTENDANCE REQUIRED!

#######   NOTE  #######

On Wednesday and Friday, we will work through hands-on exercises.  These exercises take the place of one homework.  Missing more than one Wed. or Fri. section will jeopardize your grade.

Syllabus

 
Dates
Title
Lecutre
Extras
2/18-2/22 1. Course Intro & Philosophy ppt
pdf
 
2. Design of algorithms and responsible coding ppt
pdf
 Model Derivation
4. Editing, compiling: UNIX vs. IDE, intro to architectures ppt
pdf
Lab
firsttry.c
2/25-3/1 3. Formal and informal specification ppt
pdf
 
5. Language issues: C, Fortran, Java, MATLAB ppt
pdf
Lab
CFtest.tar
7. Building with Make ppt
pdf
Lab
Cbasics.tar
3/4-3/8 8. Testing for correctness ppt
pdf
 
6. Debugging Tools ppt
pdf
Lab
RAD1D_buggy.tar
9.  Software management, source code control ppt
pdf
Lab
Working Version
3/11-3/15 11. Performance Issues ppt
pdf
 
10. Improving performance--profiling, tuning  none Lab
UPDATE.tar
12. Trends for the future ppt
pdf
 Lab

Grading

The course must be taken S/U. Grades will be based on the student's performance on 3 weekly problem sets. To pass, students must demonstrate a basic level of understanding of the course material.

Problem Sets

   Problem Set 1          key
   Problem Set 2          key    u.txt:  Time-varying u with 5 grid points and 3 time levels
   Problem Set 3
Problem sets will be posted here at least 1 week prior to the due date. All problem sets are due by 5PM on the date specified. The answers should be e-mailed to the instructor at ajp9@cornell.edu. Assignments on paper, stone tablet, or in another atom-based format will not be accepted.

Course Policies--see revisions above regarding Wed & Fri sections.

The policies of this course are determined by the amount of material that must be covered and the short time allotted. The easiest way to describe these policies is as an agreement between me the instructor and you the student, and it is important that we understand each other's perspective. We are both very busy and it is vital that we use the four weeks efficiently. Therefore, I propose the following agreement:

INSTRUCTOR: will give 12 lectures based on the syllabus above. Each lecture will start on time and will end at the designated time, if not before. Lecture notes will be provided on-line by 10PM the night before the lecture. The instructor will be available to answer questions during office hours, by appointment, and for a few minutes before and after lectures. The instructor will prepare four assignments that can be completed in a reasonable amount of time (2-4 hours) using mainly the information covered in the lectures. The instructor will return assignments in a prompt manner and with concise comments on any errors.

STUDENT: will be in his/her seat in the lecture hall prior to the start of every lecture. This is a common courtesy to the instructor and to fellow students. If the student wants more information on a topic or needs help, he/she will come by office hours or make an appointment with the instructor. The student will turn in assignments on time and in the specified format. Late assignments WILL NOT BE ACCEPTED! Exceptions to this rule will only be made for university-sanctioned reasons such as severe illness, injury, death, or by special arrangement with the instructor made at least 3 days prior to the due date. Adhering to this policy will allow the course to discuss the assignments in class in a timely fashion, and deviations from this policy will jeopardize the student's chance of passing the class.

Instructor

Andrew J. Pershing  
3134 Snee Hall 
ajp9@cornell.edu  
5-5552

Office Hours:

Tuesdays & Wednesdays, 11AM-1PM & by appointment