Courses
This course will introduce students to parallelizing their code using OpenMP. Topics covered will include OpenMP concepts. OpenMP program layout, worksharing constructs, synchronization pragmas, and OpenMP tasks.
Students will get a better understanding of creating shared memory parallel code using the OpenMP standard. After finishing this course, students will be able to determine what parts of a code can be parallelized using OpenMP pragmas, how to apply worksharing pragmas to speed up the code, detect data dependencies, how to apply synchronization pragmas to avoid data races, and how to use OpenMP to parallelize non traditional serial codes.
Prerequisites: Familiarity with coding in either C/C++, or Fortran. Basic knowledge of operating systems.
Online
This course covers the Message Passage Interface (MPI), a standard library to create parallel codes for distributed systems. Topics covered include, MPI terminology, Communicators, Point to Point communications, and collective communications.
Students will get a better understanding of creating parallel code using a distributed memory model. After this course students will be able to create parallel codes, how independent processes can communicate with each other, how to distribute large data among multiple processors, how to compile and run these parallel codes on single and multi node systems.
Prerequisites: Familiarity with coding in either C/C++, or Fortran. Basic knowledge of operating systems and computer architecture.
Online
This course covers the most important core components of Python programming at the introductory level. Students will learn fundamental programming concepts such as variables, data structures, flow control, and object-oriented programming. Topics and exercises are selected to be relevant for scientific research applications.
Students will become familiar with the Google Colab integrated development environment. After the course, students will be able to read and write Python code.
Prerequisites: None
Online
This course covers a selection of scientific programming tools commonly used in Python programming at the intermediate level. Students will learn research techniques such as manipulating and visualizing data, exploring functions, modeling, and retrieving data from the internet. Topics and exercises are selected to be relevant for data science applications. Tools are drawn primarily from the libraries NumPy, SciPy, Matplotlib, and Pandas.
Students will become familiar with commonly used Python libraries. Students will practice programming skills relevant for research. Students will be able to acquire, process, analyze, and visualize data.
Target Audience: Individuals already familiar with Python programming language who are interested in scientific research.
Prerequisites: Fundamentals of Python Course -or- mastery of core Python programming principles and familiarity with the Google Colab integrated development environment.
Online
This course covers a selection of scientific programming tools occasionally used in Python programming at the advanced level. Students will work with multi-dimensional data and upgrade existing workflows to leverage parallel computing. Topics and exercises are selected to be relevant for data science applications. Tools are drawn primarily from the libraries Xarray and Dask.
Students will learn how to handle multi-dimensional data using the Xarray library, and students will learn how to upgrade existing workflows to leverage parallel computing using the Dask library.
Target Audience: Individuals already familiar with Python programming language who are interested in scientific research on a topic that requires multi-dimensional data.
Prerequisites: Intermediate Python Course -or- mastery of the array and dataframe data structures and familiarity with the Google Colab integrated development environment.
Online
This course is an introduction to the R programming language and covers the fundamental concepts needed to operate in the R environment. This course assumes no prior experience with R.
Topics covered include data types, variables, built-in functions, vectors, and loops.
Prerequisites: Users will need access to a computer where they can install RStudio. Installation instructions are included in the course.
Online
This course covers intermediate concepts in the R programming language and can be taken as a stand-alone course or after completion of the Fundamentals of R programming course.
Topics covered include matrices, factors, data frames, and plotting with the base R plotting functions and the package ggplot2.
Prerequisites: Users will need access to a computer with RStudio with the packages shiny, learnr, and ggplot2 installed. Familiarity with data types, variables, built-in functions, vectors, and loops is strongly encouraged.
Online
Artificial Intelligence (AI) and Machine Learning (ML) technologies such as virtual assistants and recommender systems have changed our daily lives. This course mainly introduces some fundamentals of AI and ML including their relationship, different types of data, training and testing, common types of learning techniques (supervised and unsupervised learning) and applications (regression, classification, and clustering).
Students will understand the fundamentals of AI and ML and solve some simple regression, classification and clustering problems.
Prerequisites: Basic python programming skills
Online
This course gives a brief introduction to deep learning with TensorFlow, an open-source software library for machine intelligence. The basic concepts of deep learning methods will be covered. TensorFlow will be introduced with examples.
Students will learn about the fundamentals of deep learning, TensorFlow, Keras API, and the machine learning workflow with TensorFlow Keras API.
Prerequisites: Basic python programming skills
Online
This course introduces the fundamentals of deep learning with PyTorch, a free and open-source machine learning framework developed primarily by Facebook’s AI Research (FAIR) Lab. It will cover the basic concepts of deep learning and PyTorch with examples. PyTorch is based on the Torch library and can be used for various applications such as computer vision. It provides tensor computing that could be accelerated with GPUs.
Online
The first module of this course introduces some fundamentals of AI and ML including their relationship, different types of data, training and testing, common types of learning techniques (supervised and unsupervised learning) and applications (regression, classification, and clustering). The second module introduces some commonly used machine learning algorithms.
Students will understand the fundamentals of AI and ML and implement linear regression, logistic regression, Support Vector Machine (SVM) and K-Means clustering algorithms with Scikit-learn machine learning library.
Prerequisites: Basic python programming skills
Online
This course introduces basic Linux commands commonly used for management of files and directories (copy, move, delete, compress, extract, archive, transfer…), I/O redirection, customizing environment, and text processing with vi. In this class, students will be able to practice basic Linux operations using a live terminal at no charge with Google Colab through a web browser.
Google Colab Required – Instructions will be provided within the course. Please make sure you have a Google account before starting the training.
Online
This course introduces basic Linux administration skills including account management (adding/modifying/deleting users and groups), packages installation, monitoring disk usage, and process control. Students will also be able to learn text processing with vi, sed and awk utilities, as well as bash scripting for task automation. In this class, students will be able to practice basic Linux administration tasks using a live terminal at no charge with Google Colab through a web browser. Aspiring cloud professionals will also benefit from understanding Linux administration as it serves as the basis of most cloud instances.
Google Colab Required – Instructions will be provided within the course. Please make sure you have a Google account before starting the training.
Online