CS 590C is the first 5 weeks of CS 501. More detail is in the information handout.
We are using Blackboard Vista *NOW*.
Updated versions of the following 4 handouts are there.
Except that the due date of Assignment #1 is Tuesday 6 am.
Assignment #2 PDF
Course information PDF
Class notes for Preface, chapters 1-3 PDF draft
Assignment #1 PDF
Instructor Robert Skeel
Meets Monday, Wednesday, Friday, 1:30-2:20pm in Potter 268.
This course has both on-campus and off-campus students.
This is a core course in the
CS&E Program
.
Purpose of course:
to expose students to computational concepts, tools, and skills useful
for research in computational science and engineering, beyond
what is learned in a first programming course (and basic mathematics courses).
A related aim is to prepare students for other courses in CSE core by teaching
CS material mostly unavailable in existing graduate level courses.
CS 501 Prerequisites:
* mathematical knowledge and maturity of an MS student
in the physical sciences. (It is not assumed that the student
is in the physical sciences only that he/she has this level
of mathematics.) In particular, some familiarity with matrix algebra
and elementary probability.
* some programming experience in C, C++, Java, or Fortran or extensive
scripting experience; also, commensurate computer skills.
Following are the plans; they may be slightly dated.
Course topics:
There will be consider computer use: ideally all of it on whatever computer
the student intends to use for his+ research,
but an ITaP multiprocessor will be made available.
The student will be expected to install the necessary (free) software
on his/her computer.
Included in the topics below will be (mostly numerical) algorithms
to illustrate the computing concepts.
Theme I: scripting to get things done
* CSE concepts, e.g., validation and verification
* scripting language for computation: Python(+numpy)
* scripting language for file processing: Python and a little Unix,
regular expressions
* floating-point arithmetic (functionality not representation)
* matrix factorizations
* piecewise polynomials
* discrete Fourier transforms
Theme II: programming for performance
* compiled language, including interfacing
to the scripting-language-for-computation
[We will use C, the lowest common denominator.]
* data structures: tree, hash table, stack
* computer organization, e.g., memory hierarchy
* parallel programming including
- PBS (job submission)
- MPI and possibly UPC
- pthreads and/or OpenMP
- examples of parallel algorithms
Theme III: developing software
* object-oriented programming
* software engineering: make, version control, debugging
* GUIs
Text Book:
Somewhat detailed class notes will be made available.
Here is the table of contents from 2007.
Programming:
"objects don't improve productivity in the dramatic way that scripting does"
We will use some Python and C.
Python Documentation
Good books:
Last updated 2008-8-10