This repository contains the course material CS 4501: Cryptocurrency, which is being taught in the fall 2022 semester at the University of Virginia by Aaron Bloomfield. This repository can be found online at http://aaronbloomfield.github.io/ccc and via its github repository at https://github.com/aaronbloomfield/ccc.
Students currently in the course should view the uva/index.html (md); current students may also want to view the daily announcements.
The parts of this repository are:
- Lecture slides (md), which use reveal.js, an HTML presentation framework
- Assignments (md), both larger programming assignments and shorter tutorials or readings
- Exams (md) which contains the past exams given in this course
- Documents (md) holds various documents and references
- UVA section (md), which contains the materials that are specific to the current iteration of the course being taught at UVA
Students who complete the course will:
- Understand the theoretical aspects of cryptocurrency
- Understand the basics of blockchain in general, and the details of a selected number of blockchains
- Understand the uses of cryptocurrency and blockchain beyond that as a form of money
- Understand the policy, ethical, legal, and tax implications of cryptocurrency
- Be able to develop programs for a specific Blockchain
- Implement a fully working modern cryptocurrency
Source code: all of the source code created for this repository is released under a GPL 3.0 license. Some Solidity contract source code is included from OpenZeppelin contracts github repo, which retains its original (MIT) license.
Non source code: All non-source material is released under a Creative Commons license (CC BY-SA). Note that there are some external images that are included in some of the slides, but are not hosted in this repository; their licenses are determined by their respective owners.