Skip to main content

Smart Contract

Enrollment in this course is by invitation only


This second course, Smart Contract of the Blockchain Developer program will help you design, code, deploy and execute a smart contract – the computational element of the blockchain technology. Smart contracts allow for implementing user-defined operations of arbitrary complexity that are not possible through plain cryptocurrency protocols. They allow users to implement conditions, rules and policies of the domain applications. Smart contracts are a powerful feature that, when properly designed and coded, can result in autonomous, efficient and transparent systems.

You will design and program smart contracts in Solidity language, test and deploy them in the Remix development environment, and invoke them from a simple web interface that Remix provides. This course features best practices for designing solutions with smart contracts using Solidity and Remix IDE.


Course code: BDP302x_01_EN
Course name: Smart Contracts
Credits: 3
Estimated Time:

Video Time: 6 hrs

Reading Time: 8 hrs 10 m

Lab Time: 8 hrs 20 m

Assignment Time: 32 hrs


  • Understanding the role, structure and principles of smart contracts in the blockchain platform.
  • Understanding the Solidity language platform in building smart contracts with Ethereum Virtual Machine.
  • Understand how to build and develop smart contracts on the blockchain platform.
  • Understand the best practice in assessing the appropriateness of blockchain solutions.
  • Practicing development and deployment of smart contracts.


Module 1: Smart Contract Basics

  • Lesson 1: Why Smart Contracts?
  • Lesson 2: Smart Contracts Defined
  • Lesson 3: Processing Smart Contracts
  • Lesson 4: Deploying Smart Contracts

Module 2: Solidity

  • Lesson 5: Structure
  • Lesson 6: Basic Data Types & Statements
  • Lesson 7: Specific Data Types
  • Lesson 8: Data Structures
  • Lesson 9: Access Modifiers & Applications

Module 3: Putting it all Together

  • Lesson 10: Developing Smart Contracts
  • Lesson 11: Time Elements
  • Lesson 12: Validation & Test
  • Lesson 13: Client Applications

Module 4: Best Practices

  • Lesson 14: Best Practices
  • Assignment 1: Design and develop a smart contract
  • Assignment 2: Develop a project using smart contract


You must complete the course: BDP301x - Blockchain Basics.



Vũ Hồng Việt

  • More than 20 years working in software and solution development (company: CSC, FPT)
  • Blockchain Researcher
  • Speciallist in Intelligent Transportation Systems domain
  • FPT’s Technology Specialist
  • Profile online:

Nguyễn Đức Minh Quân
  • FPT Information System – Solution Manager.
  • 10 years working in software and solution development.
  • Blockchain Researcher
  • 7 years R&D and deploy Intelligent Transportation Systems sulution, smart city solution
  • Regular Speaker in Vietnam Web Submit, Vietnam Mobile Day, FPT Tech Day, …
  • Profile online:

course reviewer
Assoc. Prof., Ph.D. Truong Anh Hoang - Program/Course Reviewer
Truong Anh Hoang photo
  • Blockchain Lab Lead, UET, VNU Hanoi
  • Associate Professor, VNU University of Engineering and Technology since 2007
  • Ph.D dissertation defended in University of Bergen, Norway in 2006, after four years of study about type systems for abstract component languages
  • More than 15 years of experiences in software development, for mobile, Linux, Windows, and web platforms using C/C++, VB, C#, Python, JavaScript, among others in many companies including Punch Entertainment, Olivetti, Getronics, MITEC
  • Profile online: 

Ph.D. Dang Minh Tuan - Program Reviewer
  • Blockchain Lab Lead, Lecturer at Posts and Telecommunications Institute of Technology (PTIT)
  • Vice President, FINTEC CLUB/Vietnamese Banking Association
  • Lead of Sub-Committee for National IT Standard SC35
  • Vietkey Application Creator
  • More than 30 years of experiences in software development and information security
  • Online Profile:

M.S. Nguyen Anh Tu - Program Reviewer
  • Tomochain Lead Engineer § Seasoned engineer working in Blockchain and Cloud Computing.
  • Authorized Developer of Apache Software Foundation, Cloud Native Computing Foundation.
  • Lead engineer of multiple cloud computing open-source softwares (kubeless, kubeapps, kompose, kubewatch).
  • Master degree in Distributed Systems, Switzerland.
  • Online profile:

MOOC materials:

Below is the list of all free massive open online learning sources (MOOC) referred to in this course:  Smart Contract of the Blockchain Specialization offered by University At Buffalo and The State University of New York.

All open learning sources used in FUNiX training program are public, constantly updated and freely used. FUNiX is always willing to receive and discuss any comments, suggestions and responses related to our learning sources via email