AGU LEARNING
Python Workshops
Improve your coding skills!
NEXT INFORMATION SESSION—22 MAY 2023
Register
Course Options
Learn More
Workshop Schedules
See Calendar
In partnership with Don't Use This Code
Learn More

Take Your Coding to the Next Level

Build your scientific computing skills with these 4-week Python courses. AGU is offering these courses in partnership with Don’t Use This Code, a professional training, coaching, and consulting company deeply invested in open source technologies, centered around the PyData stack for scientific and numeric computing. Don't Use This Code is dedicated to bringing better processes and a better understanding of these powerful tools, and pride themselves on delivering top-notch training uniquely valuable to each individual attendee.

Python Course Options

Automating Research Processes Through Scripting: Fluent use of Python (Intermediate)

This 4-week course is designed for researchers seeking to better organize and automate their research workflow through scripting. It covers the use of Python to simplify the research process so that researchers can focus on the nature of their work instead of the code that supports it. In this course, attendees will develop greater fluency with Python features, increase their confidence when writing larger programs and improve their ability to rapidly iterate, with opportunities for hands-on, personalized work. The course includes weekly live and recorded seminars, hands-on lab activities, and office hours in a small working cohort. Participants will be able to personalize sessions during hands-on lab work and office hours.

Read Course Description below for technical and knowledge requirements.

Data Analysis, Manipulation & Visualization for Research: Fluent use of Numpy, pandas, & Matplotlib (Intermediate)

This 4-week course is designed for researchers whose work involves data managing, data cleaning, data analysis, and data visualization. This course focuses on best practices for these tasks leveraging tools like NumPy, pandas, and Matplotlib. The course includes weekly live and recorded seminars, hands-on lab activities, and office hours in a small working cohort. Participants will be able to personalize sessions with hands-on lab work and office hours.

Read course description below for technical and knowledge requirements.

Schedules & Registration

Register for courses or one of 4 information sessions now through May 2023

Cost: $1899 USD

Workshops are limited to 15 persons per cohort. To find out about group pricing or future scholarship opportunities, contact us here.

Automating Research Processes Through Scripting: Fluent use of Python (for Intermediate Users)


Cohort A: Tues, Thurs, Fri


  • Information Session: 29 March 2023, 9:00-9:45 AM ET
  • Onboarding Session: 4 April 2023, 9:00-10:30 AM ET
  • Seminars: Tuesdays beginning 11 April 2023, 9:00-10:30 ET
  • Labs: Thursdays beginning 13 April 2023, 9:00-10:30 ET
  • Office Hours: Fridays beginning 14 April 2023, 9:00-9:30 ET
Register for Information Session
Register for Course

Cohort B: Mon, Wed, Friday

  • Information Session: 17 April 2023, 11:00-11:45 AM ET
  • Onboarding Session: 24 April 2023, 11:00 AM-12:30 PM ET
  • Seminars: Mondays beginning 1 May 2023, 11:00-12:30 ET
  • Labs: Wednesdays beginning 3 May 2023, 11:00-12:30 ET
  • Office Hours: Fridays beginning 5 May 2023, 11:00-11:30 ET

  • Register for Information Session
    Register for Course

    Data Analysis, Manipulation & Visualization for Research: Fluent use of Numpy, pandas, & Matplotlib (for Intermediate Users)


    Cohort A: Tues, Thurs, Fri

    • Information Session: 24 April 2023, 9:00-9:45 AM ET
    • Onboarding Session: 3 May 2023, 9-9:45 AM ET
    • Seminars: Tuesdays beginning 9 May 2023, 9:00-10:30 AM ET
    • Labs: Thursdays beginning 11 May 2023, 9:00-10:30 AM ET
    • Office Hours: Fridays beginning 12 May 2023, 9:00-9:30 AM ET
    Register for Information Session
    Register for Course

    Cohort B: Mon, Wed, Friday 2:00-3:30 ET

    • Information Session: 22 May 2023, 12 PM ET
    • Ramp-up: 31 May 2023, 9:00-10:30 AM ET
    • Seminars: Mondays, 9:00-10:30 AM ET, June 5, 12, 19, 26
    • Labs: Wednesdays, 9:00-10:30 AM ET, June 7, 14, 21, 28
    • Office Hours: Flexible, tentatively scheduled for Fridays,
      9:00-10:30 AM ET, June 9, 16, 23, 30
    Register for Information Session
    Register for Course


    Python Course Descriptions

    Requirements for Intermediate Level Courses

    Technical requirements:

    • A computer with stable internet access
    • The ability to install software 
    • A computer microphone 
    • (Optional) A webcam

    Knowledge requirements:

    • Some prior knowledge of/experience with Python
    • Practical knowledge of built-in Python data structures
    • Understanding of control flow, functions, and data structures
    • Some experience with the Command Line (or terminal) application

    Course 1: Automating Research Processes Through Scripting:
    Fluent use of Python (for Intermediate Users)

    This 4-week course is designed for researchers seeking to better organize and automate their research workflow through scripting. It covers the use of Python to simplify the research process so that researchers can focus on the nature of their work instead of the code that supports it. In this course, attendees will develop greater fluency with Python features, increase their confidence when writing larger programs and improve their ability to rapidly iterate, with opportunities for hands-on, personalized work. The course includes weekly live and recorded seminars, hands-on lab activities, and office hours in a small working cohort. Participants will be able to personalize sessions during hands-on lab work and office hours.

    Why should I enroll?

    • Currently I manage or operate complex research workflows that involve numerous potentially error-prone manual tasks. To improve my research velocity and reduce the risk of errors, I need to automate these through simple scripting. I have used some Python in the past, but I am not comfortable with structuring large scripts and am not familiar with concepts that could improve the maintainability, readability, and flexibility of my code. I also program in a time-constrained fashion, and would like to be able to iterate more effectively.
    • As a result I am not confident that my code is taking the most direct and effective path to solving a problem. I worry that I may be “reinventing” features or functionality that already exist or can solve my problems better.
    • In this course, I would like to discuss the core motivations, metaphors, and “mental models” behind Python to create robust research workflows that enable me to easily reproduce my own results and tune as needed.
    • I need to be able to simultaneously manage multiple research projects at various stages of completeness without becoming confused by the technical complexity of these tasks.
    • By the end of this course I would like a stronger understanding of how Python can enable my research workflow as well as the ability to implement these concepts and features into my code. Importantly, I would like to develop an intuitive feeling for when I should use some of the advanced features that Python has to offer and how I can apply a conceptual understanding of Python to learning new research-related tools.
    • Within 3 months I would like to be able to confidently write Python code that will automate my research tasks. I would like to know when to use advanced Python features to solve a problem, and fully understand the consequences of employing these features in my research code.

    In just 4 weeks, this course will teach you to confidently deploy advanced Python features in your code to navigate the increasing demand for technical sophistication in scientific computing, data analysis, and automation work. The skills you’ll build in this course will help you deliver greater automation and work with larger data sets in complex research environments.

    REGISTER NOW

    Course 2: Data Analysis, Manipulation and Visualization for Researchers:
    Fluent use of Numpy, pandas, and Matplotlib (for Intermediate Users)

    This 4-week course is designed for researchers whose work involves data managing, data cleaning, data analysis, and data visualization. This course focuses on best practices for these tasks leveraging tools like NumPy, pandas, and Matplotlib. The course includes weekly live and recorded seminars, hands-on lab activities, and office hours in a small working cohort. Participants will be able to personalize sessions with hands-on lab work and office hours.

    Why should I enroll?

    • Currently my work involves analyzing, manipulating and visualizing research data. I often visually explore my data, clean datasets, conduct statistical tests, and community results using tools such as NumPy, pandas, and Matplotlib. I often struggle with using these tools effectively, and I often have to reach for Google or StackOverflow for guidance.
    • As a result, even where analyses may be straightforward, I struggle with the bizarre and baroque error messages, and I find myself constantly “fiddling” with my code to get it to work.
    • In this course, I would like to discuss the core “mental models” that will let me use these tools effectively, efficiently, and fluently. I would like to understand how to approach these APIs structurally and methodically, and I would like to discuss how to approach mastery in a way that does not involve memorizing a bunch of disconnected details.
    • In this course, I also want to develop a strong intuition behind the core use-cases and design of these tools, so that I can immediately identify which tools are appropriate for any given use-case. I want to develop a precise understanding of the limitations of each tool and see how to integrate them fluently in my work.
    • By the end of this course I would like a firm understanding of core “mental models,” and I would like to have developed a better understanding of how to get these tools to do what I want, without feeling like I am constantly “fiddling” with or “fighting” the tool.
    • Within 3 months I would like my understanding to be sufficiently thorough and built upon a sufficiently strong foundation that I am able to spend the majority of my time without needing to reach for StackOverflow or Google. In cases where I need the API reference documentation, I would like to be reliant on it only for superficial details (e.g., the names of keyword arguments), and I would like to be able to immediately and directly find what I’m looking for. In general, I would like to have a stronger feeling of “control” around my use of these tools, and to no longer feel that I am ever “fiddling” or “fighting” with my code.

    In just 4 weeks, this course will help you build fluency with NumPy, pandas, and Matplotlib to navigate the increasing demand for technical sophistication in scientific computing, data analysis, and automation work. The skills you’ll build in this course will help you deliver greater automation and work with larger data sets in complex research environments.

    REGISTER NOW

    CODING SKILLS ARE CRITICAL FOR SCIENTISTS

    Why are coding skills a critical capability for scientific researchers?

    With modern day research questions, analyses, and data sets increasing in their complexity, academic researchers need to be more organized than ever before. This organization is more than simply tracking references—it involves cleaning and interacting with data persisted in a variety of formats, storing results of boundless analyses, comparing output across numerous simulations, and much more. On top of all the complexity behind modern experiment design, data, and analysis, the academic research community is experiencing a strong movement in favor of more transparent open science practices to better share analyses and results.

    Why should you improve your coding skills?

    How can researchers be expected to track this complexity while also ensuring their work is reproducible and transparent? Coding. Writing code is a simple way to navigate, clean, analyze, and present your experiments while also transparently documenting each of the steps from start to publication. Additionally, coding provides access to broad software tools that can help you further organize your data, perform intensive statistical analyses, and create stunning visualizations to convey your findings to others. By learning how to code, you can become a more effective researcher who is able to ask more complex questions and rapidly produce results.

    Why are coding skills a key skill for folks going into industry?

    In addition to academic research, programming skills are one of the most sought-after skills in industry work. Nearly all research-oriented fields are seeing declines in students, post-docs, and investigators remaining in academic research. Instead, they are migrating towards industry research, data analytics, user interface/user experience research, etc. Most of these roles are heavily oriented around programming and additionally require significant domain expertise, effective written communication, as well as critical thinking skills—making the industry transition a perfect fit for a researcher who is comfortable coding.

    Why is this training the best opportunity for you to improve your coding skills?

    This training opportunity will help you fully understand the fundamental concepts of programming—not just its mechanics or a few api commands. with a conceptual framework in place, we equip our attendees with the ability to continue rapidly learning even after our sessions together end. in addition to developing critical thinking around code, we aim to impart relevant software development practices targeted towards academic researchers. when should you write a function? when do you need to write tests? these are some of the questions we aim to answer, providing you with concrete guidance on how you can structure your code to become more effective in your role.