Python With First Year Physics:
|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 email@example.com.
|Back to top
|Send your comments
|home this issue archives editorial board contact us faculty website