This page contains syllabi, problem sets, past exams, and other resources for the courses that I am currently teaching and have taught in the past.
In this course graduate students will learn the fundamentals of writing GPU accelerated parallel code and render scientific visualizations. No previous knowledge other than some basic programming experience (in any language) is required. During the course, students will be exposed to modern programming concepts and languages including WebGPU, HTML, JS, and WebAssembly which are very complimentary to what is typically used in purely scientific software. The skills learned in this course will be high valuable not only for students who wish to improve their scientific programming / visualization skills, but also for those who consider a non-academic career path. One goal of the course will be to create a dependency free visualization web-app from scratch that can run on many different operating systems. Each student will work on a project to visualize an astrophysical dataset (preferable a dataset they work on for their thesis) with the goal to make the visualizations publicly available.
We went over the first example in the WebGPU fundamentals tutorial. Download the slides as pdf.
We coded up this visualization of GAIA stars. Download the slides as pdf.
Initial code.
WebGPU Editor.
Final code.
Initial code.
Mid code.
WebGPU Editor.
Final code.
From the calendar: A hands-on introduction to astronomical observing using the UTSC telescopes. Lectures cover topics of astronomical instrumentation and data reduction. Observations of Solar System planets, moons, planetary nebula, globular clusters and galaxies will be made. Students will present their results in the style of a scientific paper and a talk.
Download as pdf.
Download as pdf.
Download as ipynb.
Download as ipynb.
Download as pdf.
Download as pdf.
Download as ipynb.
Download as pdf.
Download as ipynb.
Download lecture slides as pdf.
Download the Cosmic Distance Ladder part as pdf. Download as Stars part as pdf.
From the calendar: A hands-on introduction to astronomical observing using the UTSC telescopes. Lectures cover topics of astronomical instrumentation and data reduction. Observations of Solar System planets, moons, planetary nebula, globular clusters and galaxies will be made. Students will present their results in the style of a scientific paper and a talk.
Note that the course is currently scheduled as in person. Depending on the current state of the pandemic, the course might be switched to online synchronous for some or all of the lectures.
Please see Quercus for updates regarding this course.
From the calendar: Scientific computing is a rapidly growing field because computers can solve previously intractable problems and simulate natural processes governed by equations that do not have analytic solutions. During the first part of this course, students will learn numerical algorithms for various standard tasks such as root finding, integration, data fitting, interpolation and visualization. In the second part, students will learn how to model real-world systems from various branches of science. At the end of the course, students will be expected to write small programs by themselves. Assignments will regularly include programming exercises.
Note that the course is currently scheduled as in person. Depending on the current state of the pandemic, the course might be switched to online synchronous for some or all of the lectures.
Please see Quercus for updates regarding this course.
From the calendar: Scientific computing is a rapidly growing field because computers can solve previously intractable problems and simulate natural processes governed by equations that do not have analytic solutions. During the first part of this course, students will learn numerical algorithms for various standard tasks such as root finding, integration, data fitting, interpolation and visualization. In the second part, students will learn how to model real-world systems from various branches of science. At the end of the course, students will be expected to write small programs by themselves. Assignments will regularly include programming exercises.
Note that the course is currently scheduled as in person. Depending on the current state of the pandemic, the course might be switched to online synchronous for some or all of the lectures.
Please see Quercus for updates regarding this course.
Since ancient times, humans have observed the night sky. One of the most striking feature easily observable with the naked eye are planets, the wandering stars. For centuries astronomers have recorded and predicted their motion. This course introduces graduate students to three topics in the wide field of Planetary Dynamics. Note that students can opt to take only one or two out of the three mini-courses being offered. But note that each mini-course builds on the knowledge developed during the previous mini-course(s).
You can download a tentative syllabus. If you would like to take this course, please get in touch via e-mail.
From the calendar: Scientific computing is a rapidly growing field because computers can solve previously intractable problems and simulate natural processes governed by equations that do not have analytic solutions. During the first part of this course, students will learn numerical algorithms for various standard tasks such as root finding, integration, data fitting, interpolation and visualization. In the second part, students will learn how to model real-world systems from various branches of science. At the end of the course, students will be expected to write small programs by themselves. Assignments will regularly include programming exercises.
Please see Quercus for updates regarding this course.
From the calendar: Scientific computing is a rapidly growing field because computers can solve previously intractable problems and simulate natural processes governed by equations that do not have analytic solutions. During the first part of this course, students will learn numerical algorithms for various standard tasks such as root finding, integration, data fitting, interpolation and visualization. In the second part, students will learn how to model real-world systems from various branches of science. At the end of the course, students will be expected to write small programs by themselves. Assignments will regularly include programming exercises.