EDUC 260B
Fundamentals of Programming

Winter 2021

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
HTML
.Rmd
Video recordings
HTML
.Rmd
Video recordings
  • TBD

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
  • Syllabus
  • From Joining data lecture:
    • Section 1: Introduction
    • Section 2: Keys
    • Section 3: Mutating joins
    • Section 4: Filtering joins
    • Section 5: Appending data
Encouraged readings
  • From R for Data Science (Grolemund & Wickham, 2016):
Problem set files
Required readings
  • From Organizing files and folders lecture:
    • Section 1: Introduction
    • Section 2: Organizing project directory
    • Section 3: Organizing R script
    • Section 4: Downloading & unzipping data
    • Section 5: readr package
    • Section 6: readxl package
    • Section 7: haven package
    • Section 8: Saving and loading R objects
Encouraged readings
Problem set files
Required readings
Encouraged readings
Problem set files
Required readings
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.