Lecture 1 - Introduction & Python Setup
Management Science
About this Course
About Me

- Field: Optimizing & simulating complex systems
- Languages of choice: Julia, Python and Rust
- Interests: Modeling, simulations, machine learning
- Teaching: OR, algorithms, programming & mathematics
- More: tobiasvlcek.com
I really appreciate active participation and interaction!
What is
Management Science?
Management Science
Management science is an interdisciplinary field that applies research-based methods, such as modeling, statistics, and algorithms, to solve complex organizational problems and guide strategic decisions, seeking optimal or near‑optimal outcomes across institutions, corporations, and governments.1
It is not the science of management!
Course Outline
- Part I: Python Foundation (Lectures 1-3)
- Variables, loops, functions, data science tools
- Part II: Management Science Tools (Lectures 4-9)
- Monte Carlo, Scheduling, Routing, Metaheuristics
- Part III: Consulting Competition (Lectures 10-12)
- Client briefings, development, final presentations
You’re now consultants learning to solve real business problems!
From Amazon to Hospitals
Where Algorithms Make Millions
- Amazon: Routing algorithms save millions in delivery costs
- Uber: Real-time matching algorithms connect drivers and riders
- Hospitals: Scheduling algorithms optimize shifts and OR usage
- Airlines: Revenue algorithms price tickets dynamically
- Manufacturing: Production scheduling reduces waste and delays
Management Science is everywhere!
This Course Approach
The Consultant Mindset
- You’ll work on business problems
- Learn to communicate solutions to non-technical clients
- Build practical tools that solve actual challenges
- Compete in a consulting competition with real scenarios
Think like a consultant: What value does my solution bring to the business?
Course Structure
- 12 lectures of intensive learning
- 3 hours per lecture (with breaks!)
- Interactive format:
- Concepts & Setup
- Hands-on Python notebooks
- Consulting Competition
- Final competition: Apply everything you’ve learned
Each lecture builds on the previous - attendance is important!
Grading
Grade Composition:
- Course has 100 points, 50 needed to pass
- 2 Assignments: 30 points each
- Final Consulting Project: 40 points
We will have several competitions including our final competition, where you will have the chance to earn bonus points!
Assignments
Assignment Strategy:
- Start with easy warm-ups in tutorials
- Progress to real-world problems
- All assignments have clear rubrics
- Bonus points for creative solutions!
Late submissions: -10% per day (max 3 days)
Learning Python
- In my experience, the best way to learn is by doing!
- Here, we will focus on decision algorithms
- You will start to learn Python by doing the tutorials
Don’t worry, I will help you out if you have any questions!
What to Expect
- No prior programming required - we start from zero!
- But experience is helpful!
- Fast-paced but with lots of support
- Practical focus - less theory, more doing
- Mistakes are welcome - they’re how we learn
The course gets easier after week 3 - the hardest part is getting started!
Course Goals
By the end, you will be able to:
- Write Python code to solve business problems
- Apply algorithms for scheduling, routing, and optimization
- Simulate uncertainty using Monte Carlo methods
- Present solutions like a management consultant
- Build tools that create business value
You’ll leave with a portfolio of ideas to work on real solutions!
Why Python?
- Origins: Conceived in late 1980s as a teaching and scripting language
- Simple Syntax: Python’s syntax is mostly straightforward and very easy to learn
- Versatility: Used in web development, data analysis, artificial intelligence, and more
- Community Support: A large community of users worldwide and extensive documentation
Help from AI
- You are allowed to use AI in the course
- I use it as well (e.g., Claude, ChatGPT, Gemini, …)
- These tools are great for learning Python!
- Can help you a lot to get started with programming
- I will also teach you how to use it effectively
But you should not simply use them to replace your learning.
Learning to Program
My Recommendation
- Be present: Attend the lecture and solve the tutorials
- Put in work: Repeat code and try to understand it
- Do coding: Run code, play around, modify, and solve
- Compete: Participate in the competitions to learn
Great resources to start are books and small challenges. You can find a list of recommendations in the literature recommendations.
Don’t give up!
Programming is like learning to ride a bike
- You’ll fall a few times
- It feels impossible at first
- Then suddenly… it clicks!
Lectures 1-3 are the hardest. Push through and it gets much easier!
Setting up Python
What is an IDE?
Install VS Code
- Download and install from the website
- Built for Windows, Linux and Mac
- Install the Python and Jupyter extension
- Great! First steps are done
Unsure on how to work with VS Code and notebooks? Ask me! I’m happy to help you out!
Installation of Python with uv
- We will use
uvto install and manage Python versions - It works on Windows, Mac and Linux
- It helps us to manage packages and virtual environments
- Now, we all go here and install
uvand Python
If the installation does not work, let me know!
Notebooks with uv
Quick Check
- Have you installed
uvand initialized the project? - Great! Before we continue, check the following:
Something not working yet? Ask me!
Using Notebooks
- Now we need to add a kernel to our project
- Run
uv add --dev ipykernelfrom your terminal - Now run
uv add jupyterin the terminal - This allows us to use
uvPython in notebooks - Done? Perfect. Now we can start!
Working with Notebooks
- Now you can download the files from the website
- Just click on one of the sessions and open it
- Select
Jupyteron the right side - Download and save the files to your course folder
- Open them and select “Open with Jupyter Notebook”
That was the hardest part today!
What’s Next?
After the break, we’ll dive into:
- Tutorial 1: Variables and basic data types
- Tutorial 2: Lists and loops
- Tutorial 3: Conditionals and control flow
Ready for the tutorials? Make sure your Jupyter notebook is working before we continue!
The End
That’s it for our introduction!
Make sure you have:
Take a 10-minute break, then we’ll start with the interactive notebooks.
Literature
Literature on Algorithms
- Christian, B., & Griffiths, T. (2016). Algorithms to live by: the computer science of human decisions. First international edition. New York, Henry Holt and Company.2
- Ferguson, T.S. (1989) ‘Who solved the secretary problem?’, Statistical Science, 4(3). doi:10.1214/ss/1177012493.
Books on Programming
- Downey, A. B. (2024). Think Python: How to think like a computer scientist (Third edition). O’Reilly. Here
- Elter, S. (2021). Schrödinger programmiert Python: Das etwas andere Fachbuch (1. Auflage). Rheinwerk Verlag.
Think Python is a great book to start with. It’s available online for free. Schrödinger Programmiert Python is a great alternative for German students, as it is a very playful introduction to programming with lots of examples.
More Literature
For more interesting literature, take a look at the literature list of this course.