Plotting and Programming in Python Workshops

Dr. David Delene has conducted a series of Plotting and Programming in Python workshops. The workshop introduces learners python, creating plots, using Jupyter Lab and strategies for getting help. The workshops shops have been attend by a wide range of people, from Freshmen undergraduate students, to Senior faculty members. The workshop is presented in the Software Carpentry learning style using live coding examples. The workshop material takes 12 hour to cover and has been presented in different formats. Below are details about upcoming and previous workshop, including  recordings of the different sessions.


Fall 2024 Workshop:  Two Days (Monday August 19 and Tuesday August 20, 2024) -  9-12 a.m and 1-4  p.m. in the Osborne Weather Center, 2nd Floor of Odegard Hall.  Can also join remotely via Zoom 365-040-0756 Meeting ID.

Links

Create GitHub Account
Unidata Jupyter Hub
Programming Guide (odt, pdf)
Workshop Assessment
Calgary Hail Analysis - VIL_Plot.py - Ex
CoPAS Repository
ADPAA Repository


Overview
The Plotting and Programming in Python workshop covers data analysis and visualization in using the Python programming language. The focus is on working with core data structures (including tabular data), using conditionals and loops, writing custom functions, and creating customized plots. The workshop also introduces learners to Jupyter Lab and strategies for getting help. The workshop is appropriate for learners with no previous programming experience.  The workshop is presented in the Software Carpentry learning style using lots of live coding examples. While the workshop is designed for people new to python programming, everyone is welcome to take part no matter their programming experience level. Start of the Fall Semester is a good time to learn python programming. Spread the word to anyone that may be interested about the workshop on "Plotting and Programming in Python".  The workshop will cover similar topics as previous workshop listed below. Prerequisite is understanding files and directories.

Participants
The intended audience are people starting to using programming to analyze data for conducting research projects, such as new graduate student. However, anyone student, staff, or faculty interested in learning how to analyze data effectively should attend.

Setup
Learners need to understand files and directories.
The workshop uses a Jupyterhub Server so people can use web browser on their own laptops or use one of the computer in the Osborne Weather Center. We will use a Unidata Jupyter Hub Server, which will require users have a GitHub account to obtain access. If you do not have a GitHub account, please create on an account. Please email David Delene your GitHub username to obtain access to the site.  I have already added Airborne Data Processing and Analysis (ADPAA) developers to the Jupyter Hub site. Once you have been added to the Jupyter Hub site, test login to the site.  Each user who logs into the Hub has their own workspace. It is not shared or visible to other users. Once you have logged into the Hub, you will be able to find the Jupyter Lab interface. Under the Notebook Section, select (double click on) on of the Python icons to start a session. See Jupyter Hub Running and Quitting for details and how to write/execute a program.

Location
Workshop will be held in the Osborne Weather Center, which is located on the 2nd Floor of Odegard Hall. Please plan to attend in person; however, the workshop is available remotely via Zoom using 365-040-0756 Meeting ID. While the Osborne Weather Center has computers available, feel free to bring and use your own laptop. All that is required is a web browser to access the Jupyter Hub site.

Reservation
If interested in taking part in the workshop, please email David Delene (delene@aero.und.edu) to be put on the workshop email list to receive updates about preparation.

Schedule (ipynb are the Jupyter Notebook Files)
Monday August 19, 9-12 a.m. [Video, Transcript, Chat]
  Introductions:  Name, Title, Department, Programming Experience
    David Delene, Research Professor, Atmospheric Sciences
       Paper -
Airborne Data Processing and Analysis Software Package (44 Citations)
       Gateway - Airborne Data Processing and Analysis (ADPAA) Software Gateway
       Project -
SourceForge (ADPAA, ADTAE), GitHub (CoPAS, SAMAC)
       Coding - +250,000 lines, +12 Languages
  

  Running and Quitting (ipynb); Variables and Assignments (ipynb); and Data Types and Type Conversion (ipynb)

Monday August 19, 1-4 p.m. [Video, Transcript, Chat]
   Built-in Functions and Help (ipynb); Libraries (ipynb); Reading Data and Data Frames (ipynb)

Tuesday August 20, 9-12 a.m.
[Video, Transcript, Chat]
   Panadas Data Frames
(ipynb); Plotting (ipynb); Looping Over Data Sets (ipynb)

Tuesday August 20, 1-4 p.m.
[Video, Audio, Chat]
   Lists (ipynb), For Loops (ipynb), Conditionals (ipynb)


August 2023 Workshop:  Monday August 14 and Tuesday August 15 -  9-12 a.m and 1-4  p.m. in the Osborne Weather Center, 2nd Floor of Odegard Hall.  Can also join remotely via Zoom 365-040-0756 Meeting ID.

Links
Create GitHub Account
Unidata Jupyter Hub - Student Access to Jupyter Lab
Calgary Hail Analysis - VIL_Plot.py - Example Program

Overview

Start of the Fall Semester is a good time to learn python programming. Spread the word to anyone that may be interested about the workshop on "Plotting and Programming in Python".  The workshop will be cover similar topics as previous workshop listed below. Prerequisite is understanding files and directories. If interested in taking part in the workshop, please email David Delene (delene@aero.und.edu) to be put on the class list to receive emails about preparations in the workshop.

Setup
Learners need to understand files and directories.
The workshop uses a Jupyterhub Server setup by Unidata Science Gateway via a request to their Google Docs form. To be added to the Jupyter Lab system, you'll need a GitHub account username, which need to be emailed to David Delene at delene@aero.und.edu. Please verify that you can access Unidata Jupytter Hub and run a program before the workshop.

Location
Workshop will be held in the Osborne Weather Center, which is located on the 2nd Floor of Odegard Hall. Please plan to attend in person; however, the workshop is available remotely via Zoom using 365-040-0756 Meeting ID.

Schedule
Monday August 14, 9-12 a.m.
   *
Running and Quitting; Variables and Assignments; and Data Types and Type Conversion
Monday August  14, 1-4 p.m.
  *
Built-in Functions and Help; Libraries
 Tuesday August 15, 9-12 a.m.
   *
Reading Tabular Data, Panadas Data Frames, and Plotting
Tuesday August 15, 1-4 p.m.
   *
Lists, For Loops, Conditionals
 
Fall 2021 Workshop:  Sundays (starting September 19) 1-4 p.m. in Clifford Hall 422 and via Zoom Meeting ID 365-040-0756), Continues for four weekly sessions.

Links
Unidata Jupyter Hub - Student Access to Jupyter Lab
Blackboard Site - Additional information
Calgary Hail Analysis - VIL_Plot.py - Example Program

Overview

Start of Graduate School is a good time to learn python programming. Spread the word to anyone that may be interested about the workshop on "Plotting and Programming in Python".  The workshop will be cover similar topics as previous workshop listed below. If interested, please create, if necessary, and email me (delene@aero.und.edu) your GitHub username so we can provide access to the Unidata Jupyter Hub which you'll need for the workshop.

Prerequisites
Learners need to understand files and directories. A web browser is required to access the
Unidata Jupyter Hub  run Jupyter Lab, which is a development environment for python3.  To be added to the Jupyter Lab system, you'll need a GitHub account username, which need to be emailed to David Delene at delene@aero.und.edu. Please verify that you can access Unidata Jupyter Hub and run a program before the workshop.

Schedule
September 19 (Sunday 1-4 pm CST) - Running and Quitting; Variables and Assignments; and Data Types and Type Conversion
(Recording, Audio Only, Jupyter Notebook)
September 26 (Sunday) - No Workshop, Study for Dynamics Test
October 3 (Sunday 1-4 pm CST) - Built-in Functions and Help; Libraries (Recording, Audio Only, Jupyter Notebook)
October 10 (Sunday 1-4 pm CST) - Reading Tabular Data, Panadas Data Frames, and Plotting (Recording, Audio Only, Jupyter Notebook)
October 17 (Sunday 1-4 pm CST) - Lists, For Loops, Conditionals (Recording, Audio Only, Jupyter Notebook)

Fall 2020 Workshop: Tuesday/Thursdays (starting September 29) 6-7 pm Central Via Zoom Meeting ID 365-040-0756), Continue until mid-November.

Overview
Start of Graduate School is a good time to learn python programming. Spread the word to anyone that may be interested about the workshop on "Plotting and Programming in Python".  The workshop will be cover similar topics as previous workshop listed below. If interested, please create, if necessary, and email me (delene@aero.und.edu) your GitHub username so we can provide access to the  Unidata Jupyter Hub which you'll need for the workshop.

Prerequisites
Learners need to understand files and directories, and how to use Zoom. A web browser is required to access the Unidata Jupyter Hub to run Jupyter Lab, which is a development environment for python3.  To be added to the Jupyter Lab system, you'll need a GitHub account username, which need to be emailed to David Delene at delene@aero.und.edu. Please verify that you can access Unidata Jupyter Hub and run a program before the workshop.

Schedule
September 29 (Tuesday 6-7 pm CST) - Running and Quitting; Variables and Assignments (Recording, Audio Only, Jupyter Notebook)
October 1 (Thursday 6-7 pm CST) - Data Types and Type Conversion (Recording, Audio Only, Jupyter Notebook)
October 6 (Tuesday 6-7 pm CST) - Built-in Functions and Help (Recording, Audio Only, Jupyter Notebook)
October 8 (Thursday 6-7 pm CST) - Libraries (Recording, Audio Only, Jupyter Notebook)
October 13 (Tuesday 6-7 pm CST) -  Reading Tabular Data (Recording, Audio Only, Jupyter Notebook)
October 15 (Thursday 6-7 pm CST) -  Pandas Data Frames (Recording, Audio Only, Jupyter Notebook)
October 20 (Tuesday 6-7 pm CST) - Plotting (Recording, Audio Only, Jupyter Notebook)
October 22  (Thursday 6-7 pm CST) - Lists (Recording, Audio Only, Jupyter Notebook)
October 22  (Tuesday 6-7 pm CST) - For Loops (Recording, Audio Only, Jupyter Notebook)
October 29  (Thursday 6-7 pm CST) - Conditionals (Recording, Audio Only, Jupyter Notebook)
November 3 (Tuesday 6-7 pm CST) - Looping Over Data Sets (Recording, Audio Only, Jupyter Notebook)
November 5 (Thursday 6-7 pm CST) - Writing Functions (No Recording, see November 10)
November 10  (Tuesday 6-6:30 pm CST) - Writing Functions (Recording, Audio Only, Jupyter Notebook)
November 10  (Tuesday 6-6:30 pm CST) - Variable Scope (Recording, Audio Only, Jupyter Notebook)
November 12 (Thursday 6-7 pm CST)  - Programming Styles (Recording, Audio Only, Jupyter Notebook)

Spring 2020: Monday May 18, 2020 Workshop (Zoom ID 949 2750 5482)
Overview
After completion of the spring semester and at the start of summer research is a good time to learn python programming. Please let anyone that may be interested know about workshop we'll be having on "Plotting and Programming in Python" via Zoom. If interested in a one day "Plotting and Programming in Python" workshop please email me (delene@aero.und.edu) your GitHub username so you will have access to the Unidata Jupyter Hub, which will be used in the class. The workshop will take place 9 a.m. to 5 p.m. CST on Monday, May 18, 2020. For people interested in seeing how live coding works via the Jupyter Hub, free feel to join just the early morning session (9-10:30).

Prerequisites
Learners need to understand files and directories and how to use Zoom.
A web browser is required to access the Unidata Jupyter Hub to run Jupyter Lab, which is a development environment for python3.  Please verify that you can access Unidata Jupyter Hub and run a program before the workshop.

Agenda
Time 
Topic
Learning Objective (See Link to Recordings and Note Books Afters Sessions)
09:00 
Running and Quitting How can I run Python programs?
09:10
Introduction
Breakout Session I - Introductions and Checkout on Coding
09:30 Variables and Assignment How can I store data in programs?
09:50 Data Types and Conversion  What kinds of data do programs store and how to convert?
10:10 Built-in Functions and Help  How can I use built-in functions, find out what they do, and what kind of errors can occur?
10:30 Morning Coffee Break (Recording, Audio Only, Jupyter Notebook)
10:45 Libraries How can I use software written by other people and find out what that software does?
11:15 Reading Tabular Data How can I read tabular data into Data Frames?
11:45 Pandas Data Frames How can I do statistical analysis of tabular data?
12:30 Lunch Break (Recording, Audio Only, Jupyter Notebook)
13:00
Morning Review
Breakout Session II - What did we learn this morning?
13:10
Plotting How can I plot my data and save my plot for publishing?
13:50 Lists How can I store multiple values?
14:20 For Loops How can I make a program do many things?
15:00
Afternoon Coffee Break (Recording, Audio Only, Jupyter Notebook)
15:15
Conditionals
How can programs do different things for different data?
15:45 Looping Over Data Sets  How can I process many data sets with a single command?
16:00 Writing Functions How can I create my own functions?
16:15 Variable Scope How do function calls work and how to determine where errors occurred?
16:30 Programming Style  How can I make my programs more readable by formatting code in correct style?
16:45 Wrap-Up What have we learned, what is left, and where do I find more?
16:50 Feedback How did the class go? Please complete the survey.
16:55
Assignment
Try out your new skills, Create Hail Plot Assignment
17:00 Finish Done (Recording, Audio Only, Jupyter Notebook)


April/May 2020 Workshop

Prerequisites
Learners need to understand what files and directories are, what a working directory is, and how to start a Python interpreter.
Learners need access to python via Jupyter Lab, which should not be too difficult to install using online instructions.
Learners must get the gapminder data file before class starts (Download python-novice-gapminder-data.zip) and unzip the file in the directory where Jupyter Lab is opened.

Access
Zoom ID - 391 208 377, Password is the Tail Number of the North Dakota Citation Research Aircraft

Schedule

April 09 (6-7 pm CST) - Running and Quitting (Jupyter Notebook)
April 15 (6-7 pm CST) - Variables and Assignments (Jupyter Notebook, Exercises)
April 17 (6-7 pm CST) - Data Types and Type Conversion (Recording, Audio Only, Jupyter Notebook)
April 20 (6-7 pm CST) - Built-in Functions and Help (Recording, Audio Only, Jupyter Notebook)
April 22 (6-7 pm CST) - Libraries (Recording, Audio Only, Jupyter Notebook)
April 24 (6-7 pm CST) - Reading Tabular Data into Data Frames (Recording, Audio Only, Jupyter Notebook)
April 27 (6-7 pm CST) - Pandas Data Frames (Recording, Audio Only, Jupyter Notebook)
April 29 (6-7 pm CST) - Plotting (Recording, Audio Only, Jupyter Notebook)
May 01  (6-7 pm CST) - Lists (Recording, Audio Only, Jupyter Notebook)
May 04  (6-7 pm CST) - For Loops (Recording, Audio Only, Jupyter Notebook)
May 06  (6-7 pm CST) - Looping Over Data Sets (Recording, Audio Only, Jupyter Notebook)
May 08  (6-7 pm CST) - Writing Functions (Recording, Audio Only, Jupyter Notebook)
May 11  (6-7 pm CST) - Conditionals (Recording, Audio Only, Jupyter Notebook)
May 13  (6-7 pm CST) - Variable Scope and Programming Styles (Recording, Audio Only, Jupyter Notebook)