Course Detail (Course Description By Faculty)

Advanced Decision Models with Python (36109)

This course focuses on modeling, analyzing and solving managerial decision problems using Python, the de facto programming language of business analytics.

We will address a variety of problem areas such as optimal assignment and routing, resource allocation, and sequential decision analysis. Our toolkit will involve optimization (deterministic and stochastic) and discrete event simulation.

In addition to modeling, we will learn what it means to use professional software tools. For example, one decision model we address is the assignment of Uber drivers to customers. There are various options for us to consider of how to model such a decision. And with our ability to utilize Google’s API to get travel time data we are able to build a decision tool that can be used in the enterprise.

We will also learn how to build discrete event simulations with Python. This is a very powerful tool that can be used to simulate countless processes. For example, how items flow through a logistical system, customers through a restaurant or hospital, or a disease through a community.

The class is a mix of modern programming tools and decision modeling. As such, the class can be, depending on your background, challenging and time consuming. Bus 36106 (Managerial Decision Modeling) is a suggested prerequisite for this class. A student may skip Bus 36106 if they have a good background in Linear Programming and basic probability and statistics (an Industrial Engineering major for example). Students should also have exposure to a modern object oriented programming language (Bus 36110 or Bus 32100 is one way to gain such experience). For students with programming experience but new to Python, there is a series of tutorials available on Canvas to work through before our first class.

This class is a natural follow-on to Bus 36106, Managerial Decision Modeling. Bus 36106 is constrained by the tools available within Excel and its limited ability to interact with all the information available from the internet.

This class is also a natural companion to Bus 36110, Application Development. Whereas Bus 36110 covers the full-stack building of web applications, it does not delve into the decision making or algorithmic needs of the enterprise. A student who has already taken Bus 36110 will find it easy to utilize their knowledge of the internet and object oriented programming for this class, and be ready to focus on decision modeling.

Please note that the use of ”Advanced” in the course title does not pertain to Python. We will not cover advanced concepts of the Python language. In fact, I will stick to the basics of the language so that the course is accessible to students with only an introduction to programming in any modern language. The ”Advanced” better describes that using Python rather than Excel for decision modeling is more challenging and advanced in its capabilities. And ”Advanced” describes the types of models we will be able to examine here vs. Bus 36106 (for example stochastic optimization and discrete event simulation).

Review the syllabus for more detailed information.

Bus 36106 is recommended. See advice given in Content section of course description.

Experience with an object-oriented programming language. See advice given in Content section of course description.
Course materials will be posted in Canvas.
Homework assignments, in-class assignments, in-class midterm and in-class final exam. No pass/fail grades. No auditors.
  • Allow Provisional Grades (For joint degree and non-Booth students only)
  • No pass/fail grades
  • No auditors
Description and/or course criteria last updated: January 26 2024
SCHEDULE
  • Spring 2024
    Section: 36109-01
    W 1:30 PM-4:30 PM
    Harper Center
    C05
    In-Person Only
  • Spring 2024
    Section: 36109-02
    TH 1:30 PM-4:30 PM
    Harper Center
    C05
    In-Person Only
  • Spring 2024
    Section: 36109-81
    TH 6:00 PM-9:00 PM
    Gleacher Center
    306
    In-Person Only

Advanced Decision Models with Python (36109) - Eisenstein, Donald>>

This course focuses on modeling, analyzing and solving managerial decision problems using Python, the de facto programming language of business analytics.

We will address a variety of problem areas such as optimal assignment and routing, resource allocation, and sequential decision analysis. Our toolkit will involve optimization (deterministic and stochastic) and discrete event simulation.

In addition to modeling, we will learn what it means to use professional software tools. For example, one decision model we address is the assignment of Uber drivers to customers. There are various options for us to consider of how to model such a decision. And with our ability to utilize Google’s API to get travel time data we are able to build a decision tool that can be used in the enterprise.

We will also learn how to build discrete event simulations with Python. This is a very powerful tool that can be used to simulate countless processes. For example, how items flow through a logistical system, customers through a restaurant or hospital, or a disease through a community.

The class is a mix of modern programming tools and decision modeling. As such, the class can be, depending on your background, challenging and time consuming. Bus 36106 (Managerial Decision Modeling) is a suggested prerequisite for this class. A student may skip Bus 36106 if they have a good background in Linear Programming and basic probability and statistics (an Industrial Engineering major for example). Students should also have exposure to a modern object oriented programming language (Bus 36110 or Bus 32100 is one way to gain such experience). For students with programming experience but new to Python, there is a series of tutorials available on Canvas to work through before our first class.

This class is a natural follow-on to Bus 36106, Managerial Decision Modeling. Bus 36106 is constrained by the tools available within Excel and its limited ability to interact with all the information available from the internet.

This class is also a natural companion to Bus 36110, Application Development. Whereas Bus 36110 covers the full-stack building of web applications, it does not delve into the decision making or algorithmic needs of the enterprise. A student who has already taken Bus 36110 will find it easy to utilize their knowledge of the internet and object oriented programming for this class, and be ready to focus on decision modeling.

Please note that the use of ”Advanced” in the course title does not pertain to Python. We will not cover advanced concepts of the Python language. In fact, I will stick to the basics of the language so that the course is accessible to students with only an introduction to programming in any modern language. The ”Advanced” better describes that using Python rather than Excel for decision modeling is more challenging and advanced in its capabilities. And ”Advanced” describes the types of models we will be able to examine here vs. Bus 36106 (for example stochastic optimization and discrete event simulation).

Review the syllabus for more detailed information.

Bus 36106 is recommended. See advice given in Content section of course description.

Experience with an object-oriented programming language. See advice given in Content section of course description.
Course materials will be posted in Canvas.
Homework assignments, in-class assignments, in-class midterm and in-class final exam. No pass/fail grades. No auditors.
  • Allow Provisional Grades (For joint degree and non-Booth students only)
  • No pass/fail grades
  • No auditors
Description and/or course criteria last updated: January 26 2024
SCHEDULE
  • Spring 2024
    Section: 36109-01
    W 1:30 PM-4:30 PM
    Harper Center
    C05
    In-Person Only
  • Spring 2024
    Section: 36109-02
    TH 1:30 PM-4:30 PM
    Harper Center
    C05
    In-Person Only
  • Spring 2024
    Section: 36109-81
    TH 6:00 PM-9:00 PM
    Gleacher Center
    306
    In-Person Only