CISC 810 - Fundamentals of Computational Science
PREREQUISITE: Permission of the Instructor for students not
registered in the CSE Master's specialization.
The purpose of this course is to provide a solid foundation in
computational methods for students interested in computational science and
engineering, and is a preparatory course for QCSE 811 "High Performance
Computing". Methods and tools will be provided to enable progress on
numerical projects within the students own discipline. Topics to be
covered include, computer architecture, data structures, principles of
software "carpentry", code profiling and basic optimization, visualization
and simulation, numerical mathematics.
Syllabus:
1. Fundamentals of computer architecture, Flynn's Taxonomy
2. Binary representations, floating point arithmetic, including
extended precision libraries
3. Fundamentals of data structures and comparison of
languages/paradigms
4. Scripting languages & symbolic computation packages (e.g.
Maple)
5. Programming & software "carpentry" (engineering), including
symbolic debuggers, optimization, efficient UNIX shell scripting
6. Introduction to simulation and numerical techniques, including
linear algebra and Monte-Carlo methods
7. Visualization of numerical data (Opendx, VTK)