Course Title: Developing Blockchain Applications

Part A: Course Overview

Course Title: Developing Blockchain Applications

Credit Points: 12.00

Important Information:

Please note that this course may have compulsory in-person attendance requirements for some teaching activities. 

To participate in any RMIT course in-person activities or assessment, you will need to comply with RMIT vaccination requirements which are applicable during the duration of the course. This RMIT requirement includes being vaccinated against COVID-19 or holding a valid medical exemption. 

Please read this RMIT Enrolment Procedure as it has important information regarding COVID vaccination and your study at RMIT:  https://policies.rmit.edu.au/document/view.php?id=209

Please read the Student website for additional requirements of in-person attendance:  https://www.rmit.edu.au/covid/coming-to-campus 

Please check your Canvas course shell closer to when the course starts to see if this course requires mandatory in-person attendance. The delivery method of the course might have to change quickly in response to changes in the local state/national directive regarding in-person course attendance. 



Course Coordinator: Prof. Ibrahim Khalil

Course Coordinator Phone: +61 3 9925 2879

Course Coordinator Email: ibrahim.khalil@rmit.edu.au

Course Coordinator Location: 14.11.025

Course Coordinator Availability: By appointment.


Pre-requisite Courses and Assumed Knowledge and Capabilities

Enforced Pre-requisites:

INTE2625 - Introduction to Cyber Security (Course ID 054986)

AND

COSC2801 - Programming Studio 1 (Course ID 054079)

Assumed knowledge:  The course assumes that students have basic understanding of the followings:

  •  Basics of Data Communications and Networking Technologies
  •  Understanding of high school Mathematics
  •  Ability to write technical reports

Note it is a condition of enrolment at RMIT that you accept responsibility for ensuring that you have completed the prerequisite/s and agree to concurrently enrol in co-requisite courses before enrolling in a course.


Course Description

Blockchain is a distributed ledger where we don't want to trust any designated, centralised authority to maintain the ledger, and every participant keeps a copy of the ledger while checking everyone else's changes to it. Blockchain is an emerging technology where valuable objects or information can be stored and shared in a secure manner.

This course covers topics and technologies related to blockchain applications. Initially, we will discuss basic cryptographic and distributed systems concepts, as well as building blocks such as hash functions, digital signature, Merkle tree, consensus algorithms and incentive mechanisms that are essential to the understanding of blockchain applications. We will also explore different models of blockchain paradigms, the concepts of private and public blockchains. Later, we will focus on the practical applications of the blockchain technology. You will gain hands on experience on various features of popular blockchain platforms throughout the lectorials and workshop sessions.

The paradigm of Smart Contracts will be thoroughly explored and deployed in various applications. Advanced modular concepts will also be used to facilitate development, deployment, and execution of distributed ledgers. You will also analyse various practical applications and identify the suitability of blockchain in those applications. Through step-by-step analysis of practical applications, you will learn to design and apply in real world scenarios.  Different application scenarios from popular domains that leverage the blockchain technologies such as various supply-chain systems will be explained. The theoretical knowledge, practice-oriented workshops and industry focused assignments will help you to build your skills to develop standard Blockchain applications.


Objectives/Learning Outcomes/Capability Development

The course is a program option course, however, will contribute to following program learning outcomes for:

BP094 Bachelor of Computer Science
BP096 Bachelor of Software Engineering
BP162 Bachelor of Information Technology
BP340 Bachelor of Data Science
BP347 Bachelor of Computer Science (Professional)
BP348 Bachelor of Data Science (Professional)
BP349 Bachelor of Information Technology (Professional)

PLO4: Communication - Communicate effectively with diverse audiences, employing a range of communication methods in interactions to both computing and non-computing personnel.

PLO6: Responsibility and Accountability - Demonstrate integrity, ethical conduct, sustainable and culturally inclusive professional standards, including First Nations knowledges and input in designing and implementing computing solutions.


Upon successful completion of this course you should be able to:

  • CLO 1: Identify the fundamental concepts and aspects of blockchain including cryptographic tools, consensus, and incentive mechanism.
  • CLO 2:  Define the nature and characteristics of popular blockchain applications
  • CLO 3: Describe the key issues including security, anonymity, scalability, and decentralisation in potential blockchain applications
  • CLO 4: Examine open-source and industry-oriented Blockchain application development process.
  • CLO 5:  Design and develop highly scalable distributed blockchain applications.
  • CLO 6: Propose recommendations on blockchain computing solutions for an enterprise.


Overview of Learning Activities

This course is delivered through a combination of online and on campus learning activities. Recorded lectures, other resources and some discussion groups are delivered online. Lectorials and workshops are held on campus at scheduled times. The learning activities included in this course are:

  • key concepts will be explained in the lecture recording, lectorials or workshop, where course material will be presented, and the subject matter will be illustrated with demonstrations and examples.
  • tutorials and group discussions (including online forums) focused on practical work and problem solving will provide practice in the application of principles and procedures, allow exploration of concepts with teaching staff and other students
  • assignment work requires an integrated understanding of the subject matter with the application of theory to practice
  • private study, working through the course as presented in classes and learning materials, and gaining practice at analysing suitable blockchain applications.


Overview of Learning Resources

You are encouraged to bring your laptops and use the freely available software to conduct the laboratories.

You will make extensive use of computer laboratories and relevant software provided by the School. You will be able to access course information and learning materials through Canvas, and may be provided with copies of additional materials in class or via email. Lists of relevant reference texts, resources in the library and freely accessible Internet sites will be provided.

There are services available to support your learning through the University Library. The Library provides guides on academic referencing and subject specialist help as well as a range of study support services. For further information, Library page on the RMIT University website and the RMIT Student website.


Overview of Assessment

Note: This course has no hurdle requirements.

Assessment Task 1: Industry Focused Assignment 1
Weighting: 20%
This assessment task supports CLOs 1,2

Assessment Task 2: Industry Focused Assignment 2
Weighting: 30%
This assessment task supports CLOs 1, 2, 3,4

Assessment 3: Industry Focused Project
Weighting: 50%
This assessment supports CLOs 3, 4, 5, 6