Contents

Course Details

Course Code COMP6452
Course Title Software Architecture for Blockchain Applications
Convenor Helen Paik
Lecturer Dilum Bandara
Helen Paik
Duc-Lam Nguyen
Contact email cs6452@cse.unsw.edu.au
Classes Timetable for all classes
Units of Credit 6
Course Website https://moodle.telt.unsw.edu.au/course/view.php?id=75992
Handbook Entry https://www.handbook.unsw.edu.au/undergraduate/courses/current/COMP6452.html

Course Description

Led by the blockchain group from CSIRO's Data61, renowned for their pioneering work in this field, this course provides a software architectural view that delves into the intricacies of designing software systems that effectively utilise blockchains. You’ll gain unparalleled insights into assessing blockchain's suitability, identifying its roles within a software's architecture, and mastering the art of designing blockchain-based applications. You'll also learn to evaluate different architectural designs and make informed trade-offs. Get ready to unleash your creativity as you design, develop, and test blockchain-based applications with multiple smart contracts running on a global test network.

Course Aims

  • The course aims to reinforce students’ understanding of core software engineering principles and build their capabilities in core software engineering practice.
  • Through the course, students will gain expertise in designing, developing, and testing software applications that complement other courses (e.g., cryptocurrency and distributed ledger technologies, programming, software engineering, security, and distributed systems), as well as communication and justification of their decisions.
  • Through practical exposure to a range of design and development tasks, students develop a deeper understanding of theory, hands-on skills, and professional competencies.

Learning Outcomes

On completion of the course, the successful student will be able to:

  • CLO 1 - explain the principles of blockchain and its roles in an application architecture
  • CLO 2 - assess the suitability of blockchains to solve a constrained problem
  • CLO 3 - design blockchain-based software architectures
  • CLO 4 - make functional and non-functional trade-offs for blockchain-based applications
  • CLO 5 - build small applications on a blockchain

Assessment

Work will be marked against assessment criteria given with each assessment. While most feedback will be provided online, verbal feedback will be given during Project 2. The course includes the following 4 assessments:

  1. Project 1 - Individual assessment for developing, testing, and extending a smart contract. 15 marks.
  2. Project 2 - Group assessment (4 students per group) of analysing, designing, and implementing a use case using blockchains and smart contracts. Assessment has two evaluation steps: 1) requirements and design and 2) development and live demonstration. 30 (16 + 14) marks.
  3. Quizzes - Two 20-min online quizzes on material covered up to that point. 20 (10 + 10) marks.
  4. Exam - Central online open book exam via Inspera. A written take-home examination, testing all course content. Students must obtain a passing grade on the exam to pass the course (i.e., < 50% of the exam points means failing the course). 35 marks.
Item Topics Due Marks
Quiz 1 Lecture 1 - 8 Week 4 10%
Quiz 2 Lecture 5 - 16 Week 8 10%
Project 1 Smart contract programming (individual) Week 3 15%
Project 2 System design and smart contract programming (group) Week 10 30%
Final Exam
Exam period 35%

Teaching Strategy and Rationale

  • This is a practical course that focuses on putting into practice the theory explained in lectures and enables you to design, develop, and test blockchain-based applications.
  • Weekly presentations will explain theory and processes, show examples, and introduce tasks to be done in tutorial and lab classes.
  • You will be required to contribute to class and group discussions and respond to set tasks. Two projects (one individual and one group) should be undertaken in your own time. Four self-guided labs and two tutorials are designed to provide you with the necessary hands-on skills in preparation for those projects.
  • To encourage continuous learning, we have included two online quizzes to test your understanding.

Assumed Knowledge

Before commencing this course, students should:

  • have a solid programming background
  • have basic software engineering knowledge

Student Conduct

The Student Code of Conduct ( Information , Policy ) sets out what the University expects from students as members of the UNSW community. As well as the learning, teaching and research environment, the University aims to provide an environment that enables students to achieve their full potential and to provide an experience consistent with the University's values and guiding principles. A condition of enrolment is that students inform themselves of the University's rules and policies affecting them, and conduct themselves accordingly.

In particular, students have the responsibility to observe standards of equity and respect in dealing with every member of the University community. This applies to all activities on UNSW premises and all external activities related to study and research. This includes behaviour in person, as well as behaviour on social media, e.g., Facebook or Whatsapp groups set up for the purpose of discussing UNSW courses or course work. Behaviour that is considered in breach of the Student Code Policy as discriminatory, sexually inappropriate, bullying, harassing, invading another one's privacy or causing any person to fear for their personal safety is serious misconduct and can lead to severe penalties, including suspension or exclusion from UNSW.

If you have any concerns, you may raise them with your lecturer, or approach the School Ethics Officer , Grievance Officer , or one of the student representatives.

Academic Honesty and Plagiarism

Plagiarism is defined as using the words or ideas of others and presenting them as your own. UNSW and CSE treat plagiarism as academic misconduct, which means that it carries penalties as severe as being excluded from further study at UNSW. There are several on-line sources to help you understand what plagiarism is and how it is dealt with at UNSW:

Make sure that you read and understand these. Ignorance is not accepted as an excuse for plagiarism. In particular, you are also responsible that your assignment files are not accessible by anyone but you by setting the correct permissions in your CSE directory and code repository, if using. Note also that plagiarism includes paying or asking another person to do a piece of work for you and then submitting it as your own work.

UNSW has an ongoing commitment to fostering a culture of learning informed by academic integrity. All UNSW staff and students have a responsibility to adhere to this principle of academic integrity. Plagiarism undermines academic integrity and is not tolerated at UNSW. Plagiarism at UNSW is defined as using the words or ideas of others and passing them off as your own. If you haven't done so yet, please take the time to read the full text of:

The pages below describe the policies and procedures in more detail:

Use of Generative Tools

Systems such as Github Copilot and ChatGPT based on large language models or other generative artificial intelligence techniques, look likely to become heavily used by developers. However, you need a good understanding of the language you are coding in, and the systems involved before you can effectively use these tools. Using these tools to generate code for this module instead of writing the code yourself will hinder your learning.

You are not permitted to submit code and answers generated by any automatic tool, such as Github Copilot, ChatGPT, Google Bard, including for labs, projects, quizzes, and exam. Any attempt to do so will be treated as plagiarism. If allowed, assignment specifications may make an exception and explicitly permit use of small amounts of general-purpose code produced by generative tools. You must clearly attribute the source of such code in an accompanying comment.

Resources for Students

The recommended books associated with this course are:

Course Schedule

Week 1st Lecture 2nd Lecture Projects Quizzes
1 Introduction
Blockchain Basic
Blockchain Platforms
Project 1 and 2 release
2 Smart Contracts and Oracles
Software Architecture Basics

3 Public holiday
Guest Lecture 1
Blockchain in Software Architecture
Project 1 due

4 Blockchain Taxonomy
Decentralised Application Design Process
Quiz 1
5 Advanced Blockchain Patterns
Project 2 Presentation 1


6 Break


7 Characteristics, Performance, and Limitations
Privacy
Reliability

8 Security and Smart Contract Testing
Interoperability
Quiz 2
9 Cost
Guest Lecture 2
Project 2 Presentation 2


10 Blockchain Governance
Guest Lecture 3
Summary
Project 2 due

Course Evaluation and Development

This course is being continuously improved and we will conduct a survey through UNSW's myExperience process at the end of the session to obtain feedback on the quality of the various course components. Your participation in the survey will be greatly appreciated. Please provide feedback for each lecturer. Students are also strongly encouraged to provide informal feedback during the session and to notify the lecturer-in-charge of any problems as soon as they arise.

Penalty for Late Submission

We apply the standard late penalty as per the UNSW Assessment Implementation Procedure . It applies to all submission-based assessments.

The late penalty is a per-day (not hourly) mark reduction equal to 5% of the max assessment mark, for up to 5 days. Zero marks after 5 days. For example, for an assignment that would receive an on-time mark of 7/10 is submitted 3 days late, it will receive a mark of 5.5/10 (-0.5 x 3).

All days, not just Monday-Friday, are included in the days late. For example, if an assignment due noon Friday is submitted 9:00 am Monday, it is 3 days late.

The late penalty is applied in addition to any extensions. For example, a student who receives a 7-day extension due to a special consideration request can submit it up to 12 days after the assessment deadline, with the penalty applied after 7 days.

Resource created Friday 19 May 2023, 01:45:08 PM, last modified Thursday 01 June 2023, 01:42:54 PM.


Back to top

COMP6452 23T2 (Software Architecture for Blockchain Applications) is powered by WebCMS3
CRICOS Provider No. 00098G