Back to Course HomePage


Part I: Computational Tools

These initial lectures introduce you to a diverse set of computational tools for word processing (Markdown, Typora, LaTeX), computing and writing scripts (RStudio, Plain-Text Editors), and editing and wrangling data files (Regular Expressions). Two of the most important skills we will cover are how to use git and Github for maintaining data files, scripts, and webpages, and how to use the bash shell to carry out git commands from the terminal.

Lab Meeting 2 (10 February 2021)


Lab Meeting 3 (17 February 2021)


Lecture 6: Typora & LaTeX (18 February 2021)

Part II: Programming Foundations

These lectures cover basic programming in R, including core concepts about atomic vectors, data types, logical and relational operators, and data inputs and outputs. We also discuss best practices for creating meta-data and curating data sets for long-term storage. A bestiary of probability distributions is introduced, and we use maximum likelihood methods to estimate parameters from data. We also cover data structures, coding, and graphics for 4 basic experimental designs (regression, ANOVA, logistic regression, and contingency table analysis).

Lab Meeting 4 (24 February 2021)


Lecture 9: Matrices, Lists, Data Frames (04 March 2021)

Part III: Programming Methods

In this section, you will make the transition from being an “R user” to being an “R programmer”. We introduce user-defined functions as building blocks for functional programming, and the use of pseudocode and sourcing to break your program into logical, independent units. We then learn how to use control structure, such as if-else statement and the workhorse for loops for carrying out repeated operations. We apply these tools sweep parameters in a model, conduct randomization test, and automate the batch processing of a large number of data files.

Part IV: Advanced Topics

This section includes 3 lectures on using ggplot for exploratory and publication grapbics. Rather than focus on specialized geoms or graph types, we emphasize the grammar and syntax of ggplot, as well as common modifications of fonts, colors, symbols, and lines. One lecture on functional programming introduces the apply and map functions as efficient alternatives to using for loops. The final lecture covers advanced shell commands and methods in github for branching and amending commits, and for navigating the shell and writing custom shell scripts in bash.