I teach a number of classes at the undergraduate, masters, and PhD levels. In general, I am interested in the social and technical aspects of information and communication technologies. I teach classes in the areas of Social Computing, Social Media, Information Security, Technology and Journalism, Human-Computer Interaction (HCI), and Computer Supported Cooperative Work (CSCW).
Currently Teaching (2020-2021)
- MI 250: Introduction to Applied Programming
Introduction to Applied Programming
This course is a first introduction to computer programming, designed for students who will not become professional programmers but who will need to use technical skills or interact with programmers. That is, the course helps students understand how to think about programming computers, and builds some basic skills at getting computers to do what they want them to do, without an expectation that they go on to take large numbers of future programming courses or work professionally doing programming.
Everyone can learn to program. Everyone. And understanding more about how computers work, how programmers work, and what is easy vs hard for computers are extremely useful skills. Those skills are valuable for people doing analytics, graphic design work, creating user experiences, building games, and almost anyone who works with computers as part of their job. This course tries to help students build computer programming skills that they can immediately apply to interesting problems and use in their other endeavors.
Analysis for Media
TC 985 renamed to MI 985
The replication crisis in psychology has caused many people to question much of the research in the social sciences. While there are many reasons for this crisis, a number of people are pointing at inadequate and poorly conducted statistical analysis – and particularly the emphasis on Null Hypothesis Testing – as one of the major problems. This course teaches students the foundations of many common statistical techniques in the social sciences. It emphasizes statistical and analytical techniques that hold up under scrutiny and promote high quality social scientific inquiry.
While most of the time in the course is spent conducting and interpreting common statistics like t-tests and regressions, this class focuses attention not on which statistic is being used, but instead on how the statistics provide insight into the world and can be used to make strong arguments about social scientific concepts. I emphasize concepts like thinking about how good your measurements are, understanding the units of your variables, thinking about effect sizes instead of statistical significance, using statistics to answer “how much?” questions instead of “yes/no” questions, how statistical models provide control, and how to ensure that your analysis and results can be reproduced and replicated. In doing so, I will discuss a variety of statistical tools that are used in the social sciences, including t-tests, chi-squared tests, anova, OLS regression, logistic regression, multi-level models, statistics to make causal claims, and structural equation modeling.
After completing this course, students will have a strong foundation in statistics that will allow them to conduct high-quality statistical analyses of social scientific research. This foundation should provide them with an understanding of what statistical analysis in the social sciences will be like in their careers in the future. This foundation will also prepare them to learn more advanced analytical techniques, such as big data analysis, structural equation modeling, causal analysis, time series analysis, bayesian statistics, machine learning, and econometrics.
Schedule: Every Spring, 2012-2018
Building Online Communities
TC 491, JRN 492
Students will learn how to create an online community of people focused around a specific topic, including setting up the server technology, recruiting participants, motivating contributions, and dealing with unwanted content. The class will form cross-disciplinary teams that will spend a semester creating and growing an online community. This will represent a new type of education in journalism that will bring students into new, community-driven methods of doing journalism, based more on curating content and facilitating discussion than on original, unidirectional reporting. Students in the class will be taught to apply social science and computer science research for real-world applications and how to work on collaborative, cross-disciplinary teams that include both technical and creative people as well as topic experts.
Schedule: Fall 2014, Fall 2015, Fall 2016
Methods for Understanding Users
This undergraduate class introduces students to the basics of understanding users of technology systems, with the eventual goal of creating new design ideas. We cover a number of formative HCI methods including contextual inquiry, affinity diagrams, field observations, surveys, and diary studies. This class also introduces students to careers in HCI.
Schedule: Fall 2016, Fall 2017, Fall 2018, Fall 2019
Server Side Web Development
TC 449, TC 359
This undergraduate class teaches the basics of server-side web application development using Ruby and the Rails framework. By the end of the class, students will be able to develop and deploy a modern web application with both server-side programming and client-side displays, including persistent data storage and dynamically generated webpages. This is a programming class, but does not presume that the student has much programming background; an understanding of basic world wide web technologies such as HTML is required.
Schedule: Spring 2010, Spring 2011, Spring 2012, Fall 2012, Spring 2014
Large Scale Data and Exploratory Data Analysis (Big Data)
This special-topics class is a doctoral level methods class that looks at doing research using large quantities of real world data. We will cover a number of topics throughout the semester, mostly focusing on developing research skills to do this type of research. We will cover how to find and collect large samples of data, how to process, parse, munge, and store that data in a database. And then we will learn how to analyze this data and why the analysis is different than the analysis of more traditional data like that from experiments.
Schedule: Fall 2011, Fall 2013
The Future of News / Social Media News and Information
JRN 492, JRN 892, JRN 821
This special topics class (which is now a required masters class) is at least as much about the future of journalism as it is about computing technology. With a large majority of Americans using at least one, and often more than one, computer on a daily basis, computers have fundamentally changed the way we produce and consume journalism. From speeding up the news cycle to changing the way news is delivered to publicly and globally commenting on news stories, consumers have used computing technology to change their relationship with the news. And at the same time reporters and journalists have found equally valuable used for computers, from improved workflow to better sources to analyzing big data.
This class is about all of these changes. In this class, we will explore and discuss how technology has evolved, and how the field of journalism has (in the past) and can (in the future) use that technology to improve. There will be a lot of discussion amongst the class about ways that we can use these technologies to improve our reporting. Both undergraduates and graduate students are welcome.
Schedule: Spring 2011, Spring 2013, Spring 2015, Spring 2016
Information Networks and Technology
This masters level class covers the basics of telecommunications technology: how does information reliably get from point A to point B in today’s world? We cover physical transmission media, the OSI 7-layer model of responsibility, and many different network protocols. We put a particularly strong emphasis on understanding how these technical details impact telecommunications businesses and all kinds of business decisions.
Schedule: Fall 2010