UMD-CS-STICs / 389Cspring19

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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:

Recommended:

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.

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

About


Languages

Language:Java 100.0%