Course Overview

Ethereum is the world's largest Blockchain platform for building distributed, smart contract driven Blockchain applications. At the same time, Ethereum is undergoing rapid changes to its API, consensus mechanisms and the solidity programming language used for writing smart contracts. Many online learning resources tend to become outdated very quickly. For someone wishing to learn Ethereum, it becomes quite challenging to find up to date courses and learning content. To solve this problem, we have designed this course to enable participants to learn from the latest version of the platform. We keep the course up to date by continuously updating the content whenever changes occur.

The key objective of the course is to help you go from zero knowledge of Blockchain or Ethereum, to learn all the key concepts and get started with writing Ethereum smart contracts and DApps (distributed applications) within 3 days. After taking this course, you should be able to build DApps and smart contracts for different use cases.

Audience

This course is designed for software developers, engineers, technical architects and other computer science professionals who are interested in learning about Blockchain, the Ethereum ecosystem and tools, and developing smart contracts on the Ethereum Blockchain platform.

Prerequisites

At least 2 years’ experience with any object-oriented programming language and basic knowledge of JavaScript and web development.

Participants must have knowledge of the below concepts:

  • Writing JavaScript functions with callbacks
  • Writing modern JavaScript with promises and async/await
  • Basic HTML and CSS
  • Ability to use npm to install and use JavaScript libraries
  • Basic understanding of using JSON files for configuration

Teaching Methodology

The workshop is conducted using presentations, discussions, videos, demos and hands-on labs. It is highly recommended that each participant carry a laptop with Wifi dongle (or phone hotspot) to make the best use of demos and labs in the workshop.

Duration

3 days, 9AM to 6PM

Participants Equipment and Software

Course Objectives

Business Outcomes

BO1 Identify use cases where the Ethereum Blockchain can be used.
BO2 Select the right consensus mechanism for different types of Ethereum Blockchain applications.
BO3 Decide whether Ethereum fits a specific business use case.
BO4 Work with product managers to plan and build a proof of concept Blockchain application.
BO5 Setup the development environment and workflow for other developers in a team.
BO5 Deploy DApps (Decentralized Applications) in the cloud.
BO5 Design and write smart contracts for different use cases.
BO5 Design and write tests for testing smart contracts.
BO5 Design and build a complete DApp (decentralized application) with smart contracts and a beautiful user interface.

Learning Objectives

Learning objectives (LOs) are brief statements that describe what you are expected to know after each chapter. The LOs are defined as:

  • K1: Remember
  • K2: Understand
  • K3: Apply

LO1 Explain what a Blockchain is and how it works under the hoods. (K1)
LO2 Understand the different types of Blockchain platforms and which ones to use for specific use cases. (K2)
LO3 Understand how smart contracts work and what problems they solve. (K2)
LO4 Understand what kinds of Blockchain projects are a good fit to build on Ethereum. (K2)
LO5 Explain how Ethereum works. (K2)
LO6 Explain how Ethereum cryptography works at a high level (K2)
LO7 Explain the consensus algorithms in Ethereum (K2)
LO8 Understand the working of different Ethereum networks (K2)
LO9 Install and administer a Geth node (K3)
LO10 Install and use Ethereum wallets for development and transactional use cases. (K3)
LO11 Setup the application development environment (K3)
LO12 Understand and use the Solidity programming language for writing smart contracts (K3)
LO13 Write smart contracts without using any framework (K3)
LO14 Write smart contracts using the truffle framework (K3)
LO15 Write unit tests to test and ensure the correctness of smart contract functionality (K3)
LO16 Write complete smart contract driven applications that end-users can interact with through a front-end user interface (K3)
LO17 Deploy DApps to the cloud (K3)
LO18 Understand some of the best practices when building DApps on Ethereum (K2)
LO19 Understand Ethereum Request for Comments and Ethereum Improvement Proposals (K2)
LO20 Understand the structure and working of common token contracts (K2)

Topics


FUNDAMENTALS OF BLOCKCHAIN AND DISTRIBUTED LEDGER TECHNOLOGY

  • What is a distributed ledger
  • What problem are we trying to solve with a Blockchain
  • Blockchain Demo (the best visual guide to understand how a Blockchain works)
  • Consensus Models
  • Types of Consensus Models
  • Why do we need different consensus models
  • Types of Blockchain Platforms

INTERACTING WITH A BLOCKCHAIN

  • Understanding Wallets
  • Hands On Demo: Creating a wallet
  • Hands On Demo: Transacting with your wallet

UNDERSTANDING AND USING SMART CONTRACTS

  • What are smart contracts
  • Why and when do we need smart contracts

WORKING WITH ETHEREUM, TOOLS AND DEVELOPMENT ENVIRONMENT

  • The Business case for Ethereum
  • The Ethereum Ecosystem
  • Ethereum concepts, virtual machines and architecture
  • Ethereum cryptography basics
  • Consensus algorithms in Ethereum
  • Ethereum networks
  • Ethereum wallets and transactions
  • Installing Geth node and node administration
  • Ethereum DApp Developer: Tools of your trade
  • Setting up the Ethereum development environment

WRITING DAPPS (DISTRIBUTED / DECENTRALIZED APPLICATIONS)

  • Programming with Solidity
  • Deploying smart contracts without frameworks
  • Test driven smart contract development
  • Writing smart contracts with Truffle framework
  • Build a complete Blockchain application
  • Smart Contract Development Best Practices

TOKENOMICS

  • Ethereum Request for Comments (ERC)
  • Ethereum Improvement Proposals (EIP)

QUESTION AND ANSWERS

CLOSING NOTES

CERTIFICATION EXAM (OPTIONAL)

All participants in this course receive a participation certificate without requiring to attend an exam. However, to receive a course certificate, participants are required to attend a proctored exam at the end of the course.

CERTIFICATES

Participation certificates and badges are issued to all the participants immediately after the course.

Ready to learn and have fun? Checkout the calendar to join an upcoming workshop.