I am an Associate Professor in the Department of Knowledge Integration at University of Waterloo, and am cross-appointed to Sociology & Legal Studies, the School of Environment, Resources, & Sustainability (SERS), and Geography & Environmental Management (GEM). I’m also a Policy Fellow at the Balsillie School of International Affairs and a Member of the Cybersecurity and Privacy Institute at the University of Waterloo.

My primary research interests are in computational social science (especially natural language processing and other applications of machine learning), network science, affect / emotion, knowledge, and cognitive social science, political sociology and social movements and environmental sociology. I am currently leading a new research project on social influence, disinformation and deception, and polarization in political discussion networks.

My work is funded by research grants from the Social Science and Humanities Research Council of Canada (SSHRC) and an Early Researcher Award from the Ontario Ministry of Research and Innovation. On the teaching side of things, I’m especially passionate about teaching research methods and courses that integrate the social sciences and data science.

You can view my full CV here.


Doing Computational Social Science

John McLevey. Forthcoming 2021. London, Sage.
Mark Stoddart, Alice Mattoni, and John McLevey. 2020. London, Palgrave MacMillan.

Research Software

My students and I (NetLab) develop open source software for research in computational social science. Our primary focus is on (1) combining network analysis and applied natural language processing, (2) developing semi-automated methods for reviewing and synthesizing large bodies of scientific research, and (3) developing tools to make collaborative computational social science more open, transparent, and reproducible. From time to time, we also work on problems related to data collection and record linkage.


Nate - A Python package for research at the intersection of network analysis and applied natural language processing.
metaknowledge - A Python package for constructing various kinds of quantitative and network datasets from the Web of Science, Scopus, PubMed (MEDLINE), and other databases.
pdpp - A Python package simplifying principled data processing workflows.
gitnet - A Python package for constructing collaboration networks from git repositories.


The Art & Science of Learning

INTEG 120 -- Offered every fall semester

This is an introductory and interdisciplinary course on cognition, metacognition, and learning, suitable for students coming from any background. We will take a deliberately broad view of both phenomena, with an emphasis on research at the intersections of social psychology, cognitive neuroscience, sociology, and linguistics. There are three sets of related learning objectives in this course. First, you will understand how cognition and learning actually work by engaging with state-of-the-art scientific research. Second, you will begin using this research to become more intentional learners and knowledge integrators. Third, you will learn to appreciate the limits of your own individual knowledge and skills and to leverage the power of diversity and social learning. This course is just the beginning, but by the end of it, you will have at your disposal essential skills for learning, thinking, and behaving in integrative ways.

Bullshit, Bias, & Bad Arguments

INTEG 240 -- Offered every winter semester

This course is an introduction to information literacy and the art and science of spotting, understanding, and talking constructively about bullshit and other types of false claims. The course will cover a broad range of issues, such as logical fallacies, misrepresentations of science, comparisons of how true and false claims spread in mainstream and social media, and tactics used to manipulate and influence people and public debates. The course emphasizes fundamental skills that are important for countering bullshit and other false claims.

Research Methods & Design

INTEG 340 -- Offered every fall semester

This course provides an introduction to empirical research design and methods with a focus on applications in the social sciences and related fields. You will learn about core issues in research design (e.g. operationalization, sampling, ethics) that transcend specific approaches, and about a variety of techniques for collecting and analyzing quantitative and qualitative data. The course will cover both abstract and practical issues related to methodology and decision making in empirical research. By the end of the course you will be a more informed consumer and have a basic set of skills for designing and implementing your own empirical research projects. Most importantly, you will have a foundation for future learning about research design and methods.

Computational Social Science

INTEG 440/640 | SOC 440/712 -- Online course, offered every winter semester

The explosion of digital data is revolutionizing the way we learn about the world. This course focuses on the knowledge and skills necessary for doing high-quality social scientific research with digital data. Students will be introduced to the programming language Python, and will learn to collect and analyze digital data using computational methods.