Courses in Societal Computing

Interested in taking a course in Societal Computing? Here you will find a complete listing of all Societal Computing courses taught within the program here at Carnegie Mellon. Please note that not all courses are taught every semester, so it is important to check The Hub before making any future course of study plans.

Advanced Topics in Machine Learning and Game Theory

Course Number(s): 17-599 / 17-759 / 17-951

This course is designed to be a graduate-level course covering the topics at the intersection of machine learning and game theory. Recent years have witnessed significant advances in machine learning and their successes in detection, prediction, and decision-making problems. However, in many application domains, ranging from auction and ads bidding, to entertainment games such as Go and Poker, to autonomous driving and traffic routing, to the intelligent warehouse, to home assistants and the Internet of Things, there is more than one agent interacting with each other. Game theory provides a framework for analyzing the strategic interaction between multiple agents and can complement machine learning when dealing with challenges in these domains. Therefore, in the course, we will introduce how to integrate machine learning and game theory to tackle challenges in multi-agent systems

Course Syllabus

Artificial Intelligence Methods for Social Good

Course Number(s): 17-737 / 17-537

This course is designed to be a graduate-level course covering the topics at the intersection of machine learning and game theory. Recent years have witnessed significant advances in machine learning and their successes in detection, prediction, and decision-making problems. However, in many application domains, ranging from auction and ads bidding, to entertainment games such as Go and Poker, to autonomous driving and traffic routing, to the intelligent warehouse, to home assistants and the Internet of Things, there is more than one agent interacting with each other. Game theory provides a framework for analyzing the strategic interaction between multiple agents and can complement machine learning when dealing with challenges in these domains. Therefore, in the course, we will introduce how to integrate machine learning and game theory to tackle challenges in multi-agent systems

The rapid advance in artificial intelligence (AI) has opened up new possibilities of using AI to tackle the most challenging societal problems today. This course brings together a set of advanced AI methods that allow us to address such challenges and promote social good. We will cover a wide range of topics in AI, including:

Search, Planning, and Optimization [OPT]: planning and scheduling, convex optimization, mathematical programming;

Multiagent Systems [MAS]: computational game theory, mechanism design, human behavior modeling;

Machine Learning [ML]: classification and regression, clustering, probabilistic graphical models, deep learning, reinforcement learning.

In addition to providing a deep understanding of these methods, the course will introduce which societal challenges they can tackle and how, in the areas of (i) healthcare, (ii) social welfare, (iii) security and privacy, (iv) environmental sustainability. The course will also cover special topics such as AI and Ethics.

Course Syllabus

Building User-Focused Sensing Systems

Course Number(s): 17-422/ 17-722

These days we are surrounded by sensing and computation. Smart devices, such as smartphones, smartwatches, are packed with sensors. While they are already very useful devices, we have only started to scratch the surface here. The aim of this class will be to introduce the students to building and understanding smart sensing devices. The course will include discussion into contribution of various fields, including human-computer interaction, embedded computing, computer vision, distributed systems, machine learning, signal processing, security, and privacy. We will discuss how these various disciplines are coming together to form an end-to-end system that generates useful and user-actionable data.

Course Syllabus

Computational Modeling of Complex Socio-Technical Systems

Course Number(s): 17-821 / 17-621

How likely is an intervention like social distancing to save lives? Will a law legislating sanctions against social media platforms that spread disinformation stop the spread? We live and work in complex adaptive and evolving socio-technical systems where questions such as these arise constantly. Questions such as these are often only addressable through computational modeling, i.e., through simulation. Simulation models are a critical method for understanding how to adaptation and learning will change the status-quo. Computational modeling can be used to help analyze, reason about, predict the behavior of, and possibly control complex human systems of "networked" agents. Using simulation it is possible to advance theory, test policies before enacting them, and think through non-linear social effects.

This course is about computer-based simulation. Students learn how to design, analyze, and evaluate computational models. Students will gain experience with: 1) both agent-based modeling and system dynamics modeling; 2) designing and running virtual experiments with a simulation model; and 3) validating simulation models. Additional topics covered include, relation of AI and simulation, cognitive simulation models, modeling frameworks, model docking, and hybrid models.

Course Syllabus

Cryptocurrencies, Blockchains, and Applications

Course Number(s): 17-303/17-703

Cryptocurrencies such as Bitcoin have gained large popularity in recent years, in no small part due to the fantastic potential applications they could facilitate. This course will first provide an overview of the technological mechanisms behind cryptocurrencies and distributed consensus and distributed ledgers (blockchains), introducing along the way the necessary cryptographic tools. It will then focus on more advanced blockchain applications, such as smart contracts, that is, contracts written as code. Finally, the course will also introduce some of the legal and policy questions surrounding cryptocurrencies.

Course Syllabus

Dynamic Network Analysis

Course Number(s): 17-801 / 17-685 / 19-640

Who knows who? Who knows what? Who is influential? What is the social network, the knowledge network, the activity network? How do ideas, products & diseases propagate through groups and impact these networks? Does social media change the way these networks operate? Questions such as these & millions of others require a network perspective and an understanding of how ties among people, ideas, things, & locations connect, constrain & enable activity. In the past decade there has been an explosion of interest in network science moving from the work on social networks and graph theory to statistical and computer simulation models. Network analytics, like statistics, now plays a role in most empirical fields, and is a fundamental leg of data science.

Network science is a broad and multi-disciplinary field. In this class, students will: gain an appreciation of the history of the field; gain experience analyzing social, semantic, and trail based networks, gain an understanding of the difference between social networks, social media and artificial intelligence; the difference graph-based metrics for network analysis and graphical models; gain experience with the use of traditional and high dimensional network models, and the advances in this field. Applications and issues discussed will include: social media analytics, semantic networks, task networks, organizational design and teams, machine learning and network analysis, generative models, terrorism and crime, health, and fake news. Methods for network data collection, analysis, visualization, and interpretation are covered. Students produce original research in which network data is analyzed using the methods covered in the class.

Course Syllabus

Empirical Methods

Course Number(s): 17-803

Empirical methods play a key role in the evaluation of tools and technologies, and in testing the social and technical theories they embody. No matter what your research area is, chances are you will be conducting empirical studies as part of your research. Are you looking to evaluate a new algorithm? New tool? Analyze (big) data? Understand what challenges practitioners face in some domain? This course is a survey of empirical methods, appropriate for all computer science PhD students, including Software Engineering and Societal Computing.

This course provides an overview and hands on experience with a core of qualitative and quantitative empirical research methods, including interviews, qualitative coding, survey design, and large-scale mining and analysis of data. Students will mine and integrate data from and across online software repositories (e.g., GitHub and Stack Overflow) and employ a spectrum of data analysis techniques, ranging from statistical modeling to social network analysis.

Course Syllabus

Ethics and Policy Issues in Computing

Course Number(s): 17-200

Should autonomous robots make life and death decisions on their own? Should we allow them to select a target and launch weapons? To diagnose injuries and perform surgery when human doctors are not around? Who should be permitted to observe you, find out who your friends are, what you do and say with them, what you buy, and where you go? Do social media and personalized search restrict our intellectual horizons? Do we live in polarizing information bubbles, just hearing echoes of what we already know and believe? As computing technology becomes ever more pervasive and sophisticated, we are presented with an escalating barrage of decisions about who, how, when, and for what purposes technology should be used. This course will provide an intellectual framework for discussing these pressing issues of our time, as we shape the technologies that in turn shape us. We will seek insight through reading, discussion, guest lectures, and debates. Students will also undertake an analysis of a relevant issue of their choice, developing their own position, and acquiring the research skills needed to lend depth to their thinking. The course will enhance students ability to think clearly about contentious technology choices, formulate smart positions, and support their views with winning arguments.

Course Syllabus

Information Security, Privacy & Policy

Course Number(s): 17-631 / 17-331

The objective of this course is to introduce students to the concepts, technologies, practices and challenges associated with Information Security and Privacy, and related policy issues. The course takes a broad view of Information Security and Privacy, which includes looking at relevant business, organizational, human, legal and policy issues. In the process, students will learn what it takes to design, develop, deploy and maintain information systems, services and software products that are secure and comply with expectations of privacy. They will develop an appreciation for the multifaceted challenges associated with this space and the complex trade-offs that are often entailed in addressing these challenges in practice. The course mixes technical discussions with a wealth of examples spanning enterprise and government systems, social networking, mobile computing, the Internet of Things (IoT), cloud computing and much more.

Course Syllabus

Machine Learning and Sensing

Course Number(s): 17-428 / 17-728

Machine learning and sensors are at the core of most modern computing devices and technology. From Amazon Echo to Apple Watch to Google Photos to self-driving cars, making sense of the data coming from powerful but noisy sensors is a critical challenge. The course will aim to explore this intersection of machine learning and sensing, understand the inner workings of modern computing technologies, and design the future ones. We will cover data collection, signal processing, data processing, data visualization, feature engineering, popular machine learning tools (*e.g.,* Scikit Learn, PyTorch, TensorFlow, Weka), and some sensing technologies. We will also have three lectures to introduce deep learning. DL won’t be a significant focus of the course but will get you the right background before you dive into a more involved DL course.

Course Syllabus

Mobile and IoT Computing Services

Course Number(s): 17-781

With well over 2 billion smartphone users and estimates of close to 20 billion Internet of Things (IoT) devices (e.g. activity bracelets, smart bells, home assistants) mobile and IoT technologies are finding their way into all aspects of our lives. This transformation is powered by novel wireless and communication technologies, new sensors, AI and machine learning. Much of this technology is made available by new ecosystems that provide unprecedented levels of interoperability and allow developers to tap into rich functionality that was traditionally well beyond their reach (e.g., authentication, location tracking, voice, ML and much more). This course provides an introduction to mobile and IoT technologies while teaching students to design successful products and services by learning to evaluate design tradeoffs involving usability, security, privacy and business considerations. The course also provides an overview of future trends and ongoing research in this new and fast growing area.

Course Syllabus

Privacy Policy, Law, and Technology

Course Number(s): 17-333 / 17-733 / 19-608 / 95-818

This course focuses on policy issues related to privacy from the perspectives of governments, organizations, and individuals. We will begin with a historical and philosophical study of privacy and then explore recent public policy issues. We will examine the privacy protections provided by laws and regulations, as well as the way technology can be used to protect privacy. We will emphasize technology-related privacy concerns and mitigation, for example: social networks, smartphones, behavioral advertising (and tools to prevent targeted advertising and tracking), anonymous communication systems, big data, and drones.

Course Syllabus

Usable Privacy and Security

Course Number(s): 17-334 / 17-734 / 5-436 / 5-836 / 19-534 / 19-734

There is growing recognition that technology alone will not provide all of the solutions to security and privacy problems. Human factors play an essential role in these areas, and it is important for security and privacy experts to have an understanding of how people will interact with the systems they develop. This course is designed to introduce students to a variety of usability and user-interface problems related to privacy and security and to give them experience in understanding and designing studies aimed at helping to evaluate usability issues in security and privacy systems. The course is suitable both for students interested in privacy and security who would like to learn more about usability, as well as for students interested in usability who would like to learn more about security and privacy. Students will also work on a group project throughout the semester.

Course Syllabus