CS 104: Topics in Introductory Programming: Social Inquiry

Professor: Sorelle Friedler

Topics in Introductory Programming is designed to give a general introduction to programming as related to data analysis across many fields. Students will be introduced to standard introductory programming imperative and object oriented techniques as well as data structures necessary to create efficient and understandable algorithmic solutions to problems. Data for analysis will be drawn from a single discipline that will vary per semester, forming a theme for topical study. Topical investigations will include the ethics of data use in that field, how data is commonly generated and used, and implementation of important discipline-specific algorithms.

Topics in Introductory Programming: Social Inquiry is designed to give an introduction to programming with a focus on data analysis and ethical considerations for social inquiry.

Syllabus Slides How to write documentation


The course repository can be found at https://github.com/sorelle/dataintrocourse. Students should all have a copy of this repository already in their home directory on the CS lab computers and should use that to modify and submit assignments.

Labs make up a major and important portion of the work for this course. For due dates, please see the calendar below. While some are given in advance, modifications may be made throughout the semester (including changing, cutting, or adding other labs), so any work done in advance is at your own risk. Labs will be officially distributed one or two weeks before their due date.

Labwork should be done on the computers in the computer science teaching lab (KINSC H110) either in person or by logging in remotely. We will help you learn how to login and access the lab during your first lab session. You may also find the following documents useful:

There are also some resources on Python conventions that you might find useful once you've learned the basics in class:

Course Calendar

All course times, lab due dates, and office hours are listed on the calendar below as well as on the syllabus above. In addition to the listed office hours, lab monitors are available for help in KINSC H110 every Sunday - Thursday from 7-11pm.

Class Google Calendar

About this course

If you are a professor who would like to use these course materials, contribute to them, or have access to further private materials (e.g., the pptx version of the slides or the labs key) please contact Sorelle Friedler.

This course was developed with the support of the Data & Society Research Institute and the following thoughtful folks helped directly with its development:

Many thanks to all!