https://github.com/beyondsimulations/introduction-to-julia-for-or
This course is designed to introduce students to the Julia programming language and the JuMP package, focusing on applications in Operations Research. Students will learn the basics of Julia and understand how to model optimization problems using JuMP.
https://github.com/beyondsimulations/introduction-to-julia-for-or
Last synced: 3 months ago
JSON representation
This course is designed to introduce students to the Julia programming language and the JuMP package, focusing on applications in Operations Research. Students will learn the basics of Julia and understand how to model optimization problems using JuMP.
- Host: GitHub
- URL: https://github.com/beyondsimulations/introduction-to-julia-for-or
- Owner: beyondsimulations
- License: cc-by-sa-4.0
- Created: 2024-01-20T21:53:21.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-08-30T14:57:26.000Z (10 months ago)
- Last Synced: 2025-03-23T22:52:57.984Z (3 months ago)
- Language: Julia
- Size: 130 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Introduction to Julia for OR
## Description
Welcome to the Introduction to Julia for Operations Research and Applied Optimization! This course is designed to introduce students to the Julia programming language and the JuMP package, enabling them to work on applications in Operations Research. Students will first learn the basics of Julia, Package- and Data Management. Afterward, they will be guided to understand how to model optimization problems using JuMP. The entire course is designed to be completed within a few hours. Whether you're just starting out or looking to deepen your understanding of specific Julia features, these tutorials are designed to provide you structured, detailed, and fun learning experience.Inside, you'll find interactive tutorials covering a wide range of topics, including:
- Basic and Advanced Data Structures (Vectors, Matrices, Tuples, Dicts)
- Control Flow (Loops, Conditional Statements)
- Functions (Defining, Calling, Scope, Anonymous Functions, Multiple Dispatch)
- Structs (Defining Simple and Mutable Structs, Field Access, Constructors)
- Package Management (Adding, Updating, Removing Packages, Managing Environments)
- Optimization (Creating Models, Variables, Objectives and Constraints using JuMP)
- And many more Julia programming concepts!Each tutorial combines theoretical explanations with practical code examples and exercises, allowing you to apply what you've learned immediately.
For a first start, we highly recommend to work on this Introduction with the Julia Cheat Sheet ([https://cheatsheet.juliadocs.org](https://cheatsheet.juliadocs.org)).## Repository Structure
The repository is organized into folders, each representing a major topic. Here's what you can expect:1. `/BasicConcepts` - Tutorials on vectors, matrices, tuples, loops, conditional statements and functions.
2. `/PackagesAndData` - Learn about Package Management, DataFrames, reading and writing files and plotting.
3. `/Modelling` - Explore modelling algebraic problems in JuMP.
4. `/AdvancedConcepts` - Understand advanced concepts, such as structs, multi-threading ans performace.## How to Use This Repository
1. Clone the repository to your local machine.
2. Navigate to the topic of interest.
3. Open the Julia scripts (`.jl` files) in your preferred editor.
4. Follow the instructions in the scripts, write your code in the designated blocks, and use the `@assert` statements to verify your solutions.## Further Reading
To complement the hands-on tutorials in this repository, we recommend the following resources for further exploration and in-depth understanding of Julia:1. **Julia Documentation**: The official Julia documentation is an excellent resource for understanding the language's features and syntax ([https://docs.julialang.org/](https://docs.julialang.org/)).
2. **Think Julia**: This book is great for beginners and covers Julia programming in a comprehensive manner ([https://benlauwens.github.io/ThinkJulia.jl/latest/book.html](https://benlauwens.github.io/ThinkJulia.jl/latest/book.html)).
3. **JuMP Documentation**: The official documentation of JuMP is a great resource for understanding optimization modeling in Julia, covering everything from simple linear models to advanced nonlinear and mixed-integer problems. ([https://jump.dev/JuMP.jl/stable/](https://jump.dev/JuMP.jl/stable/)).
4. **Julia Programming for Operations Research**: This book is a fantastic ressource for students interested in Julia and Operations Research and covers a variety of topics ([https://www.chkwon.net/julia/](https://www.chkwon.net/julia/)).## Contributing
We welcome contributions, corrections, and suggestions! If you'd like to contribute to this repository, please feel free to open a pull request or an issue.## License
This repository is open-source and available under MIT.