Professor Kyle Mandli on Leveraging Open Source Principles for Teaching in STEM

by | Oct 19, 2017

Free and open source software (FOSS) has become a linchpin in many of the most advanced technologies to arise in the past two decades. The principles and practices behind the success of open source software has made its way into non-software contexts and education should be no different.

Kyle Mandli, Assistant Professor in the Department of Applied Physics and Applied Mathematics, will be facilitating an upcoming two-session workshop on October 24 and 31 titled Leveraging Open Source Principles and Resources for Teaching and Learning in STEM. The program is well suited from graduate students, postdocs, faculty, and staff in the sciences and engineering. The sessions will be facilitated by Mandli and Andreas Mueller, Lecturer at the Data Science Institute.

As a recipient of the Provost’s Hybrid Learning Course Redesign and Delivery award, Mandli received support from the Center for Teaching and Learning (CTL) to redesign his introductory course Introduction to Numerical Methods. Ahead of the event, he shares some of his approaches for engaging students in a large lecture environment using open source technologies and collaborative learning strategies.

What do you teach at Columbia?

I currently teach the first two courses of the computational mathematics sequence for the department. These courses tend to attract a wide variety of students due to the ubiquitous nature and need of computing in the sciences and engineering.

What teaching challenge did you encounter while teaching your course?

One of the challenges I face is teaching to an extremely diverse audience from a technical background perspective. The need causes these courses to be large and often over-subscribed, leading to the need to come up with innovative ways to scale teaching from the usual class sizes commonly found in applied mathematics courses.

How did you approach this teaching challenge?

The technical diversity challenge was partially addressed by adjusting how we taught the course as well as what technology we used in the classroom. Support from the Office of the Provost helped address these challenges through funding for content creators that helped to develop some of the course content.

Often times during lecture I will pause for a few minutes and allow students to reflect on the impact of the mathematical concept just presented or to program an algorithm that was just discussed. This allows students who may not be as mathematically trained to have some time to absorb the concepts. It allows those who are not as experienced as programmers to try to tackle an algorithm before we present the solution.

This is all supported by the use of Jupyter notebooks, which form both the lecture notes and assignments, and also allow the mixture of complex mathematical discussions along side coding. Students also need only interact with one type of interface, which is a nice benefit.

[Editor’s note: The Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text. The Notebook has support for over 40 programming languages, including Python, R, Julia, and Scala. Learn more at]

Tell us about the open source technologies you leveraged for the course. What was the impact on student learning?

The problem of scaling a course to a large number of students has been partially addressed by the use of open source technologies. Grading is partially done automatically by a system called nbgrader, allowing for coding questions to be easily checked by a grader much more quickly. We also rely on the use of Jupyter notebooks to turn in assignments that mix both what would have been written mathematics with coding questions.

Students generally have been eager to learn about and interact with these open source technologies and resources as they become more popular in both academics and industry. The course notes themselves are open source, which allows students to participate in the creation of the notes via the GitHub platform.

Students have expressed that they enjoy the feeling of having ownership over their learning as they actively participate in improving the notes. The fact that they are open source has also meant that these notes are used outside of Columbia to help the wider teaching community with teaching these topics.

Interested in integrating instructional technologies into your classroom? The Office of the Provost provides funding opportunities for faculty who are looking to integrate new educational technologies into their classroom and online teaching. 

GitHub Course Notes

Related Links