MPCS 56600 Introduction to Blockchain (Summer 2022)

Section 1
Instructor(s) Shacklette, Mark (jmshackl)
Location Online Only
Meeting Times Monday 4:10pm - 6pm
Fulfills Elective

Syllabus

*Please note: This is the syllabus from the 2021/22 academic year and subject to change.*
 
This course is a comprehensive technical introduction to relevant topics in the wider ecosystem surrounding blockchain. Our technological focus will include substantive topics in fundamental problems that blockchain is attempting to solve (and is generating), including algorithms, cryptography, security and trust, autopoietic peer-to-peer networking, distributed ledgers, double spending, proof of work and ownership issues, decentralized applications, smart contracts, and supporting technologies.  With that said, this is not a course in economics or monetary theory, trading cryptocurrencies, nor is it a course on regulatory or legal issues surrounding blockchain, although we will touch on many of these topics throughout the course.  We will also cover broader applications of blockchain technology beyond cryptocurrencies and ICOs including use cases from finance, insurance, science, healthcare, pharmaceuticals.
 
We will cover cryptocurrencies and bitcoin and mining as well as ethereum initially as our introduction to the problem space, but will quickly move on to building our own blockchain application.  Students may leverage a number of technologies including containerization (Docker), as well as the MEAN stack or Ruby on Rails for the more ambitious.  Students may work in whatever languages they know best and make the most sense in context.  These may include Java/javascript, C++, python, ruby, C#, and others.
 
Laboratories will be offered each week to reinforce a fundamental understanding of the core topics.
 
A final student project will be delivered by teams of students targeting a specific blockchain use case of the team's choice (teams will be given options).

Course Prerequisites

Core Programming

Other Prerequisites

For MPCS students, this is an elective course and can only be taken after completion of three core classes or concurrent with third core class.

Overlapping Classes

This class is scheduled at a time that conflicts with these other classes:

  • MPCS 50101-1 -- Concepts of Programming

Eligible Programs

Masters Program in Computer Science