For any questions or concerns about the course, please contact Cameron Payton (cpayton@umd.edu) and/or John Kos (jkos@terpmail.umd.edu).
CMSC389C: Bitcoin and Other Cryptocurrencies
Prerequisites: C- or better in CMSC250 and CMSC216
Credits: 1
Time and Location
Fridays, 12:00-12:50 PM
CSI 2118
Course Description
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.
Textbooks
Required:
- Bitcoin Whitepaper by Satoshi Nakamoto
Recommended:
- Mastering Bitcoin (2nd Edition) by Andreas Antonopoulos
Topics Covered
- 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)
Grading
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.
Timeline
Week | Topic | Assignment |
---|---|---|
1 (2/1) | Syllabus week + Intro to Bitcoin | |
2 (2/8) | Blockchain Structure | Quiz 1, Project 1 OUT |
3 (2/15) | Proof-of-Work and Mining | Quiz 2 |
4 (2/22) | Bitcoin Transactions | Quiz 3, Project 1 DUE |
5 (3/1) | Wallets | Quiz 4, Project 2 OUT |
6 (3/8) | Anonymity | Quiz 5 |
7 (3/15) | Politics and Regulation | Quiz 6, Project 2 DUE |
8 (3/22) | SPRING BREAK | |
9 (3/29) | MIDTERM | Final Project OUT |
10 (4/5) | Cryptocurrency Market and ICOs | Quiz 7 |
11 (4/12) | Altcoins (focus on Ethereum) and Proof-of-Stake | Quiz 8 |
12 (4/19) | Ethereum Contracts | Quiz 9 |
13 (4/26) | Non-Blockchain Cryptocurrencies | Quiz 10 |
14 (5/3) | Final Presentations | |
15 (5/10) | Final Presentations | Final Project Due |
Projects
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.
Outside-of-class communication with course staff
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 - jkatz@cs.umd.edu
TA(s):
Cameron Payton - cpayton@umd.edu
- Office Hours: TBD
John Kos - jkos@terpmail.umd.edu
- Office Hours: TBD
Excused Absence and Academic Accommodations
See the section titled "Attendance, Absences, or Missed Assignments" available at Course Related Policies.
Disability Support Accommodations
See the section titled "Accessibility" available at Course Related Policies.
Academic Integrity
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.
Course Evaluations
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.