benhills / CodingBootCamp

Short course for climate-focused undergraduates new to programming.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Binder

Coding Boot Camp

last edited: Summer 2022

This short course is designed for students who are new to scientific research. The goal is to teach the tools that you will need to be successful as an undergraduate researcher. We are teaching this in four half-days over two weeks, with some assigned 'homework' to get your personal research environment setup between sessions. Hopefully developing a shared set of tools will help you establish yourselves as a 'cohort' of students who can work together on shared problems, even when your specific research goals vary.

Day 1 - Basics

Prerequisites: Access to a computer and to the internet. Code will be run on a remote server through Binder, so no specific computer setup is necessary.

Goals: Python basics; from the obligatory "Hello World!" to simple algebraic operators and beyond.

In-Class Work: We will be walking through these jupyter notebooks using a remote server on Binder (no experience or software needed):

  • /Introductory/1_WelcomeToJupyter.ipynb
  • /Introductory/2_PythonBasics.ipynb
  • /Introductory/3_DataTypes.ipynb
  • /Introductory/4_Functions.ipynb
  • /Introductory/5_Conditionals&Loops.ipynb

Homework: Set up the software that you will use on your computer for the remainder of your research work.

Strongly Suggested:
    - Anaconda which includes:
        - Python
        - Jupyter
        - basic text editor
        - basic terminal console
        - etc.
    - PDF Reader (e.g. Mendeley)
    - Microsoft Office or similar (Word, Powerpoint, etc.)
    - Slack

Suggested:
    - Terminal Console (e.g. iTerm)
    - Text Editor (e.g. Atom, Vim, Emacs)

Optional:
- GIS software (QGis is best the open-source option)
- Vector-based graphics (Inkscape is an open-source option)
- Data storage (e.g. GoogleDrive Filestream, Dropbox)
- Version Control (e.g. Git)
- Matlab

Days 2 & 3 - Python Modules

Prerequisites: Have a local install of Anaconda so that we can move off the Binder server. Finish exercises from Day 1. It is not required that this be done as homework, but it should be done before proceeding below.

Goals: Ensure that each student has a local setup which works for them, then proceed to more advanced Python tools.

In-Class Work: Finish the Python Basics from Day 1 then continue to the intermediate jupyter notebooks listed below. The focus here is to learn about importing python libraries to leverage the sea of tools created by an open-source community.

  • /Intermediate/1_ImportingModules.ipynb
  • /Intermediate/2_DataVisualization.ipynb
  • /Intermediate/3_Time&Place.ipynb
  • /Intermediate/4_Interp&SigProc.ipynb
  • /Intermediate/5_BasicDataScience.ipynb

Homework: Obtain a dataset that is relevant to your research. This could be supplied by your faculty and/or graduate-student advisor, or you could find it somewhere on the internet (e.g. through the National Snow and Ice Data Center). You will use this dataset in future exercises, so make it something that you are interested in. Reach out to me if you are having trouble finding something relevant.

Days 3 & 4 - Scientific Applications

Prerequisites: Finish exercises from Day 1 and at least have some familiarity with everything from Day 2. It is not required that this be done as homework, but it should be done before proceeding below.

Goals: Apply the programming skills that we are developing to scientific problems.

In-Class Work: If any students have not completed the Python Basics from Day 1, they should focus on those before continuing. Completion of the intermediate jupyter notebooks is not necessary to continue, but they can be used as a reference at any time.

  • /Applied/1_KeelingCurve.ipynb
  • /Applied/2_IceSheetGeometry.ipynb
  • /Applied/3_BlackBodyRadiator.ipynb

Homework: Write your own jupyter notebook around the dataset that you obtained. Use the markdown to write notes and make sure to use comments in the code blocks!

About

Short course for climate-focused undergraduates new to programming.


Languages

Language:Jupyter Notebook 100.0%