Skip to content

Course materials for CDS 411: Modeling and Simulation II, offered at George Mason University

License

Notifications You must be signed in to change notification settings

jkglasbrenner/cds411-course-materials

Repository files navigation

CDS 411 course materials

Topic schedule

Class Topic
1 Course toolbox
2 Python fundamentals I
3 Python fundamentals II
4 Python for scientific computing I
5 Python for scientific computing II
Demo file: scientific_computing_with_numpy.py
6 Python for scientific computing III
7 System dynamics models: Growth and decay
8 System dynamics models: Growth and decay II
Source file: bacteria.py
9 System dynamics models: Drug dosage I
Source file: aspirin.py
10 System dynamics models: Drug dosage II
Source file: dilantin.py
11 System dynamics models: Damped oscillator and bungee jumping I
12 System dynamics models: Damped oscillator and bungee jumping II
Demo notebook: Interactive undamped oscillator notebook
Source file: undamped_oscillator.py
13 System dynamics models: Damped oscillator and bungee jumping III and shark competition model
Source file: oscillator.py
Source file: bungee.py
Source file: sharks.py
14 Data-driven modeling I
15 Data-driven modeling II
16 Data-driven modeling III
Source file: bootstrap.py
17 Data-driven modeling IV
18 Monte Carlo simulations I
Practice notebook: Module 9.1: Quick Review Questions
19 Monte Carlo simulations II
Source file: mc_integration.py
20 Monte Carlo simulations III
21 Cellular automata I: Heat diffusion
22 Cellular automata II: Forest fire
Source file: forest_fire.py
23 Cellular automata III: Ants
24 Course wrap-up

Readings

Week Book Assignment
1 Introduction to Computational Science Read all of chapters 1.1 and 1.2
2 Automate the Boring Stuff with Python by Al Sweigart Supplement
Chapters 1 through 8 cover the material in the Python fundamentals classes in more depth and with a focus on helping beginners.
2 Think Python by Allen Downey Supplement
Chapters 2, 3, 5, 7, 8, 10, 11, 12, and 14 cover the material in the Python fundamentals classes. This book is a reference manual for Python, and covers things at a more advanced level.
3 An introduction to Numpy and Scipy by M. Scott Shell Read from the beginning up until the end of the Statistics section on page 19
4 Introduction to Computational Science Read all of chapters 2.2 and 2.3
5 Introduction to Computational Science Read all of chapter 2.5
6 Introduction to Computational Science Read all of chapter 3.2
9 Introduction to Computational Science Read all of chapters 8.2 and 8.3
10 Introduction to Computational Science Read all of chapter 9.2
11 Introduction to Computational Science Read all of chapters 9.3 and 9.5
12 Introduction to Computational Science Read all of chapter 10.2
13 Introduction to Computational Science Read all of chapter 10.3

Homeworks

# Description
1 Python fundamentals and Python for scientific computing exercises
2 System dynamics: growth and decay models
3 System dynamics: oscillatory motion models
4 Data-driven modeling
5 Monte Carlo simulations: integration and random number generation
6 Monte Carlo simulations: random walk
7 Cellular automata simulations

Final project

Instructions: project/final_project.md

Resources and links

Datacamp cheat sheets

Datacamp has put together a series of Python for Data Science cheat sheets that you can use as a quick reference during the class. The most relevant ones have been downloaded to this repository and are linked below:

Cheat sheet Description
Python for Data Science Cheat Sheet - Jupyter Notebook Basics of the Jupyter Notebook
Python for Data Science Cheat Sheet - NumPy Basics NumPy Basics
Python for Data Science Cheat Sheet - SciPy - Linear Algebra SciPy - Linear Algebra
Python for Data Science Cheat Sheet - Matplotlib Data visualization with Matplotlib
Python for Data Science Cheat Sheet - Seaborn Data visualization with Seaborn
Python for Data Science Cheat Sheet - Importing Data Importing Data
Python for Data Science Cheat Sheet - Pandas Data transformation and reshaping with Pandas
Python for Data Science Cheat Sheet - Scikit-Learn Machine learning with Scikit-Learn

Software

The following software is not required for participating in the course, but may be useful in your workflow.

Software

OS

Description

GitKraken
Gitkraken

Windows
macOS
Linux

A graphical interface for using git. Cross-platform, works with GitHub, and free to use for educational purposes. Cheatsheets available:

GitHub Desktop
GitHub Desktop

Windows
macOS

A graphical interface for interacting with GitHub, built by GitHub. User documentation from GitHub is available:

Visual Studio Code
Visual Studio Code

Windows
macOS
Linux

A cross-platform and open-source integrated development environment (IDE) for programming. Uses a plugin system called Extensions to add support for different languages and for interfacing with git and GitHub. At a minimum, you should install the official extension for Python. There are also introductory tutorial videos available.

PyCharm
PyCharm

Windows
macOS
Linux

A cross-platform integrated development environment (IDE) designed specifically for programming in Python. Comes with many useful features enabled. Has a plugin ecosystem, but unlike Visual Studio Code they can be treated as optional. There are introductory tutorial videos available. As a current student, you get a free professional license for the editor if you fill out and submit this form.

License

Creative Commons License

Unless otherwise noted, the course materials in this repository are licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.