This web page links to materials and demos used in the 2023 Informs Teaching Effectiveness Colloquium
Geometry of Linear Programming (GILP)
- Several examples with a narrative flow (based on the third edition of Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein) can be found here.
- A Google Colab notebook showing how to create a custom LP example and an HTML file, without a student ever needing to see code!
- The GILP GitHub has even more (e.g. Branch and Bound) and contributions are encouraged
- Our paper GILP: An Interactive Tool for Visualizing the Simplex Algorithm goes into more details on development of GILP, how it fits into the literature on Algorithmic Visualizations, and analyzes data from use at Cornell. (If the SIGCSE version is behind a paywall, there’s also an arXiv version)
Bringing Data into Intro OR Courses
Versions of Demos and Labs for the Cornell Intro OR course (and the eCornell/National Education Equity Lab online high school course on Data Science and Decision Making) can be found in the labs folder of this github. Many of these demos are involved and depend on ancillary files / demos (and sometimes can be a bit finnicky with version control as various python packages update). If you want to be fancy, you can clone the GitHub repo (and see the front page for some advice). The easiest thing to do, however, is as follows:
- Go to the above link and directly download the GitHub repo (on the above link, click the green “Code” dropdown and then click “Download ZIP”). then extract it and put it somewhere convenient (like your Desktop)
- Follow the software installation instructions here to download Anaconda and create an environment that will install all the necessary python packages.
- Note 1: If you are on Windows, the instructions have you download Microsoft Visual C++ Redistributable for Visual Studio 2019. Your computer may have a more-recent version (mine had “2015-2022”); I got it working without downloading/updating/downgrading/changing anything, so you may not need to do this step.
- Note 2: At one point, the instructions mention an engri_1101.yml file “which has been distributed to you.” You can download that file here.
- Note 3: You can skip the Gurobi installation and still use almost all demos/labs
- Note 4: I had to do one package tweak to get things working: in Anaconda home page, with the engri_1101 environment selected, I went to the “Powershell Prompt” icon, clicked “Install”, and then “Launch.” Then I entered the following into the powershell prompt
!pip install ‘jinja2== 3.0.3’ –force-reinstall
to use a specific version of a Python library compatible with the current labs.
- Open Jupyter Notebook (by clicking Launch in the Anaconda home page, with the engri_1101 environment selected), navigate to the file you downloaded and extracted in the first step, and start playing around with lab demos!