Course information 2012 version
PDF
The fall evening exam schedule:
* Wed Oct 9, 8:00--9:30 pm, KRAN G016
* Wed Nov 13, 8:00--9:30 pm, KRAN G016
Class notes for Preface, Chapters 1 and 2 PDF draft
Instructor Robert Skeel
We are using Blackboard Learn.
Meets Monday, Wednesday, Friday, 12:30-1:20 pm in Haas G066.
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 50100 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
(MA 26500) and elementary probability (subset of STAT 35000).
* some programming experience in C, C++, Java, or Fortran or extensive
scripting experience; also, commensurate computer skills.
* course is open to (a limited number of)
undergraduates.
See the instructor to override the restriction to graduate students.
Course topics:
There will be considerable computer use: ideally all of it on whatever computer
the student intends to use for his/her research,
but an ITaP multiprocessor will be made available.
The student will be encouraged to install the necessary (free) software
on his/her computer.
Part I: scripting to get things done
* Unix
* Python scripting    
"Python Snakes Its Way Into HPC"
* files and text processing in Python, object-oriented programming
* mathematical computing in Python,
including floating-point arithmetic, graphics, Numpy, computer algebra
Part II: programming for performance
* C programming, including data structures, interfacing to Python
* parallel programming, including computer organization, PBS, MPI, OpenMP
Part III: survey of other topics
* GUIs
* developing software: version control, automated builds
* regular expressions
Appendix: numerical computing: a selection of the following
* algorithms; error
* functions: polynomials, piecewise polynomials, trigonometric polynomials
* matrices: operations, factorizations, parallelism
The Appendix is a source of applications.
Python Documentation
Good books:
Last updated 2013-3-11