This course is part of:

Overview

Class Central Tips

This second course of the Blockchain specialization 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.

Main concepts are delivered through videos, demos and hands-on exercises.

Syllabus

Smart Contract Basics
-The purpose of this module is to introduce the reasons for a smart contract and its critical role in transforming blockchain technology from enabling decentralized systems. We will explore the structure and basic concepts of a smart contract through examples, and illustrate Remix (remix.ethereum.org) web IDE for deploying and interacting with a smart contract.

Solidity
-Our goal is to master the basics of Solidity, a high-level language that is a combination of Javascript, Java and C++. It is specially designed to write smart contracts and to target the Ethereum Virtual Machine. Learners will be able to follow demonstrations and practice using Solidity.

Putting it all Together
-This module focuses on the development of the Ballot smart contract incrementally to illustrate various features including time dependencies, validation outside the function code using access modifiers, asserts and require declarations, and event logging.

Best Practices
-This module will focus on best practices including evaluating whether a blockchain-based solution is suitable for your problem, designing Solidity smart contracts, and those relating to Remix IDE.