First Curriculum Discussion


#1

Goal

The goal of the first session of BUIDL Academy is to take students with web development experience and teach them all they need to know to find a job in the Ethereum ecosystem or begin contributing to the Ethereum community in a significant way.

What should be in the Curriculum?

It would be great to have a combination of instructional lectures, collaborative coding sessions (see Coding Tutorials below) and take-home projects. I’m writing this section to identify all the concepts we need to hit on.

  • Blockchain Basics - Important concepts like understanding a cryptographic hash and its properties, the underlying blockchain as a data structure, and how consensus works to create a shared state among peers in a network.

  • Understanding Ethereum - Learn how Ethereum is structured as a blockchain, how accounts and transactions work, how gas is essential to running a turing-complete machine on the blockchain and EVM basics.

  • Smart Contracts - Understanding how to write, deploy and test smart contracts. When dapps are useful and when things can be offloaded to layer two.

  • Blockchain Optimizations - Creating a merkle tree implementation, understanding why light clients are important and the general limitations to having a large shared state.

  • Layer Two - What are technologies like the Lightning Network, State Channels and Plasma and how do they work? Learn to build your own Plasma MVP implementation and spin up a testnet.

  • Independent Study - Learn about different problems that blockchain can help tackle. We want to have many tracks for understanding things like oracles, governance, decentralized exchange all through coding tutorials and take home projects.

Coding Tutorials

To start, we have many open-source coding tutorials to draw from on ChainShot. These can be consumed statically or through the classroom application which allows many students to collaboratively code together with an instructor:

  • Build a JavaScript Blockchain - Beginner Friendly. Teaches students the basics of the underlying blockchain data structure. Would be great to expand on this to create a Proof of Work mechanism. Potentially students could download resulting code and create a blockchain network.

  • Introduction to Solidity - Beginner Friendly – coming soon. The intention of this tutorial is to give an overview of all Solidity concepts to begin building.

  • Build a Solidity Escrow - Beginner Friendly, Project-Based. Students write a Solidity Escrow that has three parties: an arbiter, a depositor and a beneficiary. They also write a front-end that interacts with the Solidity Escrow. At the end of the tutorial students can download their finished project and begin building on it to hit further milestones (i.e. remove the third party by adding an option to burn the funds or create a more intuitive User Interface).

  • Build a Solidity Multi-Sig - Difficult, Project-Based. This will likely require an instructor that can keep everyone on pace. We ran a workshop in devcon this year with this tutorial and the class managed to crowdsource a working multi-sig wallet in 2 hours.

  • JavaScript Merkle Trees - Difficult, Academic. This is a tough lesson that will require an instructor who can help students out when they are stuck and ensure the class moves along. Many students will struggle with this one as it is recursive in nature. This is a good introduction into scaling and layer two technologies.

  • Minimal Viable Plasma in Solidity & JS - Difficult, Academic. This one will likely need to be worked on by students in several sessions. It is primarily esoteric as Plasma MVP is not a form of Plasma that will get any real production use. However, understanding the concepts of how the root chain interacts with the child chain and its clients will be beneficial to understanding layer two scaling. ChainShot is finishing up this one now and will likely release within the next month.

We also want to open this up to have other routes through coding tutorials. Things like our Aragon Voting Tutorial and Introduction To Vyper can be taken by students during an independent study period where the goal is to create a project that aligns with their own interests. It would be great to have more teams building open-source ChainShot tutorials that can be added to this period. For example, cryptoeconomics.study is working on their own tutorial which would be great for this period!

Discussion

What’s missing?
Is there additional awesome open-source content available?
What other platforms can we use?


Course Completion Certifcates
BUIDL Academy Design
#2

I’ve added a Hack MD document with all of this written in there.

If you have any additional resources or updates to the curriculum you’re welcome to directly update them or discuss them here!