Fall 2023 |
COS 350 — Ethics of computing
The course aims to help students think critically about the ethical and social aspects of computing technology and develop the skills needed to make ethical decisions when building and deploying technology. Topics include ethical foundations, political economy of the tech industry, fairness and machine learning, AI safety / AGI / alignment, AI and labor, AI and climate, social media, information security, privacy, ethics in design, digital colonialism, research ethics, professional ethics, law and policy. |
Fall 2021 |
COS 432 — Information Security
How to secure computing systems, communications, and users. Basic cryptography; private and authenticated communication; software security; malware; operating system protection; network security; web security; physical security; cryptocurrencies and blockchains; privacy and anonymity; usable security; economics of security; ethics of security; legal and policy issues. |
Spring 2021 |
COS 534 — Fairness in Machine Learning
Machine learning discovers and reproduces patterns in existing data. Thus, unthinking application of machine learning risks perpetuating societal biases including racial and gender bias. This course is about the emerging science of fairness in machine learning. Topics include: sources of bias in machine learning; methods for detecting, measuring, and mitigating bias; individual fairness, group fairness, and the tension between them; data modeling versus algorithmic modeling;connections between fairness and privacy; bias in algorithmic decision making; bias in unsupervised machine learning; interpretability in ML and its connection to fairness. The syllabus is predominantly technical, supplemented by a few readings from social science, law, and public policy. Students take on hands-on empirical projects of their choosing. Princeton Engineering Commendation List for Outstanding Teaching. |
Fall 2020 |
COS 597E/SOC 555 — Limits to Prediction
Is everything predictable given enough data and powerful algorithms? This seminar explores that question through social science and computer science research in over a dozen domains including life trajectories of individuals, wars, weather, disease outbreaks, social media, and image classification. We aim to identify fundamental limits, learn about common pitfalls, and explore policy implications. Coursework is a mix of reading and empirical work tailored to students’ backgrounds. The course, which is for graduate students in both computer science and the social sciences, is designed to facilitate publishable student research. Co-Instructor: Matt Salganik. Princeton Engineering Commendation List for Outstanding Teaching. |
Spring 2019 |
COS 226 – Algorithms and Data Structures
This course surveys the most important algorithms and data structures in use on computers today. Particular emphasis is given to algorithms for sorting, searching, graphs, and strings. The course concentrates on developing implementations, understanding their performance characteristics, and estimating their potential effectiveness in applications. Princeton University Engineering Council Excellence in Teaching Award. |
Fall 2018 |
COS 432 — Information Security
How to secure computing systems, communications, and users. Basic cryptography; private and authenticated communication; software security; malware; operating system protection; network security; web security; physical security; cryptocurrencies and blockchains; privacy and anonymity; usable security; economics of security; ethics of security; legal and policy issues. |
Spring 2018 |
COS 534 — Fairness in Machine Learning
Machine learning discovers and reproduces patterns in existing data. Thus, unthinking application of machine learning risks perpetuating societal biases including racial and gender bias. This course is about the emerging science of fairness in machine learning. Topics include: sources of bias in machine learning; methods for detecting, measuring, and mitigating bias; individual fairness, group fairness, and the tension between them; data modeling versus algorithmic modeling;connections between fairness and privacy; bias in algorithmic decision making; bias in unsupervised machine learning; interpretability in ML and its connection to fairness. The syllabus is predominantly technical, supplemented by a few readings from social science, law, and public policy. Students take on hands-on empirical projects of their choosing. Princeton Engineering Commendation List for Outstanding Teaching. |
Fall 2017 |
Advanced Topics in Computer Science: Fairness in Machine Learning
Machine learning discovers and reproduces patterns in existing data. Thus, unthinking application of machine learning risks perpetuating societal biases including racial and gender bias. This seminar studies the emerging science of fairness in machine learning. Readings cover: sources of bias in machine learning; methods for detecting, measuring, and mitigating bias; individual fairness, group fairness, and the tension between them; connections between fairness and privacy; bias in algorithmic decision making; bias in unsupervised machine learning. Students take on hands-on empirical projects of their choosing. |
Spring 2017 |
COS IW 07 — Measuring the Societal Impact of Technology
When we create digital technologies we hope they will make the world a better place. But sometimes they have questionable societal consequences. Examples range from fake news spreading via Facebook (and its alleged impact on elections) to surreptitious tracking of shoppers in malls based on signals emanating from smartphones. In this seminar, your goal will be to identify a potential negative impact of technology, empirically study and quantify it, and devise ways to mitigate the effects. You could propose your own project or collaborate with CITP fellows or graduate researchers. Existing projects where you could collaborate include the Web Transparency and Accountability project that aims to uncover how we are tracked online, and a project that studies how machine learning systems assimilate human biases such as racial prejudices and gender stereotypes. Projects will be eligible for the Technology and Society certificate. Your work should have a core empirical component, as opposed to a purely qualitative study of the effect of technology on society. |
Fall 2016 |
COS IW 09 — Bitcoin, Blockchains, and Smart Contracts
The Bitcoin blockchain is an unprecedented public log of financial transactions — 70 gigabytes and growing quickly. It holds many secrets. Can we do a forensic analysis of well-known thefts of bitcoins, or incidents such as the Mt. Gox collapse, to discover where the money went? How anonymous are Bitcoin users? What does the wealth distribution look like? Bitcoin's blockchain also lets you build your own secure, distributed applications: prediction markets, decentralized DNS, and many more. Newer cryptocurrencies like Ethereum take this to the next level with "smart contracts." Imagine a programming language that lets you create agents that live in the cloud and can send, receive, and store money: that's Ethereum in a nutshell. This seminar will introduce you to the technology behind Bitcoin, blockchains, and Ethereum. Your projects could involve analyzing one or more blockchains, building your own applications, or anything else related to cryptocurrencies. See here for examples of what projects might look like. |
Spring 2016 |
COS 226 — Algorithms and Data Structures
This course surveys the most important algorithms and data structures in use on computers today. Particular emphasis is given to algorithms for sorting, searching, and string processing. Fundamental algorithms in a number of other areas are covered as well, including geometric and graph algorithms. The course will concentrate on developing implementations, understanding their performance characteristics, and estimating their potential effectiveness in applications. Princeton University Engineering Council Excellence in Teaching Award. |
Fall 2015 |
COS 432 — Information Security
Course goals: learn how to design a secure system, how to probe systems for weaknesses, how to write code with fewer security bugs, and how to use crypto libraries correctly. Learn to reason about and protect (or breach!) privacy, and to use your powers ethically. Main topics: basic crypto, system and network security, web security, privacy technologies, cryptocurrencies, human factors, economics, and ethics of security. |
Fall 2015 |
Bitcoin and Cryptocurrency Technologies (Online Version, Coursera)
Co-lecturers: Joseph Bonneau, Edward Felten, Andrew Miller. To really understand what is special about Bitcoin, we need to understand how it works at a technical level. We’ll address the important questions about Bitcoin, such as: How does Bitcoin work? What makes Bitcoin different? How secure are your Bitcoins? How anonymous are Bitcoin users? What determines the price of Bitcoins? Can cryptocurrencies be regulated? What might the future hold? After this course, you’ll know everything you need to be able to separate fact from fiction when reading claims about Bitcoin and other cryptocurrencies. You’ll have the conceptual foundations you need to engineer secure software that interacts with the Bitcoin network. And you’ll be able to integrate ideas from Bitcoin in your own projects. |
Spring 2015 |
Bitcoin and Cryptocurrency Technologies (Online Version, Piazza)
Co-lecturers: Joseph Bonneau, Edward Felten, Andrew Miller. To really understand what is special about Bitcoin, we need to understand how it works at a technical level. We’ll address the important questions about Bitcoin, such as: How does Bitcoin work? What makes Bitcoin different? How secure are your Bitcoins? How anonymous are Bitcoin users? What determines the price of Bitcoins? Can cryptocurrencies be regulated? What might the future hold? After this course, you’ll know everything you need to be able to separate fact from fiction when reading claims about Bitcoin and other cryptocurrencies. You’ll have the conceptual foundations you need to engineer secure software that interacts with the Bitcoin network. And you’ll be able to integrate ideas from Bitcoin in your own projects. |
Fall 2014 |
COS 597E — Advanced Topics in Computer Science: Bitcoin and Cryptocurrency Technologies
Underlying the widespread public interest in Bitcoin is an intricate balance of technology, market forces, and social norms. Bitcoin serves as an excellent case study for learning many core CS concepts — cryptography, distributed systems, game theory, programming languages, and system security. Topics: first-generation cryptocurrencies, how Bitcoin achieves decentralization, mechanics of Bitcoin, Bitcoin as a currency, mining, anonymity, community and politics, Altcoins, Bitcoin as a platform, the future of Bitcoin. The first half of the course will be "flipped:" students will watch online lectures and class time will be used for discussion. |
Spring 2014 |
COS 598B — Advanced Topics in Computer Science: Privacy Technologies
Link goes to Fall 2012–13 edition. |
Fall 2013 |
COS 432 — Information Security
Security issues in computing, communications, and electronic commerce. Goals and vulnerabilities; legal and ethical issues; basic cryptology; private and authenticated communication; electronic commerce; software security; viruses and other malicious code; operating system protection; trusted systems design; network security; firewalls; policy, administration and procedures; auditing; physical security; disaster recovery; reliability; content protection; privacy. |
Spring 2013 |
COS 226 — Algorithms and Data Structures
Co-instructor: Josh Hug. This course surveys the most important algorithms and data structures in use on computers today. Particular emphasis is given to algorithms for sorting, searching, and string processing. Fundamental algorithms in a number of other areas are covered as well, including geometric and graph algorithms. The course will concentrate on developing implementations, understanding their performance characteristics, and estimating their potential effectiveness in applications. |
Fall 2012 |
COS 597D — Advanced Topics in Computer Science: Privacy Technologies
Numerous privacy-enhancing technologies have been developed in the last few decades, often utilizing powerful math and algorithms. The results have been mixed — some have been successful while others have seen little adoption despite much hype and promise. In this course we will study privacy technologies, their uses and limitations, the reasons for their success and failure, and think critically about their place in society. More broadly, we will also try and understand the implications of ubiquitous data collection, aggregation and profiling. On the technical end we will study topics like cryptography, differential privacy and anonymity (including Tor and Bitcoin). On the other hand we will see what scholars from the fields of human-computer interaction, law, economics, etc., as well as journalists and even sci-fi authors have to say about privacy technologies. Some of these papers include discussions of topics as diverse as 19th century railroads and piracy (the nautical kind!) |
Fall 2012 |
FRS 125 — Friending, Following and Finding
Primary instructor: Andrea Lapaugh. A few years ago, people found information on the Web by using a search engine (usually Google). Enter the social networks. Online social networks, Facebook in particular, have become primary destinations for many Web users. Now, we use social networks as well as search engines to find information, especially information where opinions matter. Social networks hold a wealth of information about users and behaviors, which can be of great value to search engines as well as other online applications. This seminar will explore how we obtain information in the age of the online social network. We will consider how classic Web search technology works, and the great achievements and failures of the technology. We will examine what social networks can tell us and how these “social signals” are being used to enhance our ability to find information, both in explicit searches and in other applications such as recommendations. We will also consider social and legal issues, such as privacy, and the economics of search engines and social networks. We will assume no prior knowledge of computer science and technology; the goal is to understand the high-level technological ideas and their importance. We will explore issues through reading selected articles and discussion. The work of the course will include both experimentation with technology and writing. |