I enjoy teaching courses in both astronomy and physics. In my experience, the best way to learn something is to actually do it. Thus, I am a very strong proponent of active learning at all levels, including in-class activities, discussions, and highly interactive lectures. Furthermore, I employ state-of-the-art pedagogical technology in my courses, including virtual demos and online tools for in-class activities.

I currently teach two courses, as described in more detail below.

Stars, Galaxies, and Cosmology (Astronomy 150)

Course Homepage Image -- Image Credits: NASA, STScI, JWST, EHT

During Fall semesters, I teach the intro to non-Solar System astronomy for non-majors. I always absolutely love teaching this course and interacting with the enthusiastic students who take it. Below is a more detailed description and the learning objectives.

Course Description

For the nonscientist. A survey of astronomy with a focus on the universe beyond our solar system. Basic observational astronomy and the history of astronomy. Stellar astronomy: motions, distances, sizes, spectra; types of stars; variability; binary systems. Stellar evolution: the birth, life, and death of stars, including supernovae, neutron stars, and black holes. The structure and evolution of the Milky Way Galaxy. Other galaxies, clusters of galaxies, quasars. Theories of the origin of the universe.

Learning Objectives

  1. To gain a sense and appreciation of how vast and extreme the Universe really is.

  2. To better understand our origin and place within the cosmos.

  3. To learn how astronomers do what they do and know what they know

  4. To gain an appreciation for the scientific method

Computational Physics (Physics 551)

Course Homepage Image -- Left: the Rayleigh-Taylor Instability; Right: IBM Blue Gene/P supercomputer at the Argonne Leadership Computing Facility.

During Spring semesters, I teach a graduate-level course in computational physics. I really enjoy teaching this course as it really gets into the details of an area I love. I have also structured this course around an active learning approach, with particular focus on "computational lab exercise" and a research-focused term project. Below is the syllabus description of the course and the learning objectives.

Course Description

The primary goal of this course is to train students in using computational methods to solve problems as an alternative and/or complementary approach to the analytical techniques learned in other classes. Students will be trained in a level of practicality that can be applied to their own research. Students will also gain an understanding of the care that is required in employing numerical techniques and will learn a number of applications, including integration schemes for differential equations, Monte Carlo approaches, data fitting, and basic multi-processor and supercomputing applications. The course will be primarily taught using Python 3, but we may briefly explore other languages.

Learning Objectives

  1. Establish good programming/coding practices

  2. Solving complex problems with a computer

  3. Understanding the algorithms that go into solving these problems

  4. Interpreting numerical computations and the potential pitfalls and sources of errors

  5. Understanding how these techniques are used in actual research