1.125
Applied Blockchain - Arch & Engr Software Systems
Tu/Th, 02:30-04:00, Rm 1-390, John R Williams, Abel Sanchez
Software architecting and design of software-intensive systems. Targeted at future CTOs who must understand both the business and technical issues involved in architecting global-scale systems. Introduces blockchain systems, consensus, scalability, governance, and the Ethereum platform. Presents modern tools and libraries for distributed computing, basic cryptography, including hashing, PKI, encryption and distributed apps. Use of cloud service APIs, containers, testing and synchronization techniques. Data cleaning and filtering, linear regression, basic machine learning algorithms such as clustering, classifiers, decision trees. Students learn problem solving in an active learning lab setting, completing in-class exercises and weekly assignments leading to a group project in blockchain. By the end of the class, students will be able to build practical blockchain applications and understand the limitations and opportunities of the technology.
Lectures
Class Information & Logistics
Course Documents
Homework 01
Lecture 01 - Introduction
Editor Setup and Configuration
Lecture 02 - Web Site and JavaScript
Section 1 - Github Introduction
GitHub Web Site and Domain Name Setup
GitHub Setup
Domain Name Setup
PS1-Due Friday 9/14 midnight
Section 1.1 - Standalone GitHub Setup
Github Setup: Mac
Github Setup: PC
Section 2 - Browser Basics
Browser Basics
PS1 Get DOM Elements
Section 3 - JavaScript Syntax Basics
ConsoleVariables
If ... Else
For Loops
Debugging Basics
Calling JavaScript from HTML
Recommended JavaScript Style
JavaScript Language Reference
Lecture 03 - JSON, AJAX, Cloud APIs
Exercises
Exercise 01 - Circles
Exercise 02 - Colors
Exercise 03 - Buses
Exercise 04 - Geophoto
Reference - Objects
Objects - Hello World
Objects: Assigning Objects to Properties
Objects: Properties with Arrays of Objects
Reference - Functions
Function Basics
Functions are Objects
Scope: Basics
Scope: Forgetting Var
Scope: Nested Functions
Functions Provide Scope
Reference - Timers
Lecture 04 - JavaScript and Data Analytics
Homework 02
Lecture 05 - Filters, Sorting, Map, Reduce
Preparation Material - Videos/Exercises
Callback Functions ExerciseforEach Callback Functions Exercise
Filter Callback Functions Exercise
Sort Callback Functions Exercise
Map Callback Functions Exercise
Reduce Callback Functions Exercise )
Mini Lecture
CallbacksLecture 06 - Node, NPM, Express
Homework 03 - Due Friday 10/05 midnight
Homework
Deploy to cloud, create daemom
Lecture 07 - Three Tiers: Client, Server, & Storage
Lecture 08 - Docker Containers and Web Sockets
Lecture 10 - Blockchain Introduction
Book - Mastering Ethereum
preface
glossary
what-is
intro
clients
keys-addresses
wallets
transactions
smart-contracts-solidity
smart-contracts-vyper
smart-contracts-security
tokens
oracles
dapps
evm
consensus
appdx-forks-history
appdx-standards-eip-erc
appdx-evm-opcodes-gas
appdx-dev-tools
appdx-web3js-tutorial
Github Book Project
Blockchain Mini Lectures
Basics
Demo
Transactions
Metamask
Data Explorer
Keys
Hashes
Exercise - Paper Wallets
Exercise - Ethereum API
Ethereum API - Using web3 & Metamask
Ethereum API
Homework 04 - Due Friday 10/12 midnight
Homework
Lecture 11 - BlockChain Technologies, hash, Merkle Trees, PKI
Exercise
Hashing, encryption and signing
PKI Example
Example
PowerPoint
Hashing, Merkle Trees
Blockchain Proof of Work
Smart Contracts
Homework 05 - Due Friday 10/19 midnight
Reference Material
Beginners Guide to raising money via Initial Coin Offerings
Tokens Generation on the Blockchain
Token Sale Models, Vitalik Buterin
Tokens and US securities law aspects
The Simple Agreement for Future Tokens
A Security Law Framework for Blockchain Tokens
The Howey Test
Homework
Write a white paper for an ICO you create - 3 pages max.
Include:
- Description of the market and the problem
- Description of the product and how it’s going to solve said problem
- Tokens: how many, why, how, when, and so on
- How the raised funds are going to be used
- The team
- The roadmap
Submit link