Schedule
Week | Date | Lecture | Readings | Notes | ||
---|---|---|---|---|---|---|
1 | Mon, Sep 21 | Welcome | ||||
Tue, Sep 22 | Workshop 1 | Connect via Zoom link on Learn | ||||
Fri, Sep 25 | Logic and Types in R | Exercises repo on GitHub / Exercise solutions | ||||
2 | Mon, Sep 28 | RStudio Cloud, git, & Github | ||||
Tue, Sep 29 | Workshop 2 |
Connect via Zoom link on Learn, make sure Zoom is updated to v5.3.1 |
||||
Fri, Oct 2 | Functions, attributes, & S3 | Exercise solutions | ||||
3 | Mon, Oct 5 | Generic vectors, data frames, & subsetting | Exercise solutions | |||
Tue, Oct 6 | Workshop 3 | Connect via Zoom link on Learn | ||||
Fri, Oct 9 | Tidy data & dplyr | Exercise solutions | ||||
4 | Mon, Oct 12 | tidyr | ||||
Tue, Oct 13 | Workshop 4 | Connect via Zoom link on Learn | ||||
Fri, Oct 16 | Functional programming & purrr | |||||
5 | Mon, Oct 19 | Visualization with ggplot2 | ||||
Tue, Oct 20 | Workshop 5 | Connect via Zoom link on Learn | ||||
Fri, Oct 23 | ggplot2 ecosystem & designing visualizations | |||||
6 | Mon, Oct 26 | Structure, debugging, and profiling | ||||
Tue, Oct 27 | Project 1 Office Hours | See Learn announcement | ||||
Fri, Oct 30 | Basic Programming with Matrices | |||||
7 | Mon, Nov 2 | Optimization and MLE |
|
|||
8 | Mon, Nov 9 | Programming with random variables |
|
|||
Fri, Nov 13 | Bayesian simulation and Metropolis Hastings |
|
||||
9 | Mon, Nov 16 | More Metropolis Hastings in R | ||||
Fri, Nov 20 | Gibbs Sampling in R |
|
||||
10 | Mon, Nov 23 | JAGS for Bayesian Computing |
|
|||
11 | Mon, Nov 30 | Catch up |
Syllabus
Instructors:
Dr. Colin Rundel - colin.rundel@ed.ac.uk
Dr. Simon Wood - simon.wood@ed.ac.uk
Lectures:
All lecture content for this course will be delivered in the form of online videos posted to Learn and Youtube. We will be following a regular upload schedule for each week of content and you are expected to remain current with the material throughout the semester. Our roles as instructors is to introduce you to new tools and techniques, but it is up to you to engage with and make use of them. Programming is a skill that is best learned by doing, so as much as possible you will be working on a variety of tasks and activities throughout the course.
On some weeks we will attempt to hold synchronous lectures (e.g. code along sessions) using a platform like Youtube Live - these sessions will be recorded and posted in the usual way, but you are encouraged to attend in person if you are able. This will give you an opportunity to engage with us and ask questions. Details for each session will be announced the previous week.
Workshops:
Workshops will also be held exclusively online this semester using the Zoom platform. There are four separate tutorial groups that are scheduled for different times on Tuesdays. Your personal timetable will show which group your are enrolled, you must attend the workshop you are enrolled in. If for any reason you need to change your tutorial group please reach out to the course organizer - note one off changes will not be considered.
Classroom:
Lecture
- Online - preliminry upload schedule, Mondays and Fridays midday
- Synchonous Online - Mondays, 1 pm BST
Workshop
- Tutorial Group 01 - Tuesdays, 10:30 to 11:30 am
- Tutorial Group 01 - Tuesdays, 12:10 to 13:00 pm
- Tutorial Group 01 - Tuesdays, 14:10 to 15:00 pm
- Tutorial Group 01 - Tuesdays, 15:30 to 16:30 pm
Homework and Projects:
You will be assigned larger programming tasks throughout the semester (roughly every two weeks). These assignments will be completed either in a team or individually.
Students are expected to make use of the provided git repository on the course's github page as their central collaborative platform. Commits to this repository will be used as a metric (one of several) of each team member's relative contribution for each homework.
There will be a two projects that you are expected to complete individually. Each project will ask you to complete a number of small programming tasks related to the material presented in the class. The exact structure and content of the projects will be discussed in more detail before they are assigned. You must attempt *both* projects in order to pass this class.
Teams:
For all of the team based assignments in this class you will be randomly assigned to teams of 3 or 4 students - these teams will change after each assignment. You will work in these teams during your scheduled workshops. For team based assignments, all team members are expected to contribute equally to the completion of each assignment and you will be asked to evaluate your team members after each assignment is due. Failure to adequately contribute to an assignment will result in a penalty to your mark relative to the team's overall mark.
Course Announcements:
We will regularly send course announcements via email and learn, make sure to check one or the other of these daily. We will be using Piazza to facilitate course communication, particularly around questions and answers. If you have a question first check if it has already been asked on Piazza and if not post there. If you have a question or concern you don't feel confortable posting of Piazza feel free to reach out via email.
Late work policy:
Review the University and School policy for late work here.
For the 4 team assignments late work will not be accepted, only the work you have committed and pushed to GitHub by the deadline will be marked for these assignments. The two individual projects will follow the standard University late work penalty of 5% of the maximum obtainable mark per calendar day up to seven calendar days after the deadline. If you intend to submit work late for one of these assignments you must notify the course organizer before the original deadline as well as as soon as the completed work is submitted on GitHub.
Assessment:
Your final mark will be comprised of the following.
Assignment | Type | Value | Assigned | Due |
---|---|---|---|---|
Homework 1 | Team | 12.5% | Week 2 | End of Week 3 |
Homework 2 | Team | 12.5% | Week 4 | End of Week 5 |
Project 1 | Individual | 25% | Week 5 | End of Week 6 |
Homework 3 | Team | 12.5% | Week 7 | End of Week 8 |
Homework 4 | Team | 12.5% | Week 9 | End of Week 10 |
Project 2 | Individual | 25% | Week 10 | End of Week 12 |
Textbooks
There are no required textbooks for this course, the following textbooks are recommended for supplementary and reference purposes.
- Advanced R (2nd ed.) - Wickham - Chapman and Hall/CRC, 2019 (978-0815384571)
- R for Data Science - Grolemund, Wickham - O'Reilly, 2016 (978-1491910399)
Contact Information
Office Hours:
- Dr. Colin Rundel - TBD
- Dr. Simon Wood - TBD
About this website
This site is built with Hugo and Blogdown. The theme is based on Blackburn and Hugo Conference.