ENGRI 1101 Course Development
Dates: Jun. 2020 - Jul. 2022 GitHub: engri-1101 Associated Projects:- GILP | A Python package for visualizing the geometry of linear programs
- vinal | A Python package for visualizing graph algorithms
ENGRI 1101: Engineering Applications of Operations Research is a freshman level course conceived by David Shmoys. It has been taught at Cornell University for over two decades. The following description of the course was taken from the Spring 2022 Class Roster.
Introduction to the problems and methods of operations research and information engineering focusing on problem areas (including inventory, network design, and resource allocation), the situations in which these problems arise, and several standard solution techniques. In the computational laboratory, students encounter problem simulations and use some standard commercial software packages.
Like many, my decision to major in operations research was a direct result of taking the class freshman year (Fall 2018). One of the topics that intrigued me most was linear and integer programming. The class teaches the simplex method for solving linear programs and branch and bound for solving integer programs. Having geometric intuition for these algorithms was crucial to my understanding however, I found current visualization tools lacking. This motivated me to join a team led by David Shmoys in Summer 2020 that was initiating a revamp of the course. The aim of the revamp was to incorporate new, at-scale data with an emphasis on visualizations, ultimately working towards an interactive textbook and online course on data science and decision making.
The majority of my Summer 2020 work was spent developing GILP, a Python package for visualizing the simplex and branch and bound algorithms. I took the following Fall 2020 semester off while I worked full-time on course development and acted as a teaching assistant. During that time, I implemented Jupyter Notebook versions of many old labs and created substantial new lab material including an application of maximum flow to Manhattan taxi data and an application of integer programming to gerrymandering electoral district boundaries. The latter utilized tools created by Wes Gurnee for the Fairmandering project. Additionally, I standardized all lab content in preparation for publishing an online textbook. In January 2021, I developed vinal, a Python package to visualize graph algorithms for the TSP, shortest path problem, and MST problem.
I took a sideline role until Spring 2022 when I returned as a teaching assistant for a second semester. In preparation for another summer of students developing lab material, I gathered all of the pieces from Summer 2021 and revamped the organization of lab material. Unable to help myself, I rejoined the team. During Summer 2022, my work was mainly focused on integrating lab material with a new software platform for the future delivery on eCornell. In addition, I advised on a platform for hosting an online interactive textbook. My final task was publicizing the past two years of work in a new GitHub Organization for the course.