We present the design and implementation of a fourth-year undergraduate computer science elective course on cryptocurrency. The course introduces the basics of cryptocurrencies and blockchains using Bitcoin. Programming distributed applications for blockchains is explored using Ethereum via the Solidity programming language. Advanced theoretical concepts are discussed, using different cryptocurrencies to demonstrate how they are implemented in practice. Cryptocurrency applications are presented, along with a responsible examination of present-day cryptocurrency scams. The assignments build upon each other, with the students implementing a web-based blockchain application by the end of the semester. The course was well received, and student feedback was positive. All of the course materials are available online under public copyright licenses.
I teach and stuff