Getting into Blockchains is hard!

There is a whole lot of hype around Blockchain. But how does it work? What is a smart contract? Why is everyone so excited about DAOs? And what does all of this have to do with cryptocurrencies?

And most importantly, how do you program on a blockchain network?

We have spent the past few months developing this 9-week in-depth online course to teach developers about Blockchain and how to develop decentralised applications, or DApps, on the Ethereum platform.

About This Course

This online course teaches software engineers the basics of blockchain technology as well as languages and tools required to build decentralised applications on the Ethereum platform. This course is aimed at experienced programmers, introducing everything needed to understand the technology, write smart contracts and build applications that interact with them.

Participants will learn about the Ethereum platform, the programming language Solidity, how to use web3 and the Truffle framework and lastly, how to tie everything together. Step by step, participants build a fully functioning decentralised application, deploy it and test it.

This course was developed in response to the daily requests we receive for expert developers in blockchain projects.

Support & Interaction

For the duration of the course participants will be provided with a high level support by instructors. participants are able to collaborate and exchange experiences within their learning group through different communication channels on slack.

Certification

B9lab awards certificates to participants who show very strong ability and understanding during the course. The pass mark is fairly high and requires an average of 80% or more. Successful participants receive a certificate that is verified on the Ethereum platform.

Exam and Timeline

At the end of the 9 week course, participants can decide on the date of their exam within a 12 week window.

Requirements

We need you to have a recent computer with at least 8 GB of RAM and 50 GB of free hard-disk space. It may be a MacOS, a Windows or a Linux computer. You may get away with just 4GB of RAM only if your computer is on Ubuntu.

Recommended experience

1 year of active development experience with an object-oriented programming language

Experience with JavaScript,HTML, CSS, git and Linux.

Workload

We estimate that you will have to spend between 4-6 hours per week on the sections and homework, if you are planning to take the certificate route.

The course includes 9 sections. We will be introducing a new section every week.

Course Syllabus

Blockchain Foundation

The course covers the very basics of blockchain technology, from data structures to live projects. Serves as both a reminder for participants who know the basics and a clear introduction for those who don't.

What is a blockchain?

What are transactions and blocks?

How do P2P systems operate?

The most prominent consensus mechanisms

Difference between private, consortium, and public networks

What does the data structure look like?

How do Smart Contracts work?

What is the Ethereum Virtual Machine?

What is a Hash?

How do public/private keys work?

What is a Merkle tree?

What is the double-spend problem?

Ethereum Basics

The window into any blockchain network is the node. This course teaches students how to run a node and how to install, configure and use the most common Ethereum clients.

The Ethereum ecosystem, DApps and DAOs

What is Mist and how does it work?

What is Ether, an account, a Faucet?

Compile, deploy and instantiate contracts

Configuring, running and working with the go-ethereum client

Account management and mining

Understand the different stages of a contract deployment

How to interact with a contract once deployed?

What does the setup process for a private network look like?

Solidity

The most prominent language used for the development of smart contracts is Solidity. The course covers all aspects from value types and inheritance to more exotic features and optimisation.

Contract classes, Functions and conditionals

Inheritance & abstract contracts

Libraries

Types & Optimisation

Global Variables

Debugging

Web3 & Truffle

The toolkit to aid development of decentralised applications is growing. This course introduces the two most currently relevant and covers everything from installation and setup to custom configuration and scripting.

Building an interface to interact with a smart contract

Setting up event-driven interfaces

Adapting Truffle’s default behaviour

Write functional tests for smart contracts

How to manually test contract functionality?

Instantiate web3 and communicate with a contract from an HTML page

Use client side signing and remote nodes for light DApps

How does web3 and truffle work with Angular.js?

Project Work

This course will guide you through the development of a sophisticated decentralised marketplace, including a smart contract backend system and a full frontend.