Electrical Engineering Seminar and Special Problems – BLOCKCHN SFW ENG
Version: 0.3
Course Level:
Graduate course
Background Assumption
Students are expected to know at least one object-oriented programming language (e.g., Java, C++, C#, Objective C), data structure, HTML, and JavaScript
Textbook
No textbook required, lecture notes will be provided
Course Outline:
- Introduction to Software Engineering and Blockchain Review (Week 1)
- Brief Review of Blockchain Essentials
- Introduction of Software Engineering
- Blockchain as a Platform
- Technical Stack of Decentralized Application
- Introduction to Existing Blockchains
- Introduction to Blockchain Software Engineering (Week 2)
- Comparison of Blockchain Platforms
- Scalability of Blockchain
- Smart Contract Introduction
- User Interface Introduction
- Unit and Integration Testing
- Agile or Waterfall Methodology
- Creating Smart Contract (Week 3)
- Solidity Programming — I
- Create Your First Smart Contract
- Deploying Smart Contract (Week 4)
- Private Blockchain on Local Computer
- Smart Contract Deployment
- ERC20 Token (Week 5)
- Solidity Programming — II
- Create Your ERC20 Token
- Using Testnet and Infura Service
- Solidity Open Libraries (Week 6)
- The Security Issue in Smart Contract
- Solidity Programming — III
- The Openzeppelin Library
- Smart Contract Update and Migration
- Engineering Tools for Smart Contract Development (Week 7)
- Introduction to Truffle for Solidity Programming
- Create and Deploy ERC-721 Token with Truffle
- Introduction to CryptoKitties and Cryptozombies
- Midterm Exam (Week 8)
- Testing (Week 9)
- Introduction to Unit Test
- Unit Testing in Truffle Suite
- CI Pipeline for Project Management
- Smart Contract Operation in CLI (Week 10)
- Introduction to ABI
- Introduction to Web3 Library
- Communication between UI and Blockchain
- Using ABI to Control Smart Contract
- Smart Contract Operation in Java (Week 11)
- Java Wrapper Class
- Introduction to Web3 Library
- Communication between UI and Blockchain
- Using ABI to Control Smart Contract
- Frontend Development (Week 12)
- Frontend UI based on Webpage
- Integration with MetaMask
- Integration with Hardware Wallet
- Scalability (Week 13)
- Introduction to Payment Channel Technology
- Create the Payment Channel Smart Contract
- From Payment Channel to State Channel
- Project Presentation (Week 14)
Course Deliverables:
Task | Time to Release | Time to Due | Weight |
Assignment 1 | Week 4 | Week 5 | 10% |
Midterm | Week 8 | Week 8 | 20% |
Assignment 2 | Week 11 | Week 12 | 20% |
Project | Week 6 | Week 14 | 50% |