Student & ROBOTICS SOFTWARE Engineer

Starts March 7, 6-week course

Sundays - 10AM to 11AM ET

Recommended age: 13+

Screenshot 2020-12-30 at 2.36.47 PM.png

In this course, students will learn the basics of how to use the Python programming language and the Scipy ecosystem to solve Newtonian-mechanics problems. Students will gradually build up their knowledge of computer programming to solve more complex scientific problems which will culminate in computing the optimal orbital path for the Voyager satellite exploiting the slingshot effect. There will be an emphasis on visualization. We will therefore also learn how to plot and animate your results.


  1. Introduction to Python programming language: We will learn the basic building blocks of programming, and how to use those in combination with Scipy to solve scientific problems. 

  2. Introduction to visualization with Matplotlib: We will learn how to do basic plotting and animation using the Matplotlib library.

  3. Basic physical analysis: We learn to analyse different physical problems and write down and solve the equations of motion.

  4. Send Voyager to space: The final project will involve applying what we have learned to send the Voyager satellite to space.  


This course will be a combination of lecture, discussion, and application.

  1. During class, we will discuss the topic of the week ending with a Q&A session.

  2. Outside of class, students should work on their projects and participate in peer-critique and discussion. 

  3. Students and parents will communicate with each other and the teacher through email, group text, and Wechat. Notes and resources will be stored on a password-protected part of the website, but students should take their own notes as well if it helps them learn. 

  4. Students will organize peer critiques and group projects themselves. 

*Note: Course logistics and content will adapt to need as the course progresses.



  1. The course is aimed at high school students who want an extra challenge. 

  2. While we will review physics concepts as they come up, familiarity with Newtonian mechanics is recommended. 

  3. Students should be comfortable with using vectors. 

  4. Familiarity with basic calculus is recommended. We will solve basic differential equations numerically, however, it is not required that you understand these. 

  5. Prior programming experience is not required but will be helpful. 

  6. You should be self-motivated. The course covers a lot of content in a short amount of time, and programming is hard. The best way to learn to program is to do programming, so you should expect to spend a lot of time on your own working on the projects.

  7. You should have access to a computer, a stable internet connection, and a Google account.