Course Expectations (and FAQ)#

This course focuses on data and model programming for computational social science.

We’ll be using the Python programming language throughout the course. Importantly: programming is a skill, like playing the guitar or salsa dancing. And skill learning requires lots of practice. That’s why the assessments in this course emphasize frequent, hands-on experience with Python.

Features of this course#

New concepts.#

Although students are expected to have basic knowledge of programming and statistics (see “prerequisites” below), you will undoubtedly encounter many new concepts in this course.

These new concepts might include: over-fitting, classification, algorithmic bias, and more.

Our hope is that the structure of the course will scaffold your learning of these concepts––with frequent exposure and hands-on practice with each topic (i.e., through weekly labs). But if you do feel overwhelmed, know that you’re not alone: other students may be in the same boat, and the teaching team is here to help!

High effort.#

This course will involve a lot of effort.

  • Start assignments early.

  • Be proactive: please ask for help if you’re stuck! If you don’t understand something, it’s likely that many other students don’t either.

  • Persevere: programming is hard, as are some of the statistical concepts discussed in this course. But again, we’re here to address questions and issues that arise––and there are also resources online, like StackOverflow.

Frequently Asked Questions#

Are there prerequisites for this course?#

Yes:

CSS 1 and choose one of the following courses: COGS 14B, MATH 11, MGT 3, POLI 30, POLI 30D, PSYC 60.

We expect that students will come into the course with Python programming experience, as well as basic knowledge of statistics and probability.

Is attendance required?#

No. Attending lecture and section is helpful but not required. I don’t want to encourage people to come to class if they’re not feeling well.

Why Python?#

First, Python is widely used, for both data analysis and software engineering.

Python Facts

In a 2021 Stack Overflow survey (N = 83K), approximately 48% of respondents worked with or wanted to work with Python.

Second, Python also has a large, active developer community. There are many open source packages for scientific computing, such as pandas (for working with data tables), seaborn (for plotting data), and statsmodels for building statistical models. This makes Python an excellent entry-point into learning to ask scientific questions from a computational, data-driven perspective.

Finally, Python is human-focused. The goal is to write clean, readable code that can be shared with others and facilitate communication.

What do I need to install?#

DataHub should have the requisite software (Python, Jupyter notebooks, and relevant Python libraries). However, if you plan to work on projects locally, i.e., not using DataHub, you’ll want to install Anaconda, which will also install Jupyter.

Why no midterms or final exam?#

From a pedagogical perspective, assessments are valuable for several reasons:

  1. As motivation for students to learn the material.

  2. As a signal to students and professors which material needs more practice/time.

  3. As a further possibility to rehearse and construct knowledge.

Because Python programming is a skill, I think that frequent labs and problem sets serve these goals much more effectively than a single midterm or final exam.

How do I access and submit assignments?#

Check out the page on DataHub for more information.