BICF Python 1 - Nanocourse
This nanocourse will introduce Python for scientific computing.
Python is an open-source, fun, easy to learn, and powerful programming language.
With deep community support and wide ranging deployment across many domains, Python is a worthy tool for projects large and small that any computational scientist should keep on hand.
Topics for this two day (all-day) course will include:
- Basic install, setup, and IDEs
- Basic Syntax
- Conditional statements, loops, functions
- Modules, classes, scripting, debugging
- Numerical arrays/matrices (numpy/scipy)
- Data structures (pandas)
- Plotting data (matplotlib, seaborn, bokeh)
The course will be interactive, with lectures followed by hands-on learning and exercises. No previous programming experience is necessary. Familiarity with basic programming/scripting concepts is helpful. Students will also have the opportunity to share their own technical challenges and explore as a class how python can help.
- Course Coordinator: Andrew Jamieson
- Course Administration: Rebekah Craig
-
Please bring your own laptop
-
Download & Install: Anaconda Python (with Python 3.6)
- Once installed, we will cover initial startup /setup of Python IDEs/ etc.. in the course.
-
Microsoft Teams - Python I Nanocourse Page
- Log on to Teams to ask questions, share ideas, post content, get assignments
- Use a browser (like Chrome) or download the desktop app
Install conda environment specified in environment.yml
by downloading the file and running the following in Terminal (macOS and Linux) or an Anaconda Prompt (Windows):
# Install the environment
conda env create --file environment.yml
Activate the new environment (assumes conda
version of at least 4.4):
- Windows:
activate bicf-python1
- macOS and Linux:
source activate bicf-python1
The environment should successfully install on both Linux, macOS and Windows.
Test the new environment by downloading the python script check_versions.py
and running:
# Test the environment
python check_versions.py
Output of script if everything works should be:
[ INFO] Hello - we're checking if your system is ready for the Python 1 Nanocourse
[ INFO] Python verion OK!
[ INFO] Checking for numpy 1.14.0
[ INFO] Checking for scipy 1.0.0
[ INFO] Checking for pandas 0.22.0
[ INFO] Checking for matplotlib 2.1.2
[ INFO] Checking for seaborn 0.8.1
[ INFO] Checking for bokeh 0.12.13
[ INFO] Checking for spyder 3.2.6
Woo! - Ready to go, see you at the nanocourse :-)
Deactivate the environment using:
- Windows:
deactivate bicf-python1
- macOS and Linux:
source deactivate bicf-python1
Day 1 | February 27th, 2018
Room NB2.100A
Time | Topic | Instructor |
---|---|---|
9:00 - 10:00 a.m. | Intro, IDEs, Setup | Andrew Jamieson |
10:00 - 11:00 a.m. | Basic Syntax | Daniel Moser |
11:00 a.m. - 12:00 p.m. | Practical Exercises | |
1:00 - 2:00 p.m. | Control Statments, Loops, Functions | Daniel Moser |
2:00 - 3:00 p.m. | Practical Exercises | |
3:00 - 3:30 p.m. | Modules, Classes, Environments | Benjamin Wakeland |
3:30 - 4:00 p.m. | Scripting, Debugging | |
4:00 - 5:00 p.m. | Practical Exercises |
Day 2 | February 28th, 2018
Room NB2.100A
Time | Topic | Instructor |
---|---|---|
9:00 - 10:00 a.m. | Numpy + Scipy | Viren Amin |
10:00 - 11:00 a.m. | Practical Exercises | |
11:00 a.m. - 12:00 p.m. | Data Structures + Pandas Slides and Workshop |
Venkat Malladi |
1:00 - 2:00 p.m. | Data Structures + Pandas (cont.) Slides and Workshop |
Venkat Malladi |
2:00 - 2:30 p.m. | Plotting Data: Matplotlib, Notebook | Wei Guo |
2:30 - 3:00 p.m. | Plotting Data: Bokeh, Seaborn | |
3:00 - 4:00 p.m. | Practical Exercises | |
4:00 - 5:00 p.m. | Python Therapy: Student Cases | All Instructors |
TAs: Guillaume Jimenez, Gervaise Henry, Behrouz Saghafi Khadem
Opportunity to apply what you've learned to your own research! Students are encouraged to present a specific technical challenge encountered in their work and how they might solve this problem with python. We will review these cases as a class and discuss.