# Day 3: Wednesday, 4 June

Today's tutorials will occur along three 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" %}

### Basic MATLAB 9:30 - 10:30 EDT

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

[slides](https://docs.google.com/presentation/d/1G_DYrf9jWdy3jukjgk1O5So5Bo5i4PjG2izzryQ4x2Q/edit?usp=sharing) | [exercises](https://docs.google.com/presentation/d/1QnbJlD5b3_Q6RkgfCBjJ1b2gc4LWSj2huFtdQfdZ8mA/edit?usp=sharing) | [video](https://brown.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=88fa9718-0367-4f27-95ae-b2fa010dddd6)

### Advanced MATLAB 11:00 - 12:00 EDT

An introduction to programming and basic performance optimization and parallel computing techniques in MATLAB. Topics covered include: MATLAB scripting, using MATLAB's debugger, code profiling, parallel for-loops and efficient matrix-vector storage and operations.

[slides](https://docs.google.com/presentation/d/1Tdh-rLR7w45UlGSHKoc_NKAZxlFce01NUassKp26VrQ/edit?usp=sharing) | [repo](https://github.com/phall-brown/MATLAB-examples.git) | [video](https://brown.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=8a8329d3-990a-4573-ac5e-b2f20132a505)
{% endtab %}

{% tab title="Python" %}

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

*Description coming soon!*

slides

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

*Description coming soon!*

slides

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

*Description coming soon!*

slides

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

*Description coming soon!*

slides
{% endtab %}

{% tab title="R" %}

### An Introduction to R Programming | 9:00 - 10: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.

[notebook](http://ccv.jupyter.brown.edu/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fcompbiocore%2Fccv_bootcamp_R\&urlpath=lab%2Ftree%2Fccv_bootcamp_R%2FR_Bootcamp_Intro_R.ipynb\&branch=main) | [repo](https://github.com/compbiocore/ccv_bootcamp_R/blob/main/R_Bootcamp_Intro_R.ipynb) | [video](https://brown.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=a3a188a3-9bf1-4bb7-89b9-b2fe01242f3d)

### TidyVerse and ggplot2 | 10:00 - 11:00 EDT

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

[notebook](http://ccv.jupyter.brown.edu/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fcompbiocore%2Fccv_bootcamp_R\&urlpath=lab%2Ftree%2Fccv_bootcamp_R%2FR_Bootcamp_Intro_R.ipynb\&branch=main) | [repo:tidyverse](https://github.com/compbiocore/ccv_bootcamp_R/blob/main/R_Bootcamp_Tidyverse.ipynb) | [repo:ggplot2](https://github.com/compbiocore/ccv_bootcamp_R/blob/main/R_ggplot2.ipynb) | [video:tidyverse](https://brown.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=89bf20d1-a752-4135-8803-b2fe01241541\&start=97) | [video:ggplot2](https://brown.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=89bf20d1-a752-4135-8803-b2fe01241541\&start=2018.9865739013337)

### Reproducible Research with Containers and R | 11:00 - 12:00 EDT

This session will cover the use of several R packages that can aid in making your research reproducible, as well as the use of docker/apptainer images to package applications and their dependencies ensuring software consistency across users/platforms.

[notebook](http://ccv.jupyter.brown.edu/hub/user-redirect/git-pull?repo=https%3A%2F%2Fgithub.com%2Fcompbiocore%2Fccv_bootcamp_Reproducibility_R\&urlpath=lab%2Ftree%2Fccv_bootcamp_Reproducibility_R%2Freproducibility_in_R.ipynb\&branch=main) | [repo](https://github.com/compbiocore/ccv_bootcamp_Reproducibility_R) | [video](https://brown.hosted.panopto.com/Panopto/Pages/Viewer.aspx?id=89bf20d1-a752-4135-8803-b2fe01241541\&start=3646.775200045333)
{% 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/schedule/day3.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.
