30% | Participation¶
The participation grade is divided into three parts: a student group live demo, peer discussion ("I like, I wish, I wonder"), and continuous engagement.
Live Demo¶
Students are expected to perform a Live Demo in their groups that helps the class understand a specific programming or statistical concept applied to social science research.
A live demo is a hands-on, interactive demonstration illustrating how to leverage open source tools (Python, pandas, Altair, statsmodels, Typst) with practical, coded examples.
Live Demo Requirements¶
- Duration: The live demo lasts 10–15 minutes.
- Handout: The presenting group must prepare a handout (an interactive Python script
.pyor Typst document) and share it on the class WhatsApp group before class. - Frequency: There are 4 student groups. Each group presents twice during the year (once in Semester 1, once in Semester 2).
- Preparation & Direction: Groups can book a meeting with the instructor ahead of their demo to get direction, review code examples, and refine their presentation plan.
- Structure:
- Introduce the problem or concept (why does this matter in social science?).
- Walk through executable, clean code step-by-step.
- Conclude with a practical takeaway for the class's research projects.
Live Demo Schedule¶
| Session | Group | Topic & Focus | Handout Example |
|---|---|---|---|
| S2 | Group 1 | Typst for Scientific Writing | Syntax, document structure, .bib citations, exporting PDF |
| S3 | Group 2 | Python & Pandas Data Structures | Variables, lists, dictionaries, Series & DataFrames basics |
| S4 | Group 3 | Data Acquisition & Column Inspection | Reading ANES data, .shape, .info(), .describe(), column subsetting |
| S5 | Group 4 | Filtering Survey Rows & Univariate Charts | Boolean masks, .value_counts(), distributions with Altair |
| S8 | Group 1 | Survey Data Recoding & Variable Creation | Handling -9/-8/DK codes to NaN, masks vs. .replace(), binary indicators |
| S9 | Group 2 | Subgroup Analysis & Cross-Tabulations | groupby(), comparing group means, pd.crosstab(..., normalize='index') |
| S10 | Group 3 | Linear Regression & Categorical Predictors | Specifying DV ~ IV, adding C(category), interpreting slopes, reference levels & R² |
| S11 | Group 4 | Multiple Regression Specifications & Exporting Tables | Models with controls (Baseline → Demographics → Full model), make_table for Typst |
Back-Up Live Demo Themes¶
If a scheduled live demo requires substitution or if a group wishes to explore an alternative topic with instructor approval, groups may select from the following backup themes:
- Semester 1 Backup: Visualizing Relationships with Altair
Bivariate charts, scatter plots, grouped bars, color/size encodings, and interactive tooltips for exploratory analysis. - Semester 2 Backup: Visualizing Regression Models & Substantive Findings
Plotting regression coefficients with 95% confidence intervals (plt.errorbar), predicted margins, and communicating substantive findings in Typst. - Cross-Tabulations & Survey Margins
Computing row and column percentages withpd.crosstab(..., normalize='index')to analyze demographic differences in political behavior. - Navigating ANES Codebooks & Survey Weights
Understanding questionnaire skip patterns, reading ANES documentation, and applying survey sampling weights.
Peer Discussion¶
Immediately following each live demo, the instructor randomly selects a peer student group to open the discussion. The selected group provides constructive feedback using the "I like, I wish, I wonder" framework:
- I like: What worked well? Which explanation or code snippet was especially clear?
- I wish: What could be improved, clarified, or expanded for practical use?
- I wonder: What open questions or new applications does this demonstration inspire for our projects?

Continuous Engagement¶
Students are expected to actively engage during class meetings, participate in hands-on lab exercises, and contribute to the course WhatsApp community (asking questions, sharing tips, and troubleshooting code with peers).