Python Courses

ASTG provides Python related courses to enable NASA scientists and engineers to gather and manipulate their data better and faster. A variety of courses are given in the Fall and Spring, as well as summer bootcamps for incoming NASA interns. Some introductory self-guided exercises or beginner courses are also provided below to help prepare you for the courses.

Python Courses

NASA Intern Bootcamps

Summer 2024

Background

Background Information

Python is a free, a general-purpose, and portable programming language. It is easy to use with its simple syntax and readability, which makes the code easy to understand and maintain (see the Berkeley blog). Python can be extended via libraries that can be used to tackle problems in machine learning, data analysis, and beyond. It has a vast ecosystem and a dynamic user’s community that make Python accessible to everyone.

The focus of this course series will be on Data Science. According to Wikipedia, Data Science is a “concept to unify statistics, data analysis, machine learning and their related methods” in order to “understand and analyze actual phenomena with large volumes of data”. It uses techniques and theories drawn from many fields within the context of mathematics, statistics, computer science, and information science. It aims to find unseen patterns, derive meaningful information, and make decisions based on the data.

Because of its features, Python is one of the preferred programming languages that data scientists can use to explore and analyze their datasets. The growth of Python in Data Science has gone hand in hand with that of its Pandas library, which opened the use of Python for data analysis to a broader audience by enabling it to deal with row-and-column datasets, import CSV files, and much more.

This course seriesintroduces the fundamental concepts of the Python programming language. In addition, it presents Python packages (NumPy, Matplotlib, and Pandas) used for data manipulation and visualization. The basics of Python combined with the Data Science topics, provide the necessary foundations for Exploratory Data Analysis and Machine Learning.


Objectives

Course Series Objectives

This course series is divided in two sessions:

  • Introductions to Python: Meant for interns who are familiar with basic computer programming, but are new in Python.
  • Python for Data Science: Meant for interns who have Python knowledge and plan to work on a project involving Data Science.

In the Introduction to Python, you will learn:

  • Python basic syntax, variables, and types
  • Conditional statements and loops
  • Data structures: list, tuple, dictionary, set
  • Functions and modules
  • The datetime module
  • I/O with text files
  • Scripting and packaging

At the end of the Introduction to Python sessions, learners will be able to write a basic Python application using functions and modules.

In the Python for Data Science, the following will be covered:

  • NumPy arrays
  • Basic visualization with Matplotlib
  • Data manipulation (reading data file, performing statistical analysis, visualization, handling time series data) with Pandas

Those with some knowledge of Python when they start the Python for Data Science session will be able to write their own Python scripts to read remote text files or tables, perform data wrangling, carry out basic data analytics and visualize data.


Which Session to Select?

If you have never been exposed to Python, you need to take this Introduction to Python course. In case you did some Python programming in the past and you want to assess your Python knowledge, take the following test (in less that 15 minutes and without using any help):

Make sure that you take this placement test (only once) by Thursday, June 6 before you are allowed to take any Python sessions. If you have any issue with the test, please contact Jules (Jules.Kouatchou@nasa.gov).

If you score at least 80% then only take the Scripting and Packaging topic. Otherwise, take all the classes in the Introduction to Python session.

The first course will be on Friday, June 7 and the remaining ones will take place on Mondays, Wednesdays and Fridays (from June 7 to June 28). All of them will be from 12:00 pm to 5:00 pm (US EDT).

Teaching Platforms

Cloud Platforms

To take any of the sessions, you are expected to:

The SMCE can be accessed through the user portal and will be granted on June 7. You will use your gmail credential to automatically access the system. The system will ask you to provide your gmail password or give you automatic access if you are already logged in into gmail (through your browser).

To have an account on the SMCE, we recommend that you provide (once) your name and gmail userid by filling out the this online form.

Obtaining the materials

After you have gained access to the SMCE platform, click on the Terminal icon on the right panel and issue the command:

   cp -r /tljh-data/astg_pymaterials .

You will have astg_pymaterials/ folder that contains all the materials (mainly Jupyter notebook files) you will need for this Python Bootcamp.

Sessions

Starting Point

All the classes will be provided using Jupyter notebooks. We will be explaining the features of Jupyter notebooks as we move along. In case you want to learn more, click on: Open In Colab.

Regardless of their level of proficiency in Python, all interns are expected to take the courses:

  • Introduction Version Control with Git.
  • Creating and Managing Git Repositories in GitHub.
Date Room Number Teams Invitation Lecture Topic Interactive Link
Friday, June 7 Bldg 34 W130 Teams Link Introduction to Version Control with Git Open In Colab
Monday, June 10 Bldg 34 W130 Teams Link Creating and Managing Git Repositories in GitHub Open In Colab

Introduction to Python
Date Room Number Teams Invitation Lecture Topic Interactive Link
Friday, June 14 Bldg 34 W305 Teams Link Running Python Open In Colab
Data Types Open In Colab
Conditional Statements Open In Colab
Loops Open In Colab
Monday, June 17 Bldg 34 W130 Teams Link Advanced Data Types Open In Colab
Functions Open In Colab
Modules Open In Colab
Friday, June 21 Bldg 34 W305 Teams Link datetime Module Open In Colab
I/O on Text Files Open In Colab
Monday, June 24 Bldg 34 W130 Teams Link Scripting and Packaging Open In Colab

To deepen your Python skills, you may consider doing the Beginner Python Exercises by Holy Python.


Data Science Tools

This section is more for interns who will have a Data Science related project.

Date Room Number Teams Invitation Lecture Topic Interactive Link
Wednesday, June 26 Bldg 34 W305 Teams Link Introduction to NumPy Open In Colab
Introduction to Data Visualization Open In Colab
Matplotlib Open In Colab
Friday, June 28 Bldg 34 W305 Teams Link Introduction to Pandas Open In Colab

Course Evaluation

Please take this course evaluation after you have completed your last session. This Evaluation is required.

Installing Packages

To take any of the above courses, you are not expected to install anything on your computer. However, if you have the required permissions and you want to use the materials on your local platform, you might consider installing the packages:

Additional Resources

Resources

For those who want to know more about the wealth of Python resources and discipline focused packages, explore the samples below.

General topics

Computing Tools

  • SciPy - Provide utility functions for optimization, statistics, image processing, signal processing, etc.

Astronomy

  • Astropy - Collection of software packages designed for use in astronomy.

Solar Physics

  • Sunpy - Python library for Solar Physics data analysis and visualization.
  • pysat - The Python Satellite Data Analysis Toolkit (pysat) simplifies the process of using new instruments, reduces data management overhead, and enables the creation of instrument independent analysis routines.
  • HelioPy - Set of tools for heliospheric and planetary physics.
  • PlasmaPy - Python package that provides common functionality required for plasma physics in a single, reliable codebase.
  • SpacePy - Python package for data analysis, modeling and visualization in space sciences.

Past Bootcamps

SUMMER 2023

Sessions

Starting Point

All the classes will be provided using Jupyter notebooks. We will be explaining the features of Jupyter notebooks as we move along. In case you want to learn more, click on: Open In Colab.

Regardless of their level of proficiency in Python, all interns are expected to take the courses:

  • Introduction Version Control with Git.
  • Creating and Managing Git Repositories in GitHub.
Date Teams Invitation Link Lecture Topic Interactive Link
Friday, June 23 LINK Introduction to Version Control with Git Open In Colab
Monday, June 26 LINK Creating and Managing Git Repositories in GitHub Open In Colab

Introduction to Python
Date Teams Invitation Link Lecture Topic Interactive Link
Wednesday, June 28 LINK Running Python Open In Colab
Data Types Open In Colab
Conditional Statements Open In Colab
Loops Open In Colab
Friday, June 30 LINK Advanced Data Types Open In Colab
Functions Open In Colab
Modules Open In Colab
Wednesday, July 5 LINK datetime Module Open In Colab
I/O on Text Files Open In Colab
Friday, July 7 LINK Scripting and Packaging Open In Colab

To deepen your Python skills, you may consider doing the Beginner Python Exercises by Holy Python.


Data Science Tools

This section is more for interns who will have a Data Science related project.

Date Teams Invitation Link Lecture Topic Interactive Link
Monday, July 10 LINK Introduction to NumPy Open In Colab
Introduction to Data Visualization Open In Colab
Matplotlib Open In Colab
Wednesday, July 12 LINK Introduction to Pandas Open In Colab

SUMMER 2022

Sessions

Starting Point

All the classes will be provided using Jupyter notebooks. We will be explaining the features of Jupyter notebooks as we move along. In case you want to learn more, click on: Open In Colab.

Regardless of their level of proficiency in Python, all interns are expected to take the class on Introduction to Git.

Date Teams Link Lecture Topic Interactive Link
Thursday, June 16 LINK Introduction to Git Open In Colab

Introduction to Python
Date Teams Link Lecture Topic Interactive Link
Wednesday, June 22 LINK Running Python Open In Colab
Data Types Open In Colab
Conditional Statements Open In Colab
Loops Open In Colab
Friday, June 24 LINK Advanced Data Types Open In Colab
Functions Open In Colab
Modules Open In Colab
Monday, June 27 LINK I/O on Text Files Open In Colab
Scripting and Packaging Open In Colab

To deepen your Python skills, you may consider doing the Beginner Python Exercises by Holy Python.


Data Science Tools

This section is more for interns who will have a Data Science related project.

Date Teams Link Lecture Topic Interactive Link
Wednesday, June 29 LINK Introduction to NumPy Open In Colab
Introduction to Data Visualization Open In Colab
Matplotlib Open In Colab
Friday, July 1 LINK Introduction to Pandas Open In Colab
Wednesday, July 6 LINK Web Scraping Open In Colab


Beginner

Description

This self-taught course is designed for participants who quickly want to learn the basic concepts of the Python language and be able to use Python related tools for their work. We cover the following topics: data types, conditional statements, loops, functions, modules, Datetime module, and basic IO with text file.

Prerequisites

Ability to program in another language (C, C++, Fortran, Java, Matlab, IDL, etc.). Participants are also expected to be able to navigate a web browser, to open a command prompt or terminal window and edit text files.

To take this course, you are expected to have a gmail account (needed for access to Google Colaboratory). Everything will be taught through the Google cloud based Jupyter notebook.

List of Topics

Topics
Topic Interactive Link
Running Python Open In Colab
Data Types Open In Colab
Conditional Statements Open In Colab
Loops Open In Colab
Advanced Data Types Open In Colab
Functions Open In Colab
Modules Open In Colab
datetime Module Open In Colab
I/O on Text Files Open In Colab

To deepen your Python skills, you may consider doing the Beginner Python Exercises by Holy Python.

At the end of this course, we recommend that you take the Python assessment test. It takes less that 15 minutes without any help. We hope that you will score at least 80%.

Fall

Fall 2023

Geospatial Analysis with Python

Geospatial data contains information describing objects, events, and other features with a location on or near the earth’s surface. It is a type of numeric data that defines the geographic location of objects, such as buildings, streets, towns, cities, counties, countries, or other physical objects, using a geographic coordinate system along with (if necessary) temporal information.

In this course series, we introduce a couple of Python tools to manipulate geospatial data. We want to learn how to represent geospatial features in Python, use them to perform spatial and spatio-temporal operations, and do visualizations. We not only want to determine the position of a geographical object, but also its lengths, size, area, shape, distance to another object, etc. using spatial data. Among other tasks, we will load shapefiles, conduct simple spatial analyses, track the movement of objects (like satellites or ISS) and map our spatial data.

We will cover the following Python tools:

  • Pandas: Manipulation and exploratory data analysis of tabular data.
  • Shapely: Manipulation and analysis of planar geometric objects.
  • Cartopy: Processing of geospatial data to produce map.
  • GeoPandas: Combine Pandas and Shapely to work with geospatial vector datasets.
  • MovingPandas: Handling the movement of geospatial objects.

Requirements

To take any of the courses, you are expected to be familiar with the Python programming language (data types, conditional statement, loops, function, modules, and scripting).

You are also expected to have a Google Mail (gmail) account that will be needed to access either Google Colab or the NASA Center for Climate Simulation (NCCS) Science Managed Cloud Environment (SMCE). In case the SMCE is used, we will ask you to provide (once) your gmail userid.

Introduction to Version Control with Git

Description

Git is a distributed version control system that is widely used for tracking changes in source code during software development. With a version control tool, you can make changes to your code with confidence (even reverting when needed), deploy different versions of your code, easily capture who made a change and when it happened, and communicate with your team on the modifications of the software. In this course, we will introduce fundamental version control concepts and demonstrate how Git, as a version control tool, can be employed to monitor alterations within your software application. You will gain proficiency in the essential procedures for creating and maintaining a Git repository.

  • Prerequisites: Basic command-line skills.
  • Date: Friday, September 8, 2023 (13:00 to 16:00 US EST)
  • Where: Virtual through Teams (you will receive and invitation prior to the class)
  • SATERN Course ID: 135237
  • SATERN Registration Link: GSFC-600-IVCG

Creating and Maintaining Git Repositories with Github

Description

Github is an online platform where Git users build software together. It also serves as a hosting provider and version control (with Git) platform that anyone can use to collaborate on open-source projects and share files. In this course, we will learn how to create a Git repository in Github and perform operations such as adding files, committing them, creating branches, forking, etc. We will also use a terminal to clone a repository on Github, do local changes and push them back to the remote repository on Github.

Each participant is expected to have a Github account. We recommend that each participant uses their own computer (with Git installed) and sets up their Github personal access tokens and SSH keys. We will provide access to a cloud-based platform as an alternative.

  • Prerequisites: Familiarity with basic Git commands
  • Date: Friday, September 15, 2023 (13:00 to 16:00 US EST)
  • Where: Virtual through Teams (you will receive and invitation prior to the class)
  • SATERN Course ID: 135358
  • SATERN Registration Link: GSFC-CMGRG

Introduction to Numpy

Description

NumPy (Numerical Python) is a library consisting of multidimensional array objects and a collection of routines for processing those arrays. It is meant to provide an array object that is at least an order of magnitude faster than traditional Python lists. Using NumPy, mathematical and logical operations on arrays can be efficiently performed. This course introduces the structure of Numpy arrays, show various ways to create them to facilitate numerical calculations. We will also present how to perform array slicing, in-place arithmetic, etc. and how to use built-in mathematical functions for faster computations.

  • Prerequisites: Familiarity with Python
  • Date: Tuesday, September 26, 2023 (13:00 to 16:00 US EST)
  • Where: Virtual through Teams (you will receive and invitation prior to the class)
  • SATERN Course ID: 135321
  • SATERN Registration Link: GSFC-600-ITNUMPY

Introduction to Pandas

Description

Pandas is an open-source, Python library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language. It is built on top of Numpy and is one of the most important Python tools for data analyses. In this course, we will introduce Pandas Series and DataFrames and show how to manipulate them. We will also show how to use Pandas to manipulate and visualize real datasets.

  • Prerequisites: Familiarity with Python, Numpy
  • Date: Tuesday, October 3, 2023 (13:00 to 16:00 US EST)
  • Where: Virtual through Teams (you will receive and invitation prior to the class)
  • SATERN Course ID: 135335
  • SATERN Registration Link: GSFC-600-ITP

Creating Geometry Objects with Shapely

Description

Shapely is a Python package used for the manipulation and analysis of planar geometric objects (such as points, lines, polygons, etc.). It is rooted in the conventions of the geographic information system (GIS) world and is used in packages such as Cartopy, GeoPandas and MovingPandas. With Shapely, we can create different geometric objects (points, curves and surfaces), visualize them, and perform operations (length, distance, centroid, merging, etc.) with them. In this class, we will first define the concept of spatial data and the learn how to create various geometric objects, manipulate, and visualize them. We will also use the well-known text (WTK) and the GeoJSON formulations to represent the geometry objects.

  • Prerequisites: Familiarity with Python, Matplotlib
  • Date: Tuesday, October 17, 2023 (13:00 to 16:00 US EST)
  • Where: Virtual through Teams (you will receive and invitation prior to the class)
  • SATERN Course ID: 135328
  • SATERN Registration Link: GSFC-CGOS

Plotting Geolocated Data with Cartopy

Description

Cartopy is a Python package to manipulate and visualize geospatial data. It relies on PROJ, NumPy and Shapely libraries, and includes an interface built on top of Matplotlib to create high quality maps. Cartopy supports several map projections, and can transform points, lines, vectors, polygons, and images between those projections. In this course, we will learn how to use different map projections and add features (rivers, lakes, boundaries, etc.) to plot geolocated data. We will also plot geometry objects and use shapefiles to create maps.

  • Prerequisites: Familiarity with Numpy, Matplotlib and Shapely
  • Date: Tuesday, October 24, 2023 (13:00 to 16:00 US EST)
  • Where: Virtual through Teams (you will receive and invitation prior to the class)
  • SATERN Course ID: 135354
  • SATERN Registration Link: GSFC-PGDC

Introduction to GeoPandas

Description

GeoPandas is a Python open-source library that extends the features of Pandas with the ability to read, analyze, and visualize geospatial data. It combines the capabilities of Pandas and Shapely, providing geospatial operations in Pandas and a high-level interface to multiple geometries to Shapely. In this course, we will introduce the basic data structure of GeoPandas (GeoSeries and GeoDataFrame), show simple examples on how to create such a data structures. We will then learn how to read various files (containing geospatial information) and create different types of maps.

  • Prerequisites: Familiarity with Numpy, Pandas and Shapely
  • Date: Tuesday, October 31, 2023 (13:00 to 16:00 US EST)
  • Where: Virtual through Teams (you will receive and invitation prior to the class)
  • SATERN Course ID: 135322
  • SATERN Registration Link: GSFC-600-GEOP

Introduction to MovingPandas

Description

MovingPandas is a Python library for movement data exploration and analysis using the spatial and temporal representations of the data. It handles the movement of data based on Pandas, GeoPandas and HoloViz GeoViews. It provides a trajectory data class and corresponding methods for tracking the movements of planar objects. With MovingPandas, we can produce static and interactive maps. In this class, we will first use an example that tracks the movement of a point object. The example will allow us to understand the concept of trajectory and its associated functions. We will then present additional examples on how we can manipulate the movement data (from the International Space Station, satellites, ships) and visualize it using static and interactive visualizations in Python.

  • Prerequisites: Familiarity with Pandas, GeoPandas and Datetime module
  • Date: Tuesday, November 7, 2023 (13:00 to 16:00 US EST)
  • Where: Virtual through Teams (you will receive and invitation prior to the class)
  • SATERN Course ID: 135330
  • SATERN Registration Link: GSFC-600-IMP



Past Fall Course Series

FALL 2022

We provide a set of classes focusing on Data Science and Machine Learning (ML) with Python. The courses will start with the foundational tools (such as Numpy and Pandas) and then end with the basic machine learning methods and Python modules (Scikit_learn and TensorFlow) for Machine Learning.

Introduction to Version Control with Git

Description

Version control allows you to manage and track any changes to your software code. With a version control tool, you can make changes to your code with confidence (even reverting when needed), deploy different versions of your code, easily capture who made a change and when it happened, and communicate with your team on the modifications of the software. In this course, we will introduce the basic concepts of version control and present how the Git version control tool can be sued to track the changes in your software application. We will learn the basic steps for creating and maintaining a Git repository.

  • Prerequisites: None
  • Date: Wednesday, September 14, 2022 (13:00 to 16:00 US EST)
  • Where: Virtual through Teams (you will receive and invitation prior to the class)
  • SATERN Course ID: 132964
  • SATERN Registration Link: GSFC-600-IVCG

Introduction to Numpy

Description

NumPy (Numerical Python) is a library consisting of multidimensional array objects and a collection of routines for processing those arrays. It is meant to provide an array object that is at least an order of magnitude faster than traditional Python lists. Using NumPy, mathematical and logical operations on arrays can be efficiently performed. This course introduces the structure of Numpy arrays, show various ways to create them to facilitate numerical calculations. We will also present how to perform array slicing, in-place arithmetic, etc. and how to use built-in mathematical functions for faster computations.

  • Prerequisites: Familiarity with Python
  • Date: Tuesday, September 20, 2022 (13:00 to 16:00 US EST)
  • Where: Virtual through Teams (you will receive and invitation prior to the class)
  • SATERN Course ID: 132955
  • SATERN Registration Link: GSFC-600-ITNUMPY

Introduction to Pandas

Description

Pandas is an open-source, Python library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language. It is built on top of Numpy and is one of the most important Python tools for data analyses. In this course, we will introduce Pandas Series and DataFrames and show how to manipulate them. We will also show how to use Pandas to manipulate and visualize real datasets.

  • Prerequisites: Familiarity with Python, Numpy
  • Date: Tuesday, September 27, 2022 (13:00 to 16:00 US EST)
  • Where: Virtual through Teams (you will receive and invitation prior to the class)
  • SATERN Course ID: 132957
  • SATERN Registration Link: GSFC-600-ITP

Scalable Computing with Dask

Description

Dask is a flexible parallel computing library that provides multi-core and distributed parallel execution on larger-than-memory datasets. It distributes data across multi cores and provides ways to scale Pandas, Scikit-Learn and Numpy workflows natively. We will introduce the basic concepts of Dask and learn it can be used to accelerate calculations with Numpy and Pandas objects through Dask dataframes. We will also show how to use the dynamic task scheduling.

  • Prerequisites: Numpy, Pandas
  • Date: Tuesday, October 4, 2022 (13:00 to 16:00 US EST)
  • Where: Virtual through Teams (you will receive and invitation prior to the class)
  • SATERN Course ID: 132951
  • SATERN Registration Link: GSFC-SCD

Manipulating Geolocated Data with Xarray

Description

Xarray is an open-source library providing high-level, easy-to-use data structures and analysis tools for working with multidimensional labeled datasets and arrays in Python. Xarray combines the convenience of labeled data structures inspired by Pandas with the multi-dimensional arrays of NumPy and parallel out-of-core computation from Dask to provide an intuitive, powerful and scalable platform for scientific analysis. Xarray introduces labels in the form of dimensions, coordinates and attributes on top of raw Numpy-like arrays. It is particularly tailored to working with netCDF files. In this course, we will cover the main concepts of Xarray and will learn how to read multidimensional data from scientific data formatted files, manipulate the data and perform visualizations.

  • Prerequisites: Numpy, Pandas
  • Date: Tuesday, October 11, 2022 (13:00 to 16:00 US EST)
  • Where: Virtual through Teams (you will receive and invitation prior to the class)
  • SATERN Course ID: 132953
  • SATERN Registration Link: GSFC-600-MGX

Exploratory Data Analysis with Seaborn

Description

Exploratory Data Analysis (EDA) is the process of preparing your data for modeling. EDA aims to find trends in the data and to answer initial questions. In this presentation, we will define the main principles of EDA and apply those principles to find insights in a dataset. We will first introduce Seaborn (a plotting tool for statistical analysis).

  • Prerequisites: Numpy, Pandas, Matplotlib
  • Date: Tuesday, October 25, 2022 (13:00 to 16:00 US EST)
  • Where: Virtual through Teams (you will receive and invitation prior to the class)
  • SATERN Course ID: 132959
  • SATERN Registration Link: GSFC-SEDA

Basic Machine Learning Modeling with Scikit-Learn

Description

Scikit-Learn (sklearn) is Python’s general-purpose Machine Learning (ML) library. Its versatility makes it the best starting place for most ML problems. In this presentation, we first introduce the basic concepts of ML. We then utilize the dataset from the Exploratory Data Analysis lecture to build two regression models. We finally implement cross validation computations using k-fold to determine the best ML algorithm for the available data.

  • Prerequisites: Pandas, Exploratory Data Analysis.
  • Date: Tuesday, November 1, 2022 (13:00 to 16:00 US EST)
  • Where: Virtual through Teams (you will receive and invitation prior to the class)
  • SATERN Course ID: 132958
  • SATERN Registration Link: GSFC-600-BMLMS

Basic Machine Learning Modeling with TensorFlow

Description

TensorFlow is an open-source software library for Machine Learning (ML) across a range of tasks. It is a symbolic math library, and also used as a system for building and training neural networks to detect and decipher patterns and correlations, analogous to human learning and reasoning. In this presentation, will first provide a basic overview of neural networks, and we will use real datasets and follow ML steps to create models, validate them and make predictions.

  • Prerequisites: Pandas, Exploratory Data Analysis.
  • Date: Tuesday, November 8, 2022 (13:00 to 16:00 US EST)
  • Where: Virtual through Teams (you will receive and invitation prior to the class)
  • SATERN Course ID: 132949
  • SATERN Registration Link:GSFC-600-BMLMT


Spring

SPRING 2024

In this course series, we introduce tools to perform web scraping, we show how to do object-oriented programming with Python, and we present the concept of decorators. Finally, we introduce techniques/tools to speed up and scale Python applications.


Requirements

To take any of the courses, you are expected to be familiar with the Python programming language (data types, conditional statement, loops, function, modules, and scripting).

You are also expected to have a Google Mail (gmail) account that will be needed to access either Google Colab or the NASA Center for Climate Simulation (NCCS) Science Managed Cloud Environment (SMCE). In case the SMCE is used, we will ask you to provide (once) your gmail userid.

Web Scraping with Python - Tuesday, January 30

Description

Web scraping is the process of retrieving data from the web. In this course, we use the Python packages Requests (to access a server and get the content of a web page) and Beautiful Soup (to parse the content of HTML documents from servers) to perform web scraping by accessing and manipulating text-based data from web pages. We will explain how to access a web page, read, and collect data, and work with the textual information available there. We will also introduce the JavaScript Object Notation (JSON) and learn how to get JSON objects from the web.

  • Prerequisites: Python programming and basic HTML syntax
  • Date: Tuesday, January 30, 2024 (13:00 to 16:00 US EST)
  • Where: Virtual through Teams (you will receive an invitation prior to the class)
  • SATERN Course ID: 136273
  • SATERN Registration Link: GSFC-WS-P

Object Oriented Programming with Python - Tuesday, February 6

Description

Python has been created an object-oriented language. Because of this, creating and using classes and objects are downright easy. This course presents the principles of object-oriented programming (OOP) using Python. We use simple examples to learn the benefits of OOP and see how the main OOP concepts (Encapsulation, Data Abstraction, Polymorphism, and Inheritance) can be used in Python applications.

  • Prerequisites: Familiarity with Python programming
  • Date: Tuesday, February 6, 2024 (13:00 to 16:00 US EST)
  • Where: Virtual through Teams (you will receive an invitation prior to the class)
  • SATERN Course ID: 136267
  • SATERN Registration Link: GSFC-600-OOPP

Python Decorators - Tuesday, February 13

Description

A decorator is a function that takes another function and extends the behavior of the latter function without explicitly modifying it. Decorators allow you to define reusable building blocks that can change or extend the behavior of other functions. And they let you do that without permanently modifying the wrapped function itself. The function’s behavior changes only when it’s decorated. In this course, we will use a step-by-step approach to create decorators (functions and classes) and provide practical examples, explanations, and even some tips and tricks to help you become proficient in using decorators in your Python projects.

  • Prerequisites: Familiarity with Python programming and OOP
  • Date: Tuesday, February 13, 2024 (13:00 to 16:00 US EST)
  • Where: Virtual through Teams (you will receive an invitation prior to the class)
  • SATERN Course ID: 136276
  • SATERN Registration Link: GSFC-600-PYDE

Optimizing Python Applications - Tuesday, February 27

Description

This course is meant for Python programmers who want to learn techniques needed to speed up their Python applications. We will first list the Python features that make the language slow. We then introduce profiling tools that can be used to identify bottlenecks in Python applications. We present programming tips (that are partly within the realm of Python) to consider for accelerating loops, perform arithmetic operations, list creations, quickly manipulate NumPy arrays, reduce memory footprint, etc.

  • Prerequisites: Familiarity with Python programming
  • Date: Tuesday, February 27, 2024 (13:00 to 16:00 US EST)
  • Where: Virtual through Teams (you will receive an invitation prior to the class)
  • SATERN Course ID: 136275
  • SATERN Registration Link: GSFC-OPA

Accelerating Python Applications on CPUs with Numba - Tuesday, March 5

Description

Numba is a just-in-time compiler for Python that works best on code that uses NumPy arrays and functions, and loops. The most common way to use Numba is through its collection of decorators that can be applied to users’ defined functions to instruct Numba to compile them. In this course, we present the main features of Numba and show of it can be used to accelerate Python applications that heavily rely on NumPy arrays. In the last part of the course, we will attempt to accelerate an image classification Machine Learning application using Numba.

  • Prerequisites: Familiarity with Python programming, NumPy and decorators
  • Date: Tuesday, March 5, 2024 (13:00 to 16:00 US EST)
  • Where: Virtual through Teams (you will receive an invitation prior to the class)
  • SATERN Course ID: 136277
  • SATERN Registration Link: GSFC-600-APACN

Scaling Python Applications on Multi-Core Platforms with Dask - Tuesday, March 12

Description

Dask is a flexible parallel computing library that provides multi-core and distributed parallel execution on larger-than-memory datasets. It distributes data across multiple cores and provides ways to scale Pandas, Scikit-Learn and NumPy workflows natively. We will introduce the basic concepts of Dask and learn how it can be used to accelerate calculations with NumPy and Pandas objects through Dask Arrays and DataFrames. We will also show how to use the dynamic task scheduling tool to distribute tasks across multiple cores.

  • Prerequisites: Familiarity with Python programming, NumPy and Pandas
  • Date: Tuesday, March 12, 2024 (13:00 to 16:00 US EST)
  • Where: Virtual through Teams (you will receive an invitation prior to the class)
  • SATERN Course ID: 136278
  • SATERN Registration Link: GSFC-600-SPAMCPD

Manipulating Geolocated Data with Xarray - Tuesday, March 19

Description

Xarray is an open-source library providing high-level, easy-to-use data structures and analysis tools for working with multidimensional labeled datasets and arrays in Python. Xarray combines the convenience of labeled data structures inspired by Pandas with the multi-dimensional arrays of NumPy and parallel out-of-core computation from Dask to provide an intuitive, powerful and scalable platform for scientific analysis.
Xarray introduces labels in the form of dimensions, coordinates, and attributes on top of raw NumPy-like arrays. It is particularly tailored to working with netCDF files. In this course, we will cover the main concepts of Xarray and will learn how to read multidimensional data from scientific data formatted files, manipulate the data, and perform visualizations. We will also present how use Xarray to read large data files with Dask.

  • Prerequisites: Familiarity with Python programming, NumPy and Pandas
  • Date: Tuesday, March 19, 2024 (13:00 to 16:00 US EST)
  • Where: Virtual through Teams (you will receive an invitation prior to the class)
  • SATERN Course ID: 136268
  • SATERN Registration Link: GSFC-600-MGX



Past Spring Course Series

SPRING 2023

SPRING 2023

Manipulating Satellite Data

In this course series, we use Python tools to read NASA and NOAA related satellite data files, process the data and perform basic visualizations. We limit the scope of our analysis to datasets with netCDF, HDF4 and HDF5 file formats.

In the satellite data files we will be working with, the latitude/longitude information of the covered areas, might not be readily available. We need to understand the metadata of each file and write code segments to extract appropriate information and data from the file. The goal of this course series is to provide the necessary Python skills to confidently access satellite datasets, and to present sample workflows on how to read and manipulate data from the files. We will be able to read observations from files (using pyhdf, h5py, Xarray), extract latitude/longitude information, and use them to create Xarray DataSets. The Xarray objects will then be utilized to facilitate the manilipulations of observations. In particular, we will visualize the data on maps to create static and interactive plots.

Introduction to NumPy

Description

NumPy (Numerical Python) is a library consisting of multidimensional array objects and a collection of routines for processing those arrays. It is meant to provide an array object that is at least an order of magnitude faster than traditional Python lists. Using NumPy, mathematical and logical operations on arrays can be efficiently performed. NumPy is the foundation of an extensive ecosystem of Python products and Data Science libraries such as SciPy, Pandas, Scikit-Learn, Matplolib, Seaborn, etc. This course introduces the structure of NumPy arrays, show various ways to create them to facilitate numerical calculations. We will also present how to perform array slicing, in-place arithmetic, etc. and how to use built-in mathematical functions for faster computations.

  • Prerequisites: Familiarity with Python
  • Date: Tuesday, January 31, 2023 (13:00 to 16:00 US EST)
  • Where: Virtual through Teams (you will receive an invitation prior to the class)
  • SATERN Course ID: 133962
  • SATERN Registration Link: NumPy

Visualization with Matplotlib and Cartopy

Description

Matplotlib is one of the most popular Python packages used for data visualization. It is a cross-platform library for making 2D plots from data in arrays. It can be used in python scripts, shell, web application servers and other graphical user interface toolkits. Cartopy is a Python package designed for geospatial data processing to produce maps and other geospatial data analyses. In this course, we will present the anatomy of a Matplotlib figure and show how to produce various plots with Matplotlib. We will also use the Matplotlib object oriented formulation (figure and axes) to visualize geospatial data.

  • Prerequisites: NumPy
  • Date: Tuesday, February 7, 2023 (13:00 to 16:00 US EST)
  • Where: Virtual through Teams (you will receive an invitation prior to the class)
  • SATERN Course ID: 133983
  • SATERN Registration Link: GSFC-VMC

Reading Machine-Independent Geoscience Data Files with Python

Description

In this course, we learn how to read netCDF (with netCDF4), HDF4 (with pyhdf) and HDF5(with h5py) files using Python. We access the files to identify the metadata, the groups (if available), and the datasets. We also extract the data from the datasets and use the datasets attributes (scale factor, offset and fill value) to restore the data before doing manipulations and visualizations.

  • Prerequisites: NumPy, Matplotlib
  • Date: Tuesday, February 14, 2023 (13:00 to 16:00 US EST)
  • Where: Virtual through Teams (you will receive an invitation prior to the class)
  • SATERN Course ID: 133991
  • SATERN Registration Link: GSFC-RNI-GDFP

Creating Xarray Objects using NumPy Arrays

Description

Xarray is an open-source library providing high-level, easy-to-use data structures and analysis tools for working with multidimensional labeled datasets and arrays in Python. Xarray combines the convenience of labeled data structures inspired by Pandas with the multi-dimensional arrays of NumPy and parallel out-of-core computation from Dask to provide an intuitive, powerful and scalable platform for scientific analysis. Xarray introduces labels in the form of dimensions, coordinates and attributes on top of raw NumPy-like arrays. It is particularly tailored to working with netCDF files. In this course, we learn to create Xarray DataArrays and Xarray DataSets using NumPy arrays. With the Xarray objects, we have the ability to select slices of the data, perform interpolations on the fly, quickly do various visualizations, use Hvplot to produce interactive plots, and easily save desired data in netCDF files.

  • Prerequisites: NumPy, Cartopy
  • Date: Tuesday, February 21, 2023 (13:00 to 16:00 US EST)
  • Where: Virtual through Teams (you will receive an invitation prior to the class)
  • SATERN Course ID: 133987
  • SATERN Registration Link: GSFC-CXOUNA

Python Workflows for GOES-R/ABI & JPSS/VIIRS Data

Description

Participants will learn the proper Python workflows for processing and visualizing satellite data from NOAA’s GOES-R/ABI (geostationary) and JPSS/VIIRS (polar-orbiting) netCDF4 (.nc) files. Examples will focus on satellite observations of recent wildfire and blowing dust events. Covered workflow steps include opening data files, reading metadata, understanding the file structure, and extracting data variables using the Xarray and netCDF4 packages; processing satellite data using the NumPy package; and plotting satellite data on a map to make a professional-quality image using the Matplotlib and Cartopy packages.

  • Prerequisites: Cartopy, netCDF4, Xarray
  • Date: Tuesday, February 28, 2023 (13:00 to 16:00 US EST)
  • Where: Virtual through Teams (you will receive an invitation prior to the class)
  • SATERN Course ID: 133994
  • SATERN Registration Link: GSFC-PEF/GOES-R/ABI&JPSS/VIIRS

Using Python Tools to Access MODIS and Landsat Data Files

Description

We use pyhdf to access the Moderate Resolution Imaging Spectroradiometer (MODIS) and Landsat data files. We present various workflows to extract data from the files, and create Xarray objects that are used for data manipulation and visualization.

  • Prerequisites: Cartopy, Xarray, pyhdf
  • Date: Tuesday, March 7, 2023 (13:00 to 16:00 US EST)
  • Where: Virtual through Teams (you will receive an invitation prior to the class)
  • SATERN Course ID: 133990
  • SATERN Registration Link: GSFC-UPTA-MODISLDF

Using Python Tools to Access OMI Data Files

Description

We use h5py to access Ozone Monitoring Instrument (OMI) data files. We create a workflow to extract all the datasets from the files, and convert the datasets into Xarray objects that are used for data manipulation and visualization. We also read a collection of OMI files and perform time series analyses.

  • Prerequisites: Cartopy, Xarray, h5py
  • Date: Tuesday, March 14, 2023 (13:00 to 16:00 US EST)
  • Where: Virtual through Teams (you will receive an invitation prior to the class)
  • SATERN Course ID: 133985
  • SATERN Registration Link: GSFC-UPTA-OMIDF


Useful Pointers



SPRING 2022

Background

We provide a set of classes focusing on data visualization with Python. Data visualization is the graphical representation (line plot, pie chart, histogram, contour plot, map, etc.) of information and data. Data visualization tools provide an accessible way to see and understand trends, outliers, and patterns in data. The tools offer us the ability to see at a glance what matters. They are essential to analyze massive amounts of information and make data-driven decisions. In this series of presentations, we will introduce a few Python packages to visualize geospatial data. We will learn how to do simple 2D static plots as well as interactive time series maps.

We are particularly interested in:

  • Matplotlib: One of the most popular Python packages for data visualization. It is mainly used for 2D static plots.
  • GeoPandas: Enables the use and manipulation of geospatial data. It provides support for geographic data to Pandas objects.
  • Cartopy/Xarray: Cartopy is designed for geospatial data processing in order to produce maps and other geospatial data analyses. Xarray handles labeled multi-dimensional arrays and performs advanced analytics and visualization. The two packages can be combined to manipulate and visualize geospatial data.
  • HoloViews: Conveys the message that data is trying to tell rather than focusing on how to do visualizations. Produces interactive plots.
  • GeoViews: Facilitates the exploration and visualization of any data that includes geographic locations.

We will also provide two tutorials on ASTG’s eViz/iViz packages built from the above tools to streamline visualization of Earth System model outputs such as GEOS, modelE, LIS and WRF.

Requirements

To take any of the courses, you are expected to be familiar with Python and have knowledge of NumPy and Pandas. You can refer to the Jupyter notebooks, Introduction to NumPy and Introduction to Pandas, to learn about those topics.

You are also expected to have a Google Mail (gmail) account that will be needed to access either Google Colab or the NASA Center for Climate Simulation (NCCS) Science Managed Cloud Environment (SMCE). In case the SMCE is used, we will ask you to provide (once) your gmail userid.

List of Courses

Matplotlib

Description

Matplotlib is one of the most popular Python packages used for data visualization. It is a cross-platform library for making 2D plots from data in arrays. It can be used in python scripts, shell, web application servers and other graphical user interface toolkits. In this course, we will present the anatomy of a Matplotlib figure and show to produce various 2D plots with Matplotlib.

  • Prerequisites: Familiarity with Python, NumPy.
  • Date: Tuesday, February 8, 2022 (13:00 to 16:00 US EST)
  • SATERN Course ID: GSFC-600-ITM
  • Registration Link: GSFC-600-ITM

Introduction to GeoPandas

Description

GeoPandas is a Python open-sourced library that extends the features of Pandas with the ability to read, analyze, and visualize geospatial data. It combines the capabilities of Pandas and Shapely, providing geospatial operations in Pandas and a high-level interface to multiple geometries to Shapely. In this course, we will introduce the basic data structure of GeoPandas (GeoSeries and GeoDataFrame), show a simple example on how to create such a data structure. We will then learn how to read various csv files (containing geospatial information) and create different types of maps.

  • Prerequisites: NumPy, Pandas, Matplotlib.
  • Date: Tuesday, February 15, 2022 (13:00 to 16:00 US EST)
  • SATERN Course ID: GSFC-600-GEOP
  • Registration Link: GSFC-600-GEOP

Xarray and Cartopy for Data Visualization

Description

Xarray is an open-source library providing high-level, easy-to-use data structures and analysis tools for working with multidimensional labeled datasets and arrays in Python. Xarray combines the convenience of labeled data structures inspired by Pandas with the multi-dimensional arrays of NumPy and parallel out-of-core computation from Dask to provide an intuitive, powerful and scalable platform for scientific analysis. Xarray introduces labels in the form of dimensions, coordinates and attributes on top of raw NumPy-like arrays. It is particularly tailored to working with netCDF files. Cartopy is a Python package designed for geospatial data processing to produce maps and other geospatial data analyses. In this course, we will show how to use Xarray and Cartopy to visualize geospatial data. We will also combine Xarray and Hvplot to produce interactive and live plots.

  • Prerequisites: NumPy, Pandas, Matplotlib.
  • Date: Tuesday, February 22, 2022 (13:00 to 16:00 US EST)
  • SATERN Course ID: GSFC-600-XCDV
  • Registration Link: GSFC-600-XCDV

Interactive Visualization with HoloViews

Descritption

HoloViews is an open-source Python library designed to make data analysis and visualization seamless and simple. It helps users understand their data better, by letting them work seamlessly with both the data and its graphical representation. HoloViews focuses on bundling users’ data together with the appropriate metadata to support both analysis and visualization, making users’ raw data and its visualization equally accessible at all times. In this course, we will learn how to create various plots (line plot, scatter plot, histogram, etc.) with HoloViews.

  • Prerequisites: NumPy, Pandas, Matplotlib.
  • Date: Tuesday, March 1, 2022 (13:00 to 16:00 US EST)
  • SATERN Course ID: GSFC-600-IVH
  • Registration Link: GSFC-600-IVH

Introduction to GeoViews

Description

GeoViews is a Python library that facilitates the exploration and visualization of geographical, meteorological, and oceanographic datasets. GeoViews is built on the HoloViews library for building flexible visualizations of multidimensional data. It adds a family of geographic plot types based on the Cartopy, plotted using either Matplotlib (static maps) or Bokeh (interactive maps). In this course, we will first explore ways to plot a collection of points (represented by their latitudes and longitudes) on a map. We will then learn how to plot model outputs data on maps.

  • Prerequisites: NumPy, Pandas, Cartopy, HoloViews
  • Date: Tuesday, March 8, 2022 (13:00 to 16:00 US EST)
  • SATERN Course ID: GSFC-600-GEOV
  • Registration Link: GSFC-600-GEOV


List of Tutorials

Introduction to GeoViews

Description

eViz is a Python framework that provides an easy-to-use text-based interface to generate a variety of plots for diagnosing Earth system model output. The framework leverages a Python stack that includes Matplotlib, Xarray and Cartopy to produce static images such as horizontal and zonal mean plots as well as time series, polar and Hovmoller plots. All the inputs, system settings and image specifications are fully configured in a couple of YAML files. In this tutorial we will discuss how to deploy the framework on a computing system using Python virtual environments. We will also show how to set up the YAML files to perform various plotting tasks and in particular, we will setup eViz to visualize sample GEOS model and MERRA2 output.

  • Date: Friday, March 18 May 13, 2022 (13:00 to 16:00 US EST)
  • SATERN Course ID: GSFC-600-eViz
  • Registration Link: GSFC-600-eViz

iViz Tutorial

Description

iViz is an interactive visualization dashboard tool within eViz, based on python packages HoloViews, GeoViews, Xarray, Cartopy, and Panel. iViz offers a highly interactive GUI dashboard that can visualize various Earth system and climate model data. This training will teach attendees how to create custom visualizations, make comparisons with other data, create time averages and time series, and store personal plot options and visualization sessions. Attendees will learn how to launch the tool and visualize several different datasets, including provided GEOS datasets and remote climate datasets.

  • Date: Friday, March 25 May 20, 2022 (13:00 to 16:00 US EST)
  • SATERN Course ID: GSFC-600-iViz
  • Registration Link: GSFC-600-iViz


Accessing the SMCE Platform

To access the SMCE, go to the user portal and log in. It is assumed that you have already provided your gmail userid. The system will ask you to provide your gmail password or give you automatic access if you are already logged in into gmail (through your browser). We recommend that 2-4 days before the beginning of each class, you provide your gmail userid by filling out this online form.

Installing the Anaconda Python Distribution

You are not required to have Python installed on your computer. If you want to have a Python distribution on your local platform, we recommend using he Anaconda Python distribution. To install it, follow the instructions in the Anconda installation Guide. If you have a Mac, it is preferable to use the command line installation option.

Note that you are not required to install anything on your local platform to take a course here. The SMCE platform is self contained and has all we need. However, we believe that it is important to have a local Python distribution that you can use for code development.

Accessing the Materials

The materials are in a Git repository that can be cloned using:

     git clone https://git.smce.nasa.gov/astg/training/py_materials.git

When you issue the above command, you will get a folder named py_materials.

Teaching Team


Statistics

We provide yearly statistics on the following:

  • Class attendance
  • Number of courses taught
  • Number of teaching hours

fig

Python Intern Bootcamp FAQ

General Questions on the Bootcamp

Questions and Answers
__Question:__ Where can I get information related to the Bootcamp?

Answer: The main entry point for the Bootcamp (as far as the Python classes are concerned) is the webpage:

https://astg.pages.smce.nasa.gov/website/python/#nasa%20intern%20bootcamps

The webpage will constantly be updated to inform you on everything related to the classes:

  • Topics to be covered.
  • Schedule
  • Teams invitation links
  • Access to the materials.
  • Link to the Python self-assessment test.
  • Link to the cloud teaching platform.
  • Link to the evaluation form.
  • Etc.

Question: What do I expect to learn from this Bootcamp?

Answer: The primary goal of the Bootcamp is to provide the foundations of the Python programming language. We hope that after attending all the sessions and participating in all the class activities, you will be able to understand all Python data types, how to write conditional statements and loops, how to write a function and create a module, and how to write a simple Python application. On top of that, you will also learn how to use version control to write software applications, you will be exposed to cloud computing, and you will learn basic tools to edit a file and how to use Jupyter notebook.

Question: Do I have to know any programming language before attending the Bootcamp?

Answer: No! However, if you know any (other than Python), you will be able to quickly absorb Python concepts.

Question: Is there any requirement to take this Bootcamp?

Answer: We basically expect each participant to have a Gmail account (only needed to have access to the cloud platform) and a github.com account (needed to apply version control concepts for maintaining a software application).


Python Self-Assessment Test

Questions and Answers

Question: Am I required to take the Python self-assessment test?

Answer: The test is only meant to evaluate your Python knowledge and to determine which session you need to take. If you have never been exposed to the Python programming language, you do not need to take the test before the Bootcamp starts (however, it will be a good idea to take it at the end). If you have programmed with Python before, the test will determine if you have the basic foundations. If it is the case, you may just want to consider the Data Science track of the Bootcamp.

When you complete the test, you should receive an e-mail notification with your score and how you answer each question.

Question: What to do if during the test I encounter a cell with DO NOT EDIT this field or your time will not be recorded.?

Answer: We are sorry for the issue. You can fill out the box with anything you want. Whatever you write will not affect your score.


Classes

Questions and Answers

Question: Which days of the week the classes will take place?

Answer: The classes will typically occur on Mondays, Wednesdays, and Fridays. Note that you have at least a day between two consecutive classes to allow you to go over the materials of the previous class and get ready for the next. You can only master the concepts of any programming language if you continually practice and apply the concepts you have learned.

Question: How long is each class?

Answer: Each class lasts three hours, starts at 12:00 pm and ends at 3:00 pm. We will have plenty of breaks to allow to you to rest and digest the materials.

Question: Am I required to attend each class?

Answer: We assume that you were selected for the internship to learn new concepts and make your own contribution to the project you are involved in. Attending this Bootcamp is part of the learning process. We then expect you to attend all the classes you signed up for. We also understand that some of the classes may interfere with other internship activities. Please communicate with your mentor who will provide appropriate guidance.

Question: Are you going to collect attendance in each class?

Answer: Yes, we will do that and provide the information to the Program Coordinator.

Question: Will there be any face-to-face class?

Answer: All the classes will be hybrid. All the classes will be provided from a conference room at NASA Goddard and will broadcast through Teams. We expect that all the interns who have offices at NASA Goddard will physically attend the classes (see the Bootcamp webpage for the locations). Remote interns will attend virtually.


Bootcamp Materials

Questions and Answers

Question: How can I have access to the materials?

Answer: The Bootcamp webpage has (or will have) instructions on how to obtain the class materials.

Question: Am I allow to use the materials after the Bootcamp?

Answer: Absolutely, you can use them (for your internship project and beyond) as you wish. However, they are not meant for commercial use.

Question: Can I share the materials with somebody else?

Answer: Yes, you can do it.


Recordings

Questions and Answers

Question: Are the classes going to be recorded?

Answer: Yes, each class will be recorded. Each recording will be available in the Teams chat room of the corresponding class. In addition, the Program Coordinator will make all the recordings available at a specific website (check with the Program Coordinator).


Test at the End of the Bootcamp

Questions and Answers

Question: Are we going to be evaluated at the of the Bootcamp?

Answer: No, there is not evaluation test. We believe that if you participate in class activities, you will have the ability to understand the structure of a Python code and write your own Python application.


Bootcamp Evaluation

Questions and Answers

Question: Is there any way to provide feedback on the classes were provided?

Answer: Yes, we will appreciate if all the participants fill out the evaluation survey which link is available at the Bootcamp webpage. Whatever constructive feedback you provide will help us improve the Bootcamp and make us better instructors.


Additional Python Assistance

Questions and Answers

Question: I am involved in an internship that relies on Python and I need additional help. Can I contact the instructors for guidance?

Answer: Absolutely! The instructors are available to assist you. However, note that if you need a lot of help or your project is beyond their expertise, they will refer you to other resources.