CSE234 Introduction to Blockchain

Introduction

Welcome to Winter 2018 Introduction to Blockchain course. This course will provide an overview of the emerging technology blockchain and demonstrate blockchain-based application development. Pedagogy: We will learn most of the concepts using hands-on explorations with Bitcoin blockchain and coding with Ethereum blockchain.


Time and Location

Time: 4.00PM - 6.20PM
Location: Baldy 200G
Days: Jan 4-Jan 23, Tue/Thu

Pre-requisites

General problem solving skills. This course will be offered at the introductory level.

Learning Outcomes

On completion of this course you will be able to
  1. Explain the concept of a blockchain: What is a blockchain? How is it different from existing technologies?
  2. Explore the basic structure and operation of the Bitcoin Blockchain protocol using the actual blockchain: UTXOs, transactions, blocks, chain of blocks, validation, mining, proof-of-work consensus protocol; hashing and private-public key cryptography.
  3. Discuss the Ethereum blockchain concepts: account, address, state, computational elements, and the smart contract.
  4. Setup a private Ethereum node (geth) and transact on the Ethereum blockchain created for the course.
  5. Illustrate with examples, the elements of the Solidity language for programming smart contracts.
  6. Explain the blockchain applicaton stack; Design and implement a smart contract and a test application using Remix integrated development environment (IDE).

How to get the best out of this course?

  • Attend the lectures: interactions and exchanges during the lectures reinforce learning.
  • Please do not hesitate to ask questions during the lectures, if anything is not clear.
  • Bring a laptop to the lecture or share someone else's in the class to follow along when I am demonstrating important concepts and developing code.
  • Complete the hands-on exercises discussed during the class; initially it may be frustrating to get some things working. But you learn by doing.
  • Think of at least one use-case that you can develop into a blockchain-based application, as a capstone project for the course.