Choose Your Own Adventure: Teaching a Project-Based Intro to MATLAB SeminarRyan Pellico, Mathematics, Trinity College
In my second year of teaching, I inherited an introduction to MATLAB seminar titled "Scientific Computing in MATLAB" which had been created the previous year by a faculty member who was no longer at Trinity. The course is offered in a seminar style in a computer lab, and carries half the credit load of a typical class, meeting once a week for 75 minutes. In its first offering, despite having a modest perquisite of Calc 2 and no coding experience required, the class was populated by upperclassmen math and computer science majors who had almost all taken linear algebra and differential equations, and covered advanced applications in numerical analysis, differential equations, statistics, and linear algebra.
In its second offering, when I first taught it, the roster included a mix of sophomores through seniors in mathematics, computer science, engineering, psychology, neuroscience, and economics, as well as several undeclared students, many of whom had the minimum prerequisite of Calc 2 and no coding experience. I quickly realized that the previous model would not work with this cohort, and had to redesign the curriculum on the fly. After now having taught the class three more times, including twice remotely due to the COVID-19 pandemic, I have iterated towards a relatively comfortable schedule that I believe works well and serves the students effectively by emphasizing basic coding and plotting skills and allowing students to focus on a project of interest to them, while deemphasizing some of the advanced applications in numerical analysis, differential equations and linear algebra.
Aside from using elementary mathematical topics instead of advanced ones to motivate the topics covered in the class, the fundamental change I made to the course was to include an individual project in addition to the weekly coding assignments and sporadic in-class quizzes. The students spend the first few weeks of the semester being introduced to standard programming techniques and capabilities of MATLAB: reading data from spreadsheets, performing numerical simulations, computations, and visualizations of results, in which I try to cover a wide range of topics and mention ideas how one could build on these topics for a project. During this time, students are encouraged to brainstorm project ideas, especially related to their major, interests, or research experiences. For example, many of the engineering, chemistry, and psychology majors at Trinity already have some minimal experience with MATLAB in courses or lab research, and benefit greatly from the ability to focus their learning towards these important applications in their area.
By the midpoint of the semester, students need to submit a project proposal to me for approval, detailing the nature of their project. This process will often involve meeting one-on-one with students to help expand of refine their idea, as necessary, and setting up a timeline for various aspects of their project, especially those that require collection of external data. Although I usually only dedicate one (the last) of the thirteen meetings to allow students to work in class on their project, in the last few weeks of the semester I assign fewer problems and instead ask for weekly updates on their project, which is submitted at the latest on the day scheduled for our final exam.
Although I probably spend more time meeting with students in office hours to discuss and help guide them on their projects than I would for standard coding assignments, I have found it to be a very rewarding use of my time, as many students are often genuinely interested in their project and seem to get much more out of the course in this format. For me it is also a great opportunity to see how MATLAB is used in other departments across our college, and in the best case the students expose me to new capabilities or functionality of MATLAB, which I can share with similar students in the future.