CS 359B · Spring 2018
This class will help you build fluency with blockchain application development. You will engage hands-on in the design, implementation and evaluation of decentralized applications on cryptocurrency platforms, such as Ethereum, NEO, or QTUM. Along the way, you’ll build your own useful, large-scale dApp.
Watch final student presentations.
Everyone is welcome to join the class' mailing list and Slack on daapp development.
This project-based class focuses on understanding the elements of blockchain application development. Students will learn methods to design, implement and evaluate programs on fault tolerant cryptocurrency systems. Such systems could be viewed as a giant global slow distributed computer with public storage that can communicate to the real world through oracles. Alongside lectures, there will be a quarter-long project where students design, implement and evaluate a novel distributed application on a modern blockchain, such as the ones of the Ethereum or NEO cryptocurrencies. The Bitcoin blockchain will be also briefly discussed as background knowledge.
Below is the syllabus of the class in a calendar formal. Sing in for more information on the class and the projects.
Week | Monday | Wednesday |
---|---|---|
1 |
April 2Blockchain & Bitcoin Class intro & fundamentals lecture slides HW #0 (landscape research) out |
April 4Decentralised applications Dapps landscape lecture Analysis of a dapp (Fabiano Pereira Soriani, original developer, CryptoKitties) Studio 1: dApps landscape presentations Studio 2: In-class brainstorm HW #1 (project idea pitches) outHW #0 (landscape research) due |
2 |
April 9Ethereum & NEO Platforms Ethereum VM slides NEO Platform (Da Hongfei, co-founder, NEO) Tooling (Andy Milenius, MakerDAO CTO) |
April 11Studio: Project idea brainstorm (ideas + feedback) QTUM Platform QTUM VM (Patrick Dai, QTUM founder) HW #1 (project idea pitches) outHW #2 (project proposals) out |
3 |
April 16Project proposals Studio: Project proposals (presentations + feedback) HW #2 (project proposals) due |
April 18Ethereum Development Ethereum VM, Solidity 1, development tools slides Projects and teams finalized HW #3 (CardinalToken) outHW #4 (project functionality & milestones) out |
4 |
April 23Solidity #1 Solidity 2 HW #3 (CardinalToken) due |
April 25Project design Studio: Mockups (presentations + feedback) HW #4 (mockups) dueHW #5 (breaking ground) out |
5 |
April 30Data for dapps Oracles (Joey Krug, Augur founder) IPFS (Juan Benet, Protocol Labs founder and CEO HW #5 (breaking ground) due |
May 2Dapp architecture MyEtherWallet (Kosala Hemachandra, MyEtherWallet co-founder and CEO) CryptoKitties (Dieter Shirley, CryptoKitties CTO) |
6 |
May 7Dapp privacy Privacy (Benedikt Bünz, Stanford PhD student) Oracle design (Xiahong Lin, Bodhi) |
May 9User identity & dapp scalability The Road to Utopia - Identity & Blockchain (Zhiwei Li, security researcher) Discreet log contracts (Tadge Dryja, DCI researcher) HW #6 (midterm) out |
7 |
May 14Midterm demos Studio: Midterm demos (presentations + feedback) HW #6 (midterm) due |
May 16Smart contract security & solidity #2 Solidity 3 slides Smart contract security (Nemil Dalal, CryptoFin founder) |
8 |
May 21DAOs & Off-chain protocol scalability DAOs (Hudson Jameson, Ethereum Foundation) Fault tolerance for dapps (Matthew Gould & Braden Pezeshki, BuyethDomains) Off-chain protocols (Christian Decker, Blockstream) |
May 23Advanced topics Tools and deployment 2 slides dApp security (Florian Tramèr, Stanford PhD student) Threshold relay & probabilistic slot consensus (Dominic Williams, Dfinity president & chief scientist) |
9 |
May 28Memorial day: no class |
May 30Putting it all together Recap slides HW #7 (smart contract security) out |
10 |
June 4Next steps after class Panel |
June 6Final Presentations Wrap-up Studio: Final presentations (presentations + feedback) |
Login here and email the instructor if you want access to the slides, HW and other teaching matterial.