MIT Faculty Newsletter  
Vol. XXX No. 2
November / December 2017
I. If Republican Tax Plan Undermines Graduate Education, MIT Needs to Protect Our Graduate Students; II. Effects of Trump/Republican Budget on Research
Boston Biotech Has a Woman Problem
Interview With Former Pro Football Player and Math PhD Candidate John Urschel
An Institute of Shared Governance
"Voodoo Science" at MIT?
Python With First Year Physics:
What We Taught and What We Learned
Designing the First Year at MIT
A Bit More About Paul and Priscilla Gray
Correcting the Record of the GSC
Praise for Susan Silbey
MIT Research Expenditures 1940-2017
Campus Research Expenditures 2008-2017
Campus Research Expenditures FY2017
Printable Version

Teach Talk

Python With First Year Physics:
What We Taught and What We Learned

Paola Rebusco, Analia Barrantes, Bettina McGimsey, Leigh Royden

The Experimental Study Group (ESG) is MIT’s original freshman learning community, founded in 1969 and focused on teaching the GIRs in a small-class, discussion-based, and contextualized learning environment. Peer teaching is a cornerstone of ESG, based on the tenet that teaching and learning are symbiotic processes and that students learn in a profound way through teaching others.

It's dangerous to take mechanics alone. Take Python too! This is the title of a new Freshman Advising Seminar offered by ESG in the fall of 2016. The origins of this seminar go back several years, growing out of discussions among ESG staff about how to offer computational learning as part of the first year curriculum at ESG. We envisioned an experimental seminar that would link the learning of Python to the subject matter of one of the GIRs, but the prospect was somewhat daunting. While ESG teaching staff had broad expertise in science and mathematics, we felt a lack of skills needed to teach a programming language.   

In the fall of 2014, we found a teaching partner in ESG’s pool of undergraduate Teaching Assistants. Joe Griffin (’16) was a Course 6 major with a strong physics background and the requisite programming expertise in Python. A junior at the time, Joe had already taken ESG’s teaching seminar (a “how to teach” seminar required of all first-time TAs at ESG) and served as a TA for a number of physics courses with glowing reviews. When we suggested that he co-teach a “physics with Python” seminar with ESG physics instructors, Drs. Paola Rebusco and Analia Barrantes, he was more than enthusiastic. Over the course of that semester, the three collaborators developed the first iteration of Python-with-Physics, a six-unit seminar called Programmable Physics: E&M and Python.

E&M and Python was designed to introduce students concurrently or formerly enrolled in the Electricity and Magnetism GIRs (8.02/8.022) to algorithmic thinking. It was also designed to reinforce their understanding of E&M by writing Python code to model and visualize physical systems. Typical of all ESG seminars, it was small, with only 10 students, and included freshmen, sophomores, juniors, and seniors. Although the seminar was aimed at students with little or no programming experience, the students who enrolled had varied programming experience ranging from none to advanced.

We planned weekly topics that related to what the students were learning (or had learned) in the E&M classes (see table), and all three teachers were present in the classroom to help students master the material. As lead instructor for the class, Joe Griffin presented the in-class material, which was initially a challenge for him. Joe reports: “For the first few lectures I had to do full rehearsals of the lectures with Analia and Paola but after a while I was able to get by on abbreviated rehearsals.” The seminar was a success, with a number of students who were inspired by Joe and were eager to help with teaching the seminar in future semesters.



Since the pilot in the spring of 2015, ESG has run the E&M and Python seminar twice, in the spring terms of 2016 and 2017. Each of these seminars was taught entirely by undergraduates, with supervision by Dr. Rebusco and Dr. Barrantes. The student instructors included at least one student who had taught the seminar previously. That student would be the lead teacher and helped to train the newer student instructors. In spring 2016, Joe Griffin was the lead instructor, working with two other undergraduate instructors, Lisa Zahray (’17, Course 6) and Lotta Blumberg (’18, Course 6). In spring 2017, Lisa Zahray and Caity Looby (’19, Course 8) were the lead instructors.

After the first offering of E&M and Python seminar in spring 2015, we wanted to experiment with introducing Python to a large mainstream class. Together with Physics Professor Deepto Chakrabarty and Senior Lecturer Peter Dourmashkin, we developed an experimental workshop for 8.01 TEAL for the fall of 2015. During the two-hour workshop, students applied Python to some of the basic concepts learned in 8.01 (circular motion, universal law of gravity, and Hooke’s law) to model the landing of a spacecraft (the Philae lander) on a comet (the Rosetta mission).  The students were excited to see how 8.01 physics concepts could be relevant to real world problems. Although the two-hour time constraint limited the students from thinking through a problem systematically from beginning to end, as was possible in the E&M and Python seminar, the workshop exposed the inexperienced students to basic programming skills while the experienced students were able to program more difficult parts of the problem and use their programming knowledge to help their peers. In addition to experimenting with physics concepts, the students learned that writing computer simulations was achievable, and could even be fun.

Back to top

In May of 2016, MIT created the Computational Study Group (CSG) to study how MIT undergraduates learn “algorithmic reasoning and computational thinking” and to recommend ways to incorporate digital learning into the general curriculum. We were eager to learn more about this effort and to merge our experience with the E&M and Python seminar with experiences of others all across the Institute. In recommending that there be a new computation requirement for MIT undergraduates, the CSG recognized the same issue that we had struggled with at ESG, that many departments wishing to add programming components to classes would not necessarily have the requisite computational expertise. They also recognized that avoiding student-overload was critical in the design of courses that would be adding a computational-thinking component.

In the fall of 2016, with the support of Dean Freeman and Professor Kim Vandiver, we decided to teach the E&M/Physics seminar in a new context by offering it as a freshman advising seminar. It’s dangerous to take mechanics alone. Take Python too! was taught by Drs. Rebusco and Barrantes and the now-very-experienced Joe Griffin. ESG Director and EAPS Professor Leigh Royden also contributed to the physics and advising side of the seminar. Although she was experienced in programming, she had never used Python and began learning Python alongside the students, sharing their excitement and difficulties.

Twenty first-semester freshmen registered for the course. Like the E&M/Python seminar, the advising seminar was advertised as teaching basic level programming in Python, but the students who enrolled had a wide range of physics and programming backgrounds. The initial setup of the seminar was similar to the E&M/Python seminar, coordinating programming activities with the mechanics topics that the students encountered in their physics GIRs. To address the students’ varying levels of physics and programming knowledge, we organized the class into three groups that offered different problems at varying degrees of difficulty. Each class began with an hour of lecture for all the students, during which we reviewed physical concepts and introduced algorithmic ideas and Python syntax. During the second hour the group would split into the three groups, one at each of three tables, with one instructor and one undergraduate TA per table. Students with little programming experience were provided with a skeleton of a script to guide them in the process. For students with a strong programming background, we provided more open-ended questions, allowing them to write their own scripts.

Midway through the term we held a whole-class discussion to assess the class pace and material. The students made it clear that our teaching approach was not working well for many of them. For some of these first-semester freshmen, the class was moving far too fast, and we were giving too much homework (our seminar had several hours of homework while many FASs have virtually none).

The students did feel that the seminar was helping them to understand the physics in their GIRs, but students with little or no previous programming experience found that it was too difficult to learn new physics and new computational skills at the same time. For students with a stronger programming background, the course was not challenging enough. The students felt that it was not important for the physics implemented in the seminar to be concurrent with what they were learning in their GIRs. They would have preferred to work on physics topics that they had already mastered (e.g., kinematics) while learning new algorithms and Python skills during the first weeks of the seminar. After becoming more proficient in Python, they felt that they were ready to move on and apply their programming skills to new concepts in physics.

Based on this feedback, we revised the course format for the last five weeks of the term. We reintroduced pre-programming, syntax-free activities in which the students had to challenge each other with writing, solving, and optimizing basic problems, such as ordering or searching the minimum from a list of numbers. Next, the students divided into small groups of two or three to design a physics-based video game. The only requirement was that the game should contain some of the physics concepts learned in 8.01. The students worked in these groups with the support of instructors and TAs both in and out of the classroom.  The change in the classroom atmosphere was palpable as we moved to project-based learning conducted by small teams of students with mixed programming abilities. The concept of “fun” emerged as the students challenged themselves to create games that involved real physics and creative visualization. The experience helped to solidify the students’ understanding of the underlying physics concepts, improved their programming and teamwork skills, and left the students with a feeling of accomplishment.

The process through which we developed this freshman advising seminar addresses some of the challenges identified by the CSG, particularly in terms of the potential lack of programming expertise needed to teach such a class at a departmental level. Our experience shows that working with student instructors who have computational backgrounds and previous TA experience is a viable solution. With supervision and coaching, undergraduate teachers can become valuable partners, and even lead teachers. This approach greatly benefits the undergraduate teachers, giving them teaching skills, self-confidence, and a sense of giving-back to the students who follow after them. Peer instruction within the class, where students with more programming experience helped those with less programming knowledge, benefited both the advanced and less advanced students.

At present, the biggest challenge to a computational course requirement is avoiding overload for incoming freshmen when they are adjusting to the fast-paced and demanding MIT classes in their first semester.

One way to address this might be to give the students two hours of structured class time and two hours of project-based work with TAs per week, with no homework. We are considering experimenting with such a format at ESG.

These Physics-with-Pythonseminars are but a few of the many innovative seminars we teach at ESG every year. ESG’s six-unit seminars, open to all students at MIT, cover a huge range of topics and provide an excellent vehicle for experimenting with curricula and teaching modalities. We would like to invite you, faculty from every MIT department, to work with us at ESG in teaching new seminars and exploring new teaching strategies, including experimentation with computational and algorithmic thinking in context. If you are interested in brainstorming about, teaching, or co-teaching a seminar at ESG, please contact Dr. Paola Rebusco at

Back to top
Send your comments