About
This open-access book accompanies my Sociology/Criminology 3040: Quantitative Research Methods at Memorial University, which is an introduction to foundational concepts and data analysis skills in quantitative social science. It’s taught in Python and grounded in realistic quantitative data analyses that develop throughout the course.
Both the book and the course move through three big arcs that build on one another. Module 1 focuses on data fundamentals: you’ll learn to collect, clean, and explore data from the web and social surveys while developing basic Python and research computing skills through a “just-in-time” approach. Module 2 shifts to measurement and analysis, comparing three approaches to quantitative research on political attitudes, affect, and polarization. Along the way, we’ll explore foundational statistical concepts, including the nuts and bolts of association and linear regression. Module 3 extends this foundation by introducing modeling frameworks for diverse populations, multi-level contexts, and change over time.1
Content on descriptive and inferential statistics is woven throughout Modules 2 and 3. Each module spans approximately three weeks and pairs three chapters with interactive lab notebooks that integrate substantive problems (e.g., political polarization), theoretical concepts (e.g., ideological constraint), methodological challenges (e.g., confounding), and research computing skills (e.g., data processing, iterative modeling). These notebooks allow you to write code, create visualizations, and document your analytical thinking in one integrated environment. Each module concludes with an assignment that synthesizes these skills in a realistic mini-project anchored in an iterative workflow for quantitative data analysis proposed by Rohan Alexander (2023) in Telling Stories with Data.
Please note that some chapter descriptions below will change as I refine and improve the course materials. The overall structure and arc of the book will remain the same, but I may adjust the framing, level, or content of individual chapters to better suit our needs as we go.
Module 1: Data Fundamentals
(1) Learn Python by Scraping Data from the Web → (2) Non-destructive Data Processing → (3) Survey Research
Module 1 is about laying a foundation of practical skills and core concepts for collecting, cleaning, and exploring data using Python. The focus is on working with real data and learning bits of programming as you go, rather than learning programming in isolation and then applying it to data analysis later. We’ll start developing your skills in Chapter 1 with a web scraping project designed to collect aggregated data from public opinion polls conducted prior to the 2025 Canadian federal election.
In Chapter 2, we introduce a “non-destructive,” or “layered” framework for data cleaning and processing, which emphasizes the iterative nature of data work and the importance of creating reproducible workflows. We’ll assess the strengths and limitations of the web scraper we prototyped in Chapter 1 and then build an improved version that gets us closer to a clean, analysis-ready dataset. Along the way, you’ll pick up skills for working with messy data and using the storytelling framework (Alexander 2023) to organize and document your data processing steps.
Chapter 3 pivots to survey data, which is a staple of quantitative social science research. This chapter introduces key concepts in survey methodology, such as sampling, weighting, and questionnaire design, while also developing your skills in data exploration and visualization. You’ll learn how to access and work with survey data from several sources, including Statistics Canada (StatCan) and the Canadian Election Study (CES), which we’ll continue to use as a running example throughout the book.
Module 2: Exploratory Data Analysis
Module 3: Association and Regression
License
Quantitative Social Science: Core Concepts, Skills, and Stories is free to read under a Creative Commons Attribution-NonCommercial 4.0 International License. It’s a living project, meaning I’ll keep updating and improving it as we go. If you spot anything confusing or have suggestions, please email me at mclevey@mun.ca.
This is a recent update (September 2025). Previously, statistical modeling and inference content was consolidated into a dedicated module. The revised version adopts a problem-driven rather than statistical concepts-driven approach.↩︎