Parallel Computing Using OpenMP
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.
Parallel Computing Using MPI
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.
Fundamentals in Python Programming
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
Intermediate Python Programming For Data Science
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.
Prerequisites: Fundamentals of Python Course -or- mastery of core Python programming principles and familiarity with the Google Colab integrated development environment.
Advanced Python Programming for Data Science
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.
Prerequisites: Intermediate Python Course -or- mastery of the array and dataframe data structures and familiarity with the Google Colab integrated development environment.
Fundamentals R Programming
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.
Intermediate R Programming
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.
Fundamentals of Artificial Intelligence and Machine Learning
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
Introduction to Deep Learning with TensorFlow
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
Introduction to Deep Learning with PyTorch
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.
Prerequisites:Basic python programming skills
Using SciKit-learn for Artificial Intelligence and Machine Learning
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
ChIP-seq
This course covers the basic concepts and methodologies needed to perform analysis of ChIP-seq data. This course uses example data to cover next-generation sequencing library QC and trimming, aligning reads to a reference genome, filtering and sorting alignment files, and calling ChIP-seq peaks.
Prerequisites: This course requires access to the Texas A&M HPRC Grace cluster.
Fundamentals of Linux
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.
Prerequisites: Google Colab Required – Instructions will be provided within the course. Please make sure you have a Google account before starting the training.
Cloud Computing: Linux for Administrators
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.
Prerequisites: Google Colab Required – Instructions will be provided within the course. Please make sure you have a Google account before starting the training.
