Bitcoin and Other Cryptocurrencies
Switch branches/tags
Nothing to show
Clone or download
Latest commit 448dbbd Apr 26, 2018

README.md

For any questions or concerns about the course, please contact Cameron Payton (cpayton@umd.edu) and/or Neil Johnson (njohn@umd.edu).

CMSC389C: Bitcoin and Other Cryptocurrencies

Prerequisites: C- or better in CMSC250 and CMSC216

Credits: 1

Time and Location

Fridays, 2:00-2:50 PM
CSIC 3118

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. 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:

Recommended:

Topics Covered

  • History of Bitcoin
  • Blockchain Structure
  • Proof-of-Work
  • Mining, Faucets
  • Wallets & Anonymity
  • Politics & Regulation
  • Crypto 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 The final will also be in exam format and will cover topics discussed during the second half of the semester. It will not be cumulative. Like the midterm, it will also be high-level and conceptual.

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 (1/26) Syllabus week + Intro to Bitcoin
2 (2/2) Blockchain Structure Quiz 1, Project 1 OUT
3 (2/9) Proof-of-Work and Mining Quiz 2
4 (2/16) Wallets and Transactions Project 1 DUE
5 (2/23) Anonymity Quiz 3, Project 2 OUT
6 (3/2) CLASS CANCELLED
7 (3/9) Politics and Regulation Quiz 4, Project 2 DUE
8 (3/16) MIDTERM
9 (3/23) SPRING BREAK
10 (3/30) Cryptocurrency Market and ICOs Quiz 5
11 (4/6) Altcoins (focus on Ethereum) and Proof-of-Stake Quiz 6, Codelab 3 OUT
12 (4/13) Ethereum Contracts & Ethereum as a Platform Quiz 7
13 (4/20) Ethereum Contracts (cont'd) Quiz 8, Codelab 3 DUE
14 (4/27) FINAL

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.

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: Tuesdays, 2:00 - 3:00 PM in Startup Shell (387 Technology Dr.)

Neil Johnson - njohn@umd.edu

  • Office Hours: Tuesdays, 2:00 - 3:00 PM in Startup Shell (387 Technology Dr.)

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.

Thanks to the writers of this syllabus for the wording of much of this document.