Comment on page

Thursday, 8 June

Introduction to Programming
Today's tutorials will occur along four tracks, each devoted to a different programming language, running concurrently. Each tab below corresponds to one of these tracks. The tutorials associated with each track are listed on the relevant tab.

Introduction to Julia | 1:30 - 3:00 EDT *Hybrid*

The Julia programming language has been gaining popularity in the scientific computing and data science communities. The language boasts performance characteristics approaching that of compiled languages like C, C++, and Fortran, while also being as expressive as Python, R, Ruby, or Matlab. This will be an introduction to the Julia language for users without previous experience using Julia. This will be a "hands-on" introduction, and will cover the basics of the language. No prior experience with Julia is required; some familiarity with another programming language will be benficial, but is not necessary.

Programming in Julia | 3:00 - 4:30 EDT *Hybrid*

This tutorial will discuss best practices for writing reusable code in Julia. Topics will include:
  • basic terminal commands
  • basics of git for managing changes
  • managing environments
  • creating/managing a project
  • setting up a code editor (vscode) for development
  • test driven development
  • working collaboratively
notes (access using <username> | video

Using MATLAB on Oscar | 9:30 - 11:00 EDT

An introduction to using MATLAB on Oscar. Topics covered include: working with MATLAB interactively on Oscar, using the MATLAB GUI, and using MATLAB in batch jobs.

MATLAB: Programming I | 11:00 - 12:30 EDT

An introduction to programming using MATLAB. Topics covered include: working with the MATLAB Desktop, variables and arrays, and basic plotting.
slides | video

MATLAB: Programming II | 1:30 - 3:00 EDT

An introduction to programming using MATLAB. Topics covered include: MATLAB scripting, functions, relational operators, logical operators, controlling flow with if statements and loops, and using MATLAB's debugger.
slides | video

MATLAB: Improving Performance | 3:00 - 4:30 EDT

This workshop will cover basic performance optimization and parallel computing techniques in MATLAB, including: code profiling, pre-allocation, sequential memory access, vectorization, parallel for-loops and efficient matrix-vector storage and operations. We will assume that participants have a basic understanding of the MATLAB programming language.
slides | video

Python Programming Basics Part I | 9:00 - 10:15 EDT *Hybrid*

An introduction to Python fundamentals. This session will cover key python concepts of: data types and data containers; the logic of control-flow techniques such as if-then statements, for loops, list comprehensions; and a basic understanding of writing functions.

Python Programming Basics Part II | 10:45 - 12:00 EDT *Hybrid*

A continuation of Part I with hands-on exercises.

Exploratory Data Analysis Part I | 1:30 - 2:45 EDT *Hybrid*

An introduction to EDA of tabular data covering techniques of data loading, inspection, cleaning and pre-processing. This session will provide an overview of data validity considerations, how to inspect data using statistics and visualizations, and methods of correcting common data issues.

Exploratory Data Analysis Part II | 3:15 - 4:30 EDT *Hybrid*

A continuation of Part I with hands-on exercises.

An Introduction to R Programming | 9:30 - 12:00 EDT *Hybrid*

This session will cover an introduction to R, including data types and data formats, useful R functions, writing your own functions, importing and exporting data, and installing packages.

TidyVerse Essentials | 1:30 - 2:30 EDT *Hybrid*

This session will cover data wrangling (filtering, reshaping, joining) using Tidyverse.

ggplot2 Essentials | 2:45 - 3:45 EDT *Hybrid*

This session will cover data visualization using ggplot.