# Wednesday, 5 May

Today's tutorials will occur along 4 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.

{% tabs %}
{% tab title="MATLAB" %}

### 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.

[Slides](https://docs.google.com/presentation/d/1rt7cN8loXj7rbKexJ120g_5NnFYhmlchoEfl5s70DiM/edit?usp=sharing) | [Exercises](https://docs.google.com/presentation/d/1yl6X-tqayri-204FJXjR0ZLUemalYVhl1_TrXSpOMik/edit?usp=sharing)

### MATLAB: Programming Basics | 11:00 - 12:30 EDT

An introduction to programming using MATLAB. Topics covered include: programs and functions, relational operators, logical operators, and controlling flow with if statements and loops.

[Exercises](https://docs.google.com/document/d/1cuHmTsbNyAvRM0f2pMjEHG2usK08hnTdu9YUdSwCwr4/edit?usp=sharing)

### MATLAB: Improving Performance | 1:30 - 3:00 EDT

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

[Slides](https://docs.google.com/presentation/d/1rlw2hmQfOU4McYLIQN-M8gT4NJbUi70mNqZeQ76xNDs/edit?usp=sharing) | [Exercises](https://docs.google.com/presentation/d/1d4h52eX87ziRSpu7bSgDn0-tJ4uvM2wwz7GWQFQtSfY/edit?usp=sharing) | [Github Link](https://github.com/brown-ccv/Matlab-Improving-Performance)

### MATLAB: Tools for Parallel Computing | 3:00 - 4:30 EDT

This workshop will cover basic performance optimization techniques using parallel computing techniques in MATLAB, including: parallel for-loops (parfor), single program multiple data (spmd), and distributed arrays. We assume that participants have a relatively advanced knowlege of the MATLAB programming language

[Slides](https://docs.google.com/presentation/d/1-cKR9XfFl7_M0WN-JC13e7pCG0YF4dtO1__BiQ--geM/edit?usp=sharing)
{% endtab %}

{% tab title="Python" %}

### Using Jupyter Notebooks | 9:30 - 10:00 EDT

A quick overview to using Jupyter Notebooks. We will provide some python-specific functionality and some tips about notebooks in general.

### Python Programming Basics | 10:00 - 12:00 EDT

An introduction to Python programming. Topics covered will include: the basics of variables, lists, dictionaries and arrays; the logic of control-flow techniques such as if-then statements, for loops, list comprehensions; a basic understanding of writing functions.

### Data Wrangling in Python | 1:30 - 3:30 EDT

A quick introduction to working with data in python. We will touch on two ways work with data in general. A prerequisite is that you are at least familiar wiht simnple python programming or attended the previous session.

* Using standard python programming
* Using Pandas the Python Data Analysis package

### Using Python on Oscar | 4.00 - 4:30 EDT

A short overview on how to work with python on OSCAR

Zoom Link: [https://brown.zoom.us /j/97781603131](https://brown.zoom.us/j/97781603131?pwd=SFZNRXBpRVMvRkJOeFJ3ekMyekVUUT09)

email: <hpc@brown.edu> for passcode

[**DIRECT NOTEBOOK LINK:** ](https://ccv.jupyter.brown.edu/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fcompbiocore%2Fccv_bootcamp_python\&urlpath=lab%2Ftree%2Fccv_bootcamp_python%2Fnotebooks%2FUsing_jupyter.ipynb\&branch=main)**Click to go the jupyterhub for these series of workshops**
{% endtab %}

{% tab title="R" %}

### A Gentle Introduction to R Programming | 9:30 - 12:00 EDT

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.

<https://ccv.jupyter.brown.edu/hub/user-redirect/git-pull?repo=git%3A%2F%2Fgithub.com%2Fcompbiocore%2Fccv_bootcamp_R&urlpath=lab%2Ftree%2Fccv_bootcamp_R%2FR_Bootcamp_Intro_R.ipynb&branch=main>

### R/TidyVerse Essentials | 1:30 - 2:30 EDT

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

[**https://ccv.jupyter.brown.edu/hub/user-redirect/git-pull?repo=git%3A%2F%2Fgithub.com%2F\[…\]%2Fccv\_bootcamp\_R%2FR\_Bootcamp\_Tidyverse.ipynb\&branch=main**](https://ccv.jupyter.brown.edu/hub/user-redirect/git-pull?repo=git%3A%2F%2Fgithub.com%2F\[%E2%80%A6]%2Fccv_bootcamp_R%2FR_Bootcamp_Tidyverse.ipynb\&branch=main)

### Essentials of GGplotting with R | 2:45 - 3:45 EDT

This session will cover data visualization using ggplot.

<https://ccv.jupyter.brown.edu/hub/user-redirect/git-pull?repo=git%3A%2F%2Fgithub.com%2Fcompbiocore%2Fccv_bootcamp_R&urlpath=lab%2Ftree%2Fccv_bootcamp_R%2FR_ggplot2.ipynb&branch=main>

### Using R on Oscar | 4:00 - 4:30 EDT

This session will briefly cover different approaches to using R on Oscar.

<https://ccv.jupyter.brown.edu/hub/user-redirect/git-pull?repo=git%3A%2F%2Fgithub.com%2Fcompbiocore%2Fccv_bootcamp_R&urlpath=lab%2Ftree%2Fccv_bootcamp_R%2FR_on_Oscar.ipynb&branch=main>
{% endtab %}

{% tab title="Julia" %}

### Introduction to Julia | 9:30 - 11:30 EDT

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ccv.brown.edu/bootcamp/bootcamp-2021/schedule/wednesday-5-may.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
