Computational Thinking Workshops (Section A)

WORKSHOP 1: INTRODUCTION, TOOLS AND PYTHON FUN

525 Workshop Notes
Content introduction to workshop tools: Slack (communication), git (source control) and Github (collaborative code), Python (coding) and Jupyter Notebooks (computational narratives), introduction to computation in the geosciences
Expected
Outcomes
• installation of git
• creation of Github account
• creation of Slack account
• successful login to JupyterHub and “hello world” example
• understanding of basic tools for computational geosciences
Readings &
Supplements

OPTIONAL
› 2012. Downey, Allen; Think Python. → read/browse/skim ch.1
› (website) -- --; Slack Guides: Getting Started: https://get.slack.help/hc/en-us/categories/202622877-Slack-Guides. → Familiarize yourself with the Slack platform since we will be using it all summer.
› 2018. Morra, Gabriele; The Future. → This is an interesting paper about where computational tools are likely to go in the Geosciences, including the role Python may play in that future.
› (website) -- 2017; The Periodic Table of Data Science: https://www.datacamp.com/community/blog/data-science-periodic-table. → While broad in scope, this table is well worth becoming familiar with if you are interested it the multitude of data science tools available to use in your work.
› (podcast.__init__: The Podcast About Python and the People Who Make It Great podcast) -- 2017; MetPy: Taming The Weather With Python - Episode 100: https://www.podcastinit.com/episode-100-metpy-with-ryan-may-sean-arms-and-john-leeman/. → This is a wonderful ~50 minute podcast about MetPy, a Python-based meterology package written and maintained right here at UCAR in Unidata.
› (video) -- 2013 Setup: GitHub and Git Foundations: https://www.youtube.com/watch?v=7Inc0G0wutk&list=PL0lo9MOBetEHhfG9vJzVCTiDYcbhAiEqL&index=11. → This is an introduction to setting up git and the basics of GitHub.
› (video) -- 2016 Jupyter Notebook Tutorial: Introduction, Setup, and Walkthrough: https://www.youtube.com/watch?v=HW29067qVWk. → This is a nice introductory video to Jupyter Notebooks.
› (video) -- 2013 Webcast: The Basics of Git and GitHub Pt. 1 / July 2013: https://www.youtube.com/watch?v=U8GBXvdmHT4&t=0s&index=3&list=PL0lo9MOBetEGqyl2a4vyApFQi6t8PFCvQ. → This is a nice webcast recording (1 of 2) of more introductory git and GitHub concepts.
› (video) -- 2013 Webcast: The Basics of Git and GitHub Pt. 2 / July 2013: https://www.youtube.com/watch?v=U8GBXvdmHT4&t=0s&index=4&list=PL0lo9MOBetEGqyl2a4vyApFQi6t8PFCvQ. → This is a continuation of the introductory webcast recording (1 of 2) for git and GitHub concepts.
Optional Homework

WORKSHOP 2: COMPUTATIONAL AND ALGORITHMIC THINKING

61 Workshop Notes
Content hands on introduction to computational thinking; strategies for solving problems with algorithms
Expected
Outcomes
• understand algorithmic and computational thinking for problem solving
• develop strategies for breaking problems down
• develop hands on solutions to problems using pseudocode
Readings &
Supplements

OPTIONAL
› 2012. Downey, Allen; Think Python. → read/browse/skim ch.3-ch.5
Optional Homework

WORKSHOP 3: FROM PSUEDOCODE TO PYTHON

68 Workshop Notes
Content hands on introduction to Python; functions, programming loops, setting variables and reading various basic files (text files)
Expected
Outcomes
• understand and apply basic Python looping
• understand Python variables and how to use them
• opening, reading and writing text files in Python
Readings &
Supplements

OPTIONAL
› 2012. Downey, Allen; Think Python. → read/browse/skim ch.2, ch.3, ch.7, ch.8, ch.14
Optional Homework

WORKSHOP 4: MORE PYTHON, JUPYTER AND NEXT STEPS

615 Workshop Notes
Content hands on introduction to data types and representation of data; documenting and explaining your program/notebook to others with Github; developing a strategy for your computational narrative; where to go for more
Expected
Outcomes
• understand and apply Python lists, strings and tuples
• understanding and developing a plan for your Jupyter Notebook
Readings &
Supplements

OPTIONAL
› 2012. Downey, Allen; Think Python. → read/browse/skim ch.10-ch.12
Optional Homework

RESOURCES

  1. 2012. Downey, Allen; Think Python.
  2. (website) -- --; Slack Guides: Getting Started: https://get.slack.help/hc/en-us/categories/202622877-Slack-Guides.
  3. 2016. Morra, G and Yuen, DA and Lee, SM; [A Pythonic Approach for Computational Geosciences and Geo-Data Processing]().
  4. 2018. Morra, Gabriele; The Future.
  5. (website) -- 2017; The Periodic Table of Data Science: https://www.datacamp.com/community/blog/data-science-periodic-table.
  6. (podcast.__init__: The Podcast About Python and the People Who Make It Great podcast) -- 2017; MetPy: Taming The Weather With Python - Episode 100: https://www.podcastinit.com/episode-100-metpy-with-ryan-may-sean-arms-and-john-leeman/.
  7. (video) -- 2013 Setup: GitHub and Git Foundations: https://www.youtube.com/watch?v=7Inc0G0wutk&list=PL0lo9MOBetEHhfG9vJzVCTiDYcbhAiEqL&index=11.
  8. (video) -- 2016 Jupyter Notebook Tutorial: Introduction, Setup, and Walkthrough: https://www.youtube.com/watch?v=HW29067qVWk.
  9. (video) -- 2013 Webcast: The Basics of Git and GitHub Pt. 1 / July 2013: https://www.youtube.com/watch?v=U8GBXvdmHT4&t=0s&index=3&list=PL0lo9MOBetEGqyl2a4vyApFQi6t8PFCvQ.
  10. (video) -- 2013 Webcast: The Basics of Git and GitHub Pt. 2 / July 2013: https://www.youtube.com/watch?v=U8GBXvdmHT4&t=0s&index=4&list=PL0lo9MOBetEGqyl2a4vyApFQi6t8PFCvQ.