Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mint-lab/prog_meets_math
Programming Meets Mathematics
https://github.com/mint-lab/prog_meets_math
calculus linear-algebra matplotlib numpy optimization probability python scipy
Last synced: about 2 months ago
JSON representation
Programming Meets Mathematics
- Host: GitHub
- URL: https://github.com/mint-lab/prog_meets_math
- Owner: mint-lab
- Created: 2023-09-06T12:42:37.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-30T21:59:53.000Z (2 months ago)
- Last Synced: 2024-10-30T22:27:47.716Z (2 months ago)
- Topics: calculus, linear-algebra, matplotlib, numpy, optimization, probability, python, scipy
- Homepage:
- Size: 14.5 MB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Programming Meets Mathematics
_Programming Meets Mathematics_ (a.k.a. _Python Meets Mathematics_) is an intuitive tutorial on [Python](https://www.python.org/) and its widely used libraries such as [NumPy](https://numpy.org/), [Matplotlib](https://matplotlib.org/), and [SciPy](https://scipy.org/). Python with these libraries are commonly used in scientific computing (sometimes as an alternative of MATLAB). In addition to review these libraries, this tutorial aims to promote intuitive understanding of important mathematical concepts with code examples. The given example codes in Python provide visualization and simulation, which will connect your mathematical understanding to your programming skill.This tutorial has been initiated as a course to teach 2nd-year undergraduate students in [Computer Science and Engineering Department](https://computer.seoultech.ac.kr/) in [SEOULTECH](https://www.seoultech.ac.kr/). The course also includes a brief introduction to machine learning and deep learning as available in [dl_tutorial](https://github.com/mint-lab/dl_tutorial).
* To install prerequisites in Python: `pip install -r requirements.txt`
* To clone this repository (codes and slides): `git clone https://github.com/mint-lab/prog_meets_math.git`
* To fork this repository to your Github: [Click here](https://github.com/mint-lab/prog_meets_math/fork)
* To download codes and slides as a ZIP file: [Click here](https://github.com/mint-lab/prog_meets_math/archive/master.zip)### Lecture Slides
* [Section 1. Python: Basic](https://github.com/mint-lab/prog_meets_math/blob/master/slides/python01_basic.pdf)
* [Section 2. Python: From Beginner to Intermediate](https://github.com/mint-lab/prog_meets_math/blob/master/slides/python02_intermediate.pdf)
* [Section 3. Python: Standard Library](https://github.com/mint-lab/prog_meets_math/blob/master/slides/python03_std_library.pdf)
* [Section 4. Python Meets Math: Calculus](https://github.com/mint-lab/prog_meets_math/blob/master/slides/math01_calculus.pdf)
* [Section 5. Python Meets Math: Linear Algebra](https://github.com/mint-lab/prog_meets_math/blob/master/slides/math02_linear_algebra.pdf)
* [Section 6. Python Meets Math: Optimization](https://github.com/mint-lab/prog_meets_math/blob/master/slides/math03_optimization.pdf)
* [Section 7. Python Meets Math: Probability](https://github.com/mint-lab/prog_meets_math/blob/master/slides/math04_probability.pdf)### Example and Lab Codes
* :memo: Note) Only long example codes are contained as follows. Short code snipets are shown in the given slides directly.
* **Section 1. Python: Basic** [[slides]](https://github.com/mint-lab/prog_meets_math/blob/master/slides/python01_basic.pdf)
* Lab) Korean COVID-19 New Cases by Region [[slide]](https://github.com/mint-lab/prog_meets_math/blob/master/slides/python01_lab.pdf) [[skeleton_code]](https://github.com/mint-lab/prog_meets_math/blob/master/examples/covid19_statistics_skeleton.py)
* **Section 2. Python: From Beginner to Intermediate** [[slides]](https://github.com/mint-lab/prog_meets_math/blob/master/slides/python02_intermediate.pdf)
* [Mean and variance](https://github.com/mint-lab/prog_meets_math/blob/master/examples/mean_var.py)
* Lab) Midterm and Final Exam Analysis [[slide]](https://github.com/mint-lab/prog_meets_math/blob/master/slides/python02_lab.pdf) [[skeleton_code]](https://github.com/mint-lab/prog_meets_math/blob/master/examples/class_score_analysis_skeleton.py)
* **Section 3. Python: Standard Library** [[slides]](https://github.com/mint-lab/prog_meets_math/blob/master/slides/python03_std_library.pdf)
* [A very simple chatbot](https://github.com/mint-lab/prog_meets_math/blob/master/examples/simple_chatbot.py)
* [Turtle painter](https://github.com/mint-lab/prog_meets_math/blob/master/examples/turtle_painter.py)
* [Face detection using OpenCV](https://github.com/mint-lab/prog_meets_math/blob/master/examples/turtle_painter.py)
* Lab) _Turtle Runaway_ [[slide]](https://github.com/mint-lab/prog_meets_math/blob/master/slides/python03_lab.pdf) [[skeleton_code]](https://github.com/mint-lab/prog_meets_math/blob/master/examples/turtle_runaway_skeleton.py)
* **Section 4. Python Meets Math: Calculus** [[slides]](https://github.com/mint-lab/prog_meets_math/blob/master/slides/math01_calculus.pdf)
* [Turtle animation](https://github.com/mint-lab/prog_meets_math/blob/master/examples/turtle_animation.py)
* Lab) Midterm and Final Exam Visualization [[slide]](https://github.com/mint-lab/prog_meets_math/blob/master/slides/math01_lab.pdf) [[skeleton_code]](https://github.com/mint-lab/prog_meets_math/blob/master/examples/class_score_plot_skeleton.py)
* **Section 5. Python Meets Math: Linear Algebra** [[slides]](https://github.com/mint-lab/prog_meets_math/blob/master/slides/math02_linear_algebra.pdf)
* [Line fitting](https://github.com/mint-lab/prog_meets_math/blob/master/examples/line_fitting.py)
* [Curve fitting](https://github.com/mint-lab/prog_meets_math/blob/master/examples/curve_fitting.py)
* [Curve fitting with model selection](https://github.com/mint-lab/prog_meets_math/blob/master/examples/curve_fitting_model.py)
* Lab) Final Exam Score Prediction [[slide]](https://github.com/mint-lab/prog_meets_math/blob/master/slides/math02_lab.pdf) [[skeleton_code]](https://github.com/mint-lab/prog_meets_math/blob/master/examples/class_score_predict_skeleton.py)
* **Section 6. Python Meets Math: Optimization** [[slides]](https://github.com/mint-lab/prog_meets_math/blob/master/slides/math03_optimization.pdf)
* Finding a local minimum $y=0.1x^3-0.8x^2-1.5x+5.4$
* [Gradient descent](https://github.com/mint-lab/prog_meets_math/blob/master/examples/min_gradient_descent.py)
* [Newton's method](https://github.com/mint-lab/prog_meets_math/blob/master/examples/min_newton_method.py)
* [scipy.optimize](https://github.com/mint-lab/prog_meets_math/blob/master/examples/min_scipy_optimize.py)
* [Line fitting with minimizing geometric distance](https://github.com/mint-lab/prog_meets_math/blob/master/examples/line_fitting_geo_dist.py)
* Lab) Multivariate Nonlinear Optimization [[slide]](https://github.com/mint-lab/prog_meets_math/blob/master/slides/math03_lab.pdf) [[skeleton_code]](multivar_optimization_skeleton.py)
* **Section 7. Python Meets Math: Probability** [[slides]](https://github.com/mint-lab/prog_meets_math/blob/master/slides/math04_probability.pdf)
* [Central limit theorem visualization](https://github.com/mint-lab/prog_meets_math/blob/master/examples/clt_visualization.py)### License
* [Beerware](http://en.wikipedia.org/wiki/Beerware)### Authors
* [Sunglok Choi](https://mint-lab.github.io/sunglok/)### Acknowledgement
* An image file of [_My Mister_](https://tvn.cjenm.com/ko/mymister/) (_나의 아저씨_ in Korean) and a pretrained data file in [OpenCV](https://opencv.org/) are used for an example of face detection.