# PBPL280 Open Source Public Policy Spring 2021 Professor [Sergio Rey](https://sergerey.org) Wednesdays 5:00-7:50 pm On-line Office Hours: Monday 3:30-4:30 pm On-line ## Overview This course offers an introduction to [open source](https://opensource.com/resources/what-open-source) tools and practices for public policy. Much of today’s world is dominated by “big data”, data science, machine learning, and artificial intelligence, and public policy is no exception. This requires that public policy students have the capacity to understand and analyze quantitative information. At the same time, there are increasing demands for openness and transparency in both the [public policy arena](https://obamawhitehouse.archives.gov/open/documents/open-government-directive) as well as in the [social sciences](https://how-to-open.science/analyze/reproducibility/). This course is designed to equip students with the skills and practices to fully engage with, and contribute to, these developments. It relies on open source software which is essential since it provides access to free, high-quality, cross-platform tools. At the same time, free availability does not necessarily translate into skill acquisition, and a key goal of this course is to flatten the learning curve for students discovering these new tools and practices. ### Organization The course is structured as a blending of a seminar and studio. In the studio component of the course, students will be exposed to open source tools (software), technologies (github, CI/CD), and practices (collaborative development). In the seminar component of the course, the literature surrounding the course project will be discussed and evaluated to shape the empirical project which will form the key focus of the second half of the quarter. ### Learning Outcomes By the end of the quarter, students will - acquire competency in using open source software and tools for their own research and public policy projects - gain experience in collaborative open source and open science best practices - apply these skill sets to contribute to an empirical social science research or public policy analysis project ## Prerequisite Previous exposure to a scripint language (Python, R, stata) and quantitative analysis at the level of [PBPL210](https://qm4pp.com/syllabus.html) are assumed. Primer materials will be provided on these areas. ## Grading ### Exercises (50%) A series of five exercises (10% each) will be assigned that provide opportunities to further develop skills in open source tooling and practices. 1. GitHub account 2. ssh 3. CV 4. Pull Request 5. Branching ### Project (50%) This course is organized as a studio in which each student will contribute to a quarter-long project that requires the application of the various open source technologies, packages, and practices that are introduced. Details on the potential projects will be provided in the first week of the quarter. ## Policies ## Schedule (Planned) ### Week 1: March 31 #### Tools and Practices - [Course Introduction](syllabus.md) - [Compute Environment](https://cgshub.space) - [Introduction to shells](http://swcarpentry.github.io/shell-novice/) #### Exercises/Project - [**Exericse 1: GitHub**](exercise1.md) - [*Project Descriptions*](projects.md) - [*Project Preferences (Due April 5 12pm pst)*](https://forms.gle/GGAvcQ5xBnAknAuL8) ------------------------------------------------------------------------------- ### Week 2: April 7 #### Tools and Practices - [Version control with git](http://swcarpentry.github.io/git-novice/) #### Exercises/Project - *Project Teams* - **[Exercise 2: Markdown](exercise2.md)** ------------------------------------------------------------------------------- ### Week 3: April 14 #### Tools and Practices - [ssh](https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh) - [Remote repositories](https://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes) - **[Exericse 3: ssh](exercise3.md)** #### Project - [Project Teams](projectteams.md) - GeoSNAP Tutorial ------------------------------------------------------------------------------- ### Week 4: April 21 #### Tools and Practices - [GeoSNAP](https://spatialucr.github.io/geosnap-guide/content/home.html) - [Download link for demo notebook](https://github.com/sjsrey/pbpl280s21/blob/master/docsrc/geosnap.ipynb) #### Exercises/Project - *Project Scoping* ------------------------------------------------------------------------------- ### Week 5: April 28 #### Tools and Practices - [Geoprocessing and Visualization with Python](https://github.com/sjsrey/pbpl280s21/blob/master/docsrc/geoprocessing_crash.ipynb) (Click the Download button on that link if the file doesn't render). - [STARS Demo](https://github.com/sjsrey/stars) ------------------------------------------------------------------------------- ### Week 6: May 5 #### Tools and Practices - *Project Studio* - [Git Collaboration](http://swcarpentry.github.io/git-novice/08-collab/index.html) #### Exercises/Project - *Project Proposal Due* - **[Out: Exericse 4: git collaboration](exercise4.md)** ------------------------------------------------------------------------------- ### Week 7: May 12 #### Tools and Practices - [Reproducibility](https://the-turing-way.netlify.app/reproducible-research/make.html) #### Exercises/Project ------------------------------------------------------------------------------- ### Week 8: May 19 - *Project Studio* - **[Out: Exercise 5: git conflicts](exercise5.md)** ------------------------------------------------------------------------------- ### Week 9: May 26 - *Project Studio* - **Exercise 5 Due** ------------------------------------------------------------------------------- ### Week 10: June 2 - *Project Studio* - ***Project Documentation Due June 4, 5pm*** - ***Project Presentation Due June 4, 5pm***