Blockchain Software Engineering
3 credits
Background Assumption
Students are expected to know at least one object-oriented programming language (e.g. Java, C++, C#, Object C), data structure, HTML, and JavaScript
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 of Truffle for Solidity Programming
- Create and Deploy ERC721 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% |
Textbook
No textbook required, lecture notes will be provided
Developer
Dr. Zehua Wang, Dr. Chen Feng, Dr. Sasha Federova, Dr. Victoria Lemieux
More Information