Course information 2016 PDF
2016 Slides for Chapter 0
PDF
2016 Slides for Chapter 1
PDF
2016 Class notes, revised through Chapter 6
PDF
Instructor Robert Skeel
We are using Blackboard Learn for homework submission and grade records and 2016 Piazza for handouts, announcements, and discussion.
Meets Monday, Wednesday, Friday, 12:30-1:20 in Forney B124.
Evening exams are given
Thursdays October 6 and November 10 from 8:00-9:30 pm.
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) is expected.
* {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
* 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, MPI, OpenMP
Part III: survey of other topics
* GUIs
* developing software: version control, automated builds
* regular expressions
Appendix: numerical computing: a minimal selection of the following
* functions: polynomials, piecewise polynomials, trigonometric polynomials
* matrices: operations, factorizations, parallelism
The Appendix is a source of applications.
There is an optional textbook:
Last updated 2016-8-22