Updated: 1 October 2015

Introductory Computer Science

Dr. Kathy Cooksey
Assistant Professor of Astronomy
Department of Physics & Astronomy
University of Hawai`i at Hilo

Course Description

Introduction to computer science: starting with how computers work and ending with applications of programming to scientific research, this course is intended to teach the basics skills useful for a modern researching scientist. These skills include building a solid foundation with a UNIX-based operating system, the Emacs text editor, and scientific programming, focusing on the Python language. By focusing on research skills, the participants practice coding well for a purpose and learn useful data analysis techniques, which are both highly transferable skills. The emphasis is on hands-on course.

Course Material

Topics covered with lectures, in-class coding, and assignments

  1. UNIX operating system
  2. Meet the command line
  3. Text editing with Emacs
  4. Version-control systems
  5. Programming overview
  6. Python overview
  7. Python as a glorified calculator
  8. Input and output (and formatting!)
  9. Variables and assignments
  10. Python data types
  11. Functions, packages, and modules
  12. Conditionals and if-statements
  13. for versus while loops
  14. Array operations
  15. Best coding practices
  16. Plotting
  17. Linear regression
  18. Monte-Carlo techniques
  19. Basic spectroscopy
  20. Blackbody radiation
  21. All about stars (and stellar spectra)
  22. All about galaxies (and galaxy spectra)

Useful Resources

* IDL stands for "interactive data language," which is a common programming language used by modern astronomers. However, since it is proprietary software (i.e., one has to purchase a license to use it), it is falling out of favor. Python is becoming more popular. However, astronomers have to work with a lot of "legacy" software, which means the need to work with IDL will never truly vanish. However, once a person knows how to code, plunging into a new language and hacking up some software is no big deal.