For any questions or concerns about the course, please contact Cameron Payton ([email protected]) and/or John Kos ([email protected]).
Fridays, 1:00-1:50 PM
BPS 1238
This course provides a comprehensive, practical introduction to the technology behind cryptocurrency and the economy surrounding it. This course will have a heavy emphasis on Bitcoin, but will touch on other types of cryptocurrency as well (with a focus on Ethereum). This course is primarily intended to focus on the technological aspect of cryptocurrency, but we will also spend time discussing the economics of cryptocurrency.
Required:
- Bitcoin Whitepaper by Satoshi Nakamoto
Recommended:
- Mastering Bitcoin (2nd Edition) by Andreas Antonopoulos
- History of Bitcoin
- Blockchain Structure
- Proof-of-Work
- Mining, Faucets
- Wallets & Anonymity
- Politics & Regulation
- Cryptocurrency Markets, Market Caps, Investors
- Bitcoin as a Platform
- Altcoins (focus on Ethereum)
- ICO (Initial Coin Offerings)
Grades will be maintained on the CS Department grades server.
You are responsible for all material discussed in lecture and posted on the class repository, including announcements, deadlines, policies, etc.
Your final course grade will be determined according to the following percentages:
Percentage | Title | Description |
---|---|---|
20% | Quizzes | We will regularly have quizzes in class based on readings from the previous week or in-class slides/lecture. |
30% | Codelabs | Codelabs will be centered around specific aspects of cryptocurrency technology that you will implement. |
20% | Midterm | The midterm will be in exam format on topics discussed during the first half of the semester. Questions will be mostly high-level and conceptual, rather than low-level. |
30% | Final Project | The final will project will be an original Ethereum Smart Contract. Students may draw inspiration from existing Ethereum Smart Contract applications, such as voting or gambling, but must implement the contract themselves. All students will present their contracts at the end of the semester. |
Any request for reconsideration of any grading on coursework must be submitted within one week of when it is returned. No requests will be considered afterwards.
Week | Topic | Assignment |
---|---|---|
1 (8/31) | Syllabus week + Intro to Bitcoin | |
2 (9/7) | Blockchain Structure | Quiz 1, Project 1 OUT |
3 (9/14) | Proof-of-Work and Mining | Quiz 2 |
4 (9/21) | Bitcoin Transactions | Quiz 3, Project 1 DUE |
5 (9/28) | Wallets | Quiz 4, Project 2 OUT |
6 (10/5) | Anonymity | Quiz 5 |
7 (10/12) | Politics and Regulation | Quiz 6, Project 2 DUE |
8 (10/19) | MIDTERM | |
9 (10/26) | Cryptocurrency Market and ICOs | Quiz 7, Final Project OUT |
10 (11/2) | Altcoins (focus on Ethereum) and Proof-of-Stake | Quiz 8 |
11 (11/9) | Ethereum Contracts | Quiz 9 |
12 (11/16) | Non-Blockchain Cryptocurrencies | Quiz 10 |
13 (11/23) | THANKSGIVING BREAK | |
14 (11/30) | Final Presentations | |
15 (12/7) | Final Presentations | Final Project Due |
The projects are meant to get you familiar with the low-level implementation of the technology that goes into cryptocurrency. Projects will focus on simplified implementations of core concepts, such as the blockchain, wallets and transactions, and contracts. Although most of the Bitcoin core is written in C++, the projects will mostly be implemented in Java for simplicity. The final project will be in Solidity, Ethereum's Smart Contract programming language.
We will interact with students outside of class in primarily two ways: in-person during office hours and piazza. Email should only be used for emergencies and not class related questions (e.g., homework).
Instructor:
Dr. Jonathan Katz - [email protected]
TA(s):
Cameron Payton - [email protected]
- Office Hours: TBD
John Kos - [email protected]
- Office Hours: TBD
See the section titled "Attendance, Absences, or Missed Assignments" available at Course Related Policies.
See the section titled "Accessibility" available at Course Related Policies.
Note that academic dishonesty includes not only cheating, fabrication, and plagiarism, but also includes helping other students commit acts of academic dishonesty by allowing them to obtain copies of your work. In short, all submitted work must be your own. Cases of academic dishonesty will be pursued to the fullest extent possible as stipulated by the Office of Student Conduct.
It is very important for you to be aware of the consequences of cheating, fabrication, facilitation, and plagiarism. For more information on the Code of Academic Integrity or the Student Honor Council, please visit http://www.shc.umd.edu.
If you have a suggestion for improving this class, don't hesitate to tell the instructor or TAs during the semester. At the end of the semester, please don't forget to provide your feedback using the campus-wide CourseEvalUM system. Your comments will help make this class better.