EDUC 260B
Fundamentals of Programming

Promo Video

Winter 2022

This is the second course in a programming/data science sequence designed for students who do not have a programming background and perhaps never thought they would write code. (The first course in the sequence is EDUC 260A: Introduction to Programming and Data Management)

Although EDUC 260B primarily uses the R programming language, the course is organized around practical programming skills/concepts that are fundamental across modern object-oriented programming languages (e.g., Python, Javascript). Course topics include the following: organizing files, folders, and scripts; reading (importing) and writing (exporting) data; using Git and GitHub for version control and collaboration; writing functions; iteration (e.g., "loops"); conditional execution; strings and regular expressions. These general programming skills are prerequisite for flashier data science applications (e.g., web-scraping, streaming social media data, interactive maps, machine learning).

Syllabus & Resources

Class materials including the syllabus, class Zoom link, GitHub issues, GitHub teams, and course textbook are linked below.

Lecture Materials

Lecture materials are organized by topic. All lectures will have associated materials for that lecture topic linked below. This includes lecture notes (html), the R markdown file used to create the lectures (.Rmd), pre-recorded video(s), and any materials used during synchronous class sessions.

HTML
.Rmd
Video recordings (2022)
Video recordings (2021)
HTML
.Rmd
Video recordings (2022)
Video recordings (2021)
HTML
.Rmd
Video recordings (2022)
Video recordings (2021)

Readings & Assignments

Weekly pre-recorded lectures, lecture notes (html), readings, and problem sets will be posted on the class website a week in advance. Students are expected to work through the asynchronous lecture materials (videos, notes, etc.) and submit the problem set prior to the synchronous class meeting.

Required readings
Encouraged readings
  • From R for Data Science (Grolemund & Wickham, 2016):
Problem set files
Required readings
  • From ggplot lecture:
    • Section 1: Introduction
    • Section 2: Concepts
    • Section 3: Creating graphs using ggplot
    • Section 4: Customization
    • Section 5: Exporting plots
    • ggplot cheatsheet:
Problem set files
Required readings
  • From Git and GitHub lecture:
    • Section 1: Introduction
    • Section 2: Command line
    • Section 3: Overview of core concepts and workflow
    • Section 4: Getting started: Git repository
    • Section 5: Git commands: Observing your repository
    • Section 11.1: Appendix
  • Bash cheat sheet (skip creating custom commands)
Encouraged readings
Problem set files
Required readings
Encouraged readings
Problem set files
Required readings
Encouraged readings
Problem set files
Required readings
Problem set files
Required readings
Problem set files
Required readings
Problem set files
Required readings
Problem set files

Course Communication

GitHub is the industry standard platform used by programmers to collaborate on projects. We will use GitHub for course communication and discussion.

You will be using GitHub issues to post any questions you have relating to the course material. When you open an issue, please title it appropriately with the question you have and make sure to tag the instructors in your post. We encourage students to answer each other's questions as well and discuss ideas.
We will be posting all class announcements using GitHub teams. The GitHub team discussions feature allows for quick and seamless communication to all members of an organization or team – in this case, to all students with a GitHub account enrolled in the course. You will also be creating separate teams for your problem set groups.
If you have a personal question or issue, you can email the instructor or TA directly. Additionally, we are available for office hours or by appointment if there is anything you would like to discuss with us in private.