3 credits
Blockchain Software Engineering
Course focus
Hands-on blockchain software engineering with Ethereum: introduce major blockchain platforms and the evolution from blockchain 1.0 to 2.0 (and the direction of 3.0), then build decentralized applications (DApps) using Solidity (incl. ERC20), deploy and verify smart contracts on testnet/mainnet, apply professional tooling (Hardhat, Foundry), and incorporate auditing/testing practices and MetaMask-based frontend integration.
Course content (modules)
- Foundations & platforms: blockchain as a software platform; Bitcoin vs Ethereum; first Solidity contract in Remix.
- Smart-contract programming: DApp tech stack; Solidity I (ERC20); MetaMask; testnet concepts; deploy & verify contracts on testnet.
- Engineering tools I: Hardhat workflow; mnemonic/key safety; provider services (Infura/Alchemy); Web3 project survey.
- Libraries & security: Solidity II; common smart-contract security issues; OpenZeppelin; unit testing with Hardhat.
- Engineering tools II: Foundry; static analysis with Slither; fuzz testing; group project kickoff.
- Frontend & integration: web3js; web UI for DApps; MetaMask integration; deploy a DApp online.
- Advanced standards: NFTs (ERC721/ERC1155).
- Upgradeable contracts: proxy patterns and upgradeable smart contracts.
- Web3.0 capstone project presentation.
Learning outcomes
- Differentiate blockchain 1.0/2.0 (and the direction of 3.0) and explain developer-relevant trade-offs.
- Implement Solidity smart contracts (incl. ERC20) using sound engineering patterns and library components.
- Deploy and verify contracts on testnet; understand mainnet deployment considerations and operational risks.
- Use Hardhat/Foundry to build, test, and debug contracts with automated unit tests.
- Apply security hygiene: protect mnemonics/keys; recognize common vulnerabilities; use OpenZeppelin safely.
- Run auditing/testing workflows (Slither static analysis; fuzz testing) and improve robustness from findings.
- Build a DApp frontend (web3js) and integrate MetaMask for signing and transaction flows.
- Deliver an end-to-end DeFi / RWA-with-NFT / DAO-with-NFT style DApp with a working demo and a clear report.
Evaluation format
- Assignment 1: 10%
- Assignment 2: 15% (group-based deliverable package)
- Midterm: 25%
- Assignment 3: 20%
- Project demo: 15% (recorded demo + presentation)
- Project report: 15% (final report + peer evaluation form)
Project expectations (applies to the course project component)
- Teams of ≥3 students; each student may join at most one team; submit the signed team form.
- Development stack: Hardhat/Foundry + React + Web3; maintain a GitHub repo and submit the repo link at term end.
- Milestone submission should include project whitepaper, wireframe, smart-contract code, and contract test code.
- Demo and pitch deck.
- Final report.