Overview
This is a course for graduate astronomy students and it requires
no prior knowledge of programming. The goal of the course is to
provide the students with basic tools and techniques used on a daily
basis in modern research in the field. The first part of the course
will be dedicated to the programming skills. The tutorial of the C
programming language will be given along with a basic overview of the
Linux operating system, the SuperMongo plotting program and the Latex
editor for writing scientific texts.
Once the basic programming skills are explained and mastered, the
more advanced techniques will be demonstrated on a set of
astrophysical problems. Examples will change from simple
computational exercises, to more complex and advanced problems,
as students become more acquainted with the programming language.
Each exercise will come in three steps.
First, theoretical background to each particular astrophysical problem
will be discussed in detail. Second, students will be asked to use
their newly learned computer skills to solve the problem with their own
C program. And at last, the professionally written program will be
presented and compared with the other student's programs.
The libraries of handy computer functions useful in astrophysics will
be presented and students will learn how to efficiently use them in
solving their own future computational problems.
This course (ASTR698) is scheduled for spring semester 2006.
Syllabus
Class 01a: Overview to Linux System - Basic Working Environment.
Class 01b: SuperMongo - Plotting Graphs.
Class 02a: Latex editor - Writing Scientific Texts.
Class 02b: Programming in C - Introduction I (basic language structures)
Class 03a: Programming in C - Introduction II (input/output)
Class 03b: Programming in C - Introduction III (data types, arrays)
Class 04a: Programming in C - Introduction IV (operators, arithmetic)
Class 04b: Programming in C - Introduction V (conditions, loops)
Class 05a: Summary of Basic Programming Skills
Class 05b: Initial Problem I: Sorting Data (quick-sort)
Class 06a: Initial Problem II: Finding a Root (bisection)
Class 06b: Initial Problem III: Data Processing (handling large data sets)
Class 07a: Initial Problem IV: Interpolation/Extrapolation
Class 07b: Initial Problem V: Students Own Project (free choice)
Class 08a: Midterm Exam
Class 08b: Midterm Exam
Class 09a: Advanced Problem Ia: Integration of Functions (evolution of SFR)
Class 09b: Advanced Problem Ib: Integration of Functions (evolution of SFR)
Class 10a: Advanced Problem IIa: Monte Carlo Simulations (stellar IMF)
Class 10b: Advanced Problem IIb: Monte Carlo Simulations (stellar IMF)
Class 11a: Advanced Problem IIIa: Least Squares (fitting data)
Class 11b: Advanced Problem IIIb: Least Squares (fitting data)
Class 12a: Advanced Problem IVa: Differential Equations (GR orbit decay)
Class 12b: Advanced Problem IVb: Differential Equations (GR orbit decay)
Class 13a: Advanced Problem Va: Students Own Project (free choice)
Class 13b: Advanced Problem Vb: Students Own Project (free choice)
Class 14a: Library of Numerical Algorithms/Functions
Class 14b: Summary of Computational Methods
Class 15a: Final Exam
Class 15b: Final Exam