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.