Courses dedicated to blockchain
A number of the courses listed below have been taught multiple times. The date lists the most recent iteration of that course.
Currently Being or To-Be Taught in 2020
Foundations of Blockchains and Distributed Consensus- Fall 12 units
Instructor: Elaine Shi (Electrical and Computer Engineering, Computer Science, CyLab)
In this course, you will learn the mathematical foundations of distributed consensus as well as how to construct consensus protocols and prove them secure. We will motivate distributed consensus with a modern narrative, and yet we will cover the classical theoretical foundations of consensus. We will cover both classical, permissioned consensus protocols, as well as modern, permissionless consensus protocols such as Bitcoin. Prerequisites: This is a Ph.D.-level course. We require knowledge of undergraduate-level discrete mathematics, probability, and algorithms (or equivalent). Please refer to https://www.cs.cmu.edu/csd-
Cryptocurrencies, Blockchains, and Applications - Spring, 12 units
Instructor: Nicolas Christin (Engineering & Public Policy, Institute of Software Research, CyLab)
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.
Developing Blockchain Use Cases - Spring, 6 units
Instructors: Vipul Goyal (Computer Science, CyLab), Mike McCarthy (Heinz Information Systems), Ariel Zetlin-Jones (Tepper, CyLab)
Blockchains, or distributed ledger and consensus technologies, hold tremendous promise for improving markets and organically handling private, secure data. As CMU develops its own blockchain and token---CMU Coin---a central concern is to determine the set of applications that such technology would be most useful for. This course is designed for students to propose and, potentially, develop applications or use cases for a campus blockchain. The course begins with a brief introduction to blockchain using Bitcoin as an example of a blockchain protocol. We will examine the market failure Bitcoin was intended to resolve as well as the role of cryptography and distributed systems in enabling this new technology to create societal value. The course will go on to discuss the boundaries of the role of cryptography in blockchain. Next, we will use these tools to evaluate existing, real-world blockchain use cases with an eye towards developing our own applications of these emerging technologies. Along the way, we will learn practical development skills in distributed ledger technologies to understand blockchain programming and application development. Finally, students will propose their own blockchain use cases for CMUs own proprietary blockchain.
Bitcoin and Cryptocurrencies - Spring, 6 units, CMU Africa
Instructors: Martin Saint (Rwanda, Kigali)
This course enables students to understand the complete blockchain and cryptocurrency ecosystem from users, to miners, to merchants, to industries. Students will understand the underlying distributed ledger technology, cryptography applications, distributed computing, and how they can apply them to other domains. They will understand the future trends in blockchain and cryptocurrencies from a business and policy perspective. Through an understanding of blockchain, students will learn about cryptography and best practices for cryptographic applications.
Blockchains in Industry - Spring, 3 units, CMU Qatar
Instructor: Divakaran Liginlal (Dietrich Information Systems, Doha)
Industry experts characterize blockchains as breakthrough technology that has the same transformative power as that of the Internet. Blockchains have the potential to solve a variety of problems that benefit from a decentralized model of trust. This course will help students understand fundamental blockchain concepts and develop industry case studies of blockchain applications to finance, insurance, energy, healthcare, real estate, etc.
Introduction to Cryptography - Spring, 12 units
Instructor: Vipul Goyal (SCS)
This course is aimed as an introduction to theoretical cryptography for graduate and advanced undergraduate students. We will cover formal definitions of security, as well as constructions of some of the most useful and popular primitives in cryptography: pseudorandom generators, encryption, signatures, zero-knowledge, multi-party computation, etc. In addition, we will cover the necessary number-theoretic background.
Blockchain Fundamentals - Summer, 6 units, CMU Australia
Instructor: Riaz Esmailzadeh (Heinz Information Technology, Adelaide)
This class will be a deep-dive into blockchain technology. We will discuss the fundamental cryptographic under-pinnings of the technology as well as different consensus mechanisms currently available. Well discuss both single-purpose blockchains such as Bitcoin as well as general-purpose implementations. Well discuss govern-ance of blockchain technology and related challenges, as well as legal challenges and concerns. This course will also provide an overview of blockchain programming, highlighting both existing challenges and specific nu-ances in blockchain programming. Students should leave the class with a better understanding of what block-chain technology is, what types of problems are best suited for blockchain-based solutions, as well as a more thorough understanding of the impact that blockchain technology is having across the board.
Blockchain Fundamentals - Fall 2019, 6 units
Instructors: Eliezer Kanal (Software Engineering Institute) and Eugene Leventhal (Heinz Public Policy)
This class will be a deep-dive into blockchain technology. We will discuss the fundamental cryptographic underpinnings of the technology as well as different consensus mechanisms currently available. We'll discuss both single-purpose blockchains such as Bitcoin as well as general-purpose implementations. We'll also discuss the architecture of blockchain systems, as well as governance mechanisms used in blockchain management. As blockchain does not exist in a vacuum, there will be discussion on a number of related topics as well, including blockchain and the law, economics, and finance. Additionally, this course will also provide an overview of blockchain programming, highlighting both existing challenges and specific nuances in blockchain programming. Students will leave this class with a better understanding of what blockchain technology is, what types of problems are best suited for blockchain-based solutions, as well as a more thorough understanding of the impact that blockchain technology is having across the globe.
Blockchain and Cryptocurrencies - Spring 2019, 12 units
Instructor: Vipul Goyal (School of Computer Science, CyLab)
The course will primarily consist of discussing a set of research papers published in Cryptography conferences over the last few years. Focus will be on understanding the key ideas and identifying cool new directions or problems for future. The students will be required to read up a paper and give a presentation in the class. The papers will be selected so as to minimize the required background.
Courses that touch on blockchain
Currently or To-Be Taught in 2020
Distributed Systems for Information Systems Management - Spring, 12 units
Instructor: Mike McCarthy (Heinz)
With the emergence of the internet as a computing platform, distributed applications are being widely deployed by organizations. Understanding the principles and the technologies underlying distributed computing and distributed systems design is increasingly important. Examples of technologies supporting such deployment include the JEE architecture and the .Net architecture and Web services. This course has three major objectives. First it is designed to introduce students to the principles underlying distributed computing and the architectural design of distributed systems. Second it aims to provide students with the opportunity to exercise these principles in the context of real applications by having the students develop and use technologies such as RESTful Web services, JEE application servers, Hadoop, cryptographic protocols, mobile platforms and blockchains. Finally it seeks to endow students with the capacity to analyze, design, evaluate, and recommend distributed computing solutions in response to business problems.
Emerging Technologies and the Law - Spring, 12 units
Instructor: Michelle Grise (Institute for Politics and Strategy)
This course provides a forum for students to consider the relationship between key emerging technologies and the law. In the first half of the course, each session will be dedicated to discussing the legal implications of a particular emerging technology, including autonomous vehicles, artificial intelligence, cryptocurrency and blockchain technology, stem cell therapy, quantum computing, and 3D printing. In the second half of the course, we will turn to overarching themes at the intersection of law and technology, including emerging technologies and the law of armed conflict, policing and surveillance, intellectual property, and privacy. Throughout the course, students will be asked to consider whether existing legal frameworks are sufficient to address issues related to emerging technologies.
Large-Scale Social Phenomena - Fall, 12 units
Instructor: Simon Dideo (Dietrich Social and Decision Sciences)
A special seminar devoted to new ideas and new methods in the study of human behavior on the very largest scales. Emphasis on data science approaches and the analysis of archives, historical and contemporary, as a new arena for the development of new theories and the testing of old ones. Well consider both cognitive models of the individual, and the institutions and social organizations people have created in responsefrom the parliaments of the 18th Century to 20th and 21st Century technologies such as branching bulletin board comment threads and the blockchain. A major goal of our seminar is for you to ask, and answer, a non-trivial research question with the view towards a peer-reviewed publication. Well use class discussion to answer questions about the reading and to go beyond the assigned papers to speculate, together, on new ways to test their conjectures and claims.
Managing Digital Business - Fall, 12 units
Instructor: James Riel (Heinz Information Systems)
This class will focus on two main areas to help IT leaders succeed: managing the business side of the entity including its people and processes; and managing the technical roles, innovations and implications for the digital business. From a business context, the course will focus on digital business models including eCommerce marketplaces, requirements elicitation for understanding and establishing the needs of internal and external stakeholders, understanding the roles of fulfillment in the current business environment, understanding the difference between SCM and ERP systems to determine advantages and disadvantages of each, and understanding the workings of B2B and P2P markets. From a technical context, this course will focus on current and emerging immersive technologies such as IoT, ePayment, Blockchain, and Cloud Computing. Additionally, this course will examine IT related changes in the current marketspace through the growth of Internet and mobile commerce, social networking effects on markets, Web 2.0 including recommender systems and user generated/created content (UGC/UCC), and understanding the differences and nuances of digital products and services.