Course Title: Programming Internet of Things

Part A: Course Overview

Course Title: Programming Internet of Things

Credit Points: 12.00


Course Code




Learning Mode

Teaching Period(s)


City Campus


171H School of Science


Sem 2 2018,
Sem 1 2019,
Sem 1 2020


RMIT University Vietnam


171H School of Science


Viet2 2019,
Viet2 2020

Course Coordinator: Assoc Professor Tao Gu

Course Coordinator Phone: +61 3 9925 5088

Course Coordinator Email:

Course Coordinator Location: City Campus, Building 14, Level 11, Room 26

Course Coordinator Availability: By appointment

Pre-requisite Courses and Assumed Knowledge and Capabilities

Enforced Pre-requisites:

COSC2391 – Further Programming OR

COSC2626 – Cloud Computing

Recommended Prior Knowledge:
General knowledge of Linux operating system, networking basic principles.

Course Description

The Programming Internet of Things (PIoT) course will teach you how to program with current and leading IoT technologies for building IoT solutions for Smart Homes, Smart Campus etc., using IoT sensor and devices.  

What will you learn -


  • gain an an understanding of using Raspberry Pi and appropriate programming frameworks as the base to build all the projects,
  • learn the fundamentals of IoT and then build a standard framework for developing all the applications
  • learn to capture data using sensors, and the basics of analysis and visualisation of the data in the cloud. 
  • gain an understanding of other concepts around IoT such as security

The course will be hands-on with students expected to work in groups to build complex and fun smart applications.  

This course requires the student to have their own laptop and Raspberry Pi kit.

Objectives/Learning Outcomes/Capability Development

On completion of this course you should be able to:

  1. CLO1: Understand IoT principles, design and abstraction of developing IoT systems
  2. CLO2: Develop on a variety of open source devices and software services
  3. CLO3: Integrate a variety of IoT devices, sensors and services to build complex applications
  4. CLO4: Learn the basics of Raspberry Pi and compatible programming frameworks
  5. CLO5: Present and demonstrate the developed system

This course contributes to the following Program Learning Outcomes for Bachelor of Computer Science (BP094), Bachelor of Software Engineering  (BP096),Bachelor of Information Technology (BP162) and other double degrees;


  • Enabling Knowledge:

You will gain skills as you apply knowledge effectively in diverse contexts.

  • Critical Analysis:

You will learn to accurately and objectively examine and consider computer science and information technology (IT) topics, evidence, or situations, in particular to:

     - analyse and model requirements and constraints for the purpose of designing and implementing software artefacts and IT systems

     - evaluate and compare designs of software artefacts and IT systems on the basis of organisational and user requirements.

  • Problem Solving:

Your capability to analyse problems and synthesise suitable solutions will be extended as you learn to: design and implement software solutions that accommodate specified requirements and constraints, based on analysis or modelling or requirements specification.

  • Communication:

You will learn to communicate effectively with a variety of audiences through a range of modes and media, in particular to: present a clear, coherent and independent exposition of software applications, alternative IT solutions, and decision recommendations to both IT and non-IT personnel via technical reports of professional standard and technical presentations.

  • Team Work:

You will learn to work as an effective and productive team member in a range of professional and social situations, in particular to: work effectively in different roles, to form, manage, and successfully produce outcomes from teams, whose members may have diverse cultural backgrounds and life circumstances, and differing levels of technical expertise.

  • Responsibility:

You will be required to accept responsibility for your own learning and make informed decisions about judging and adopting appropriate behaviour in professional and social situations. This includes accepting the responsibility for independent life-long learning. Specifically, you will learn to: effectively apply relevant standards, ethical considerations, and an understanding of legal and privacy issues to designing software applications and IT systems

Overview of Learning Activities

The learning activities included in this course are:

  • Lectures: key concepts will be explained in lectures where material will be presented and the subject matter will be illustrated with practical examples, demonstrations, online questionnaires and guest visitors from ICT industry.
  • Tutorial/labs and/or group discussions (including online forums) focussed on projects and problem solving will provide practice in the application of theory and procedures, allow exploration of concepts with teaching staff and other students, and give feedback on your progress and understanding;
  • Assignments, as described in Overview of Assessment (below) and Assessment Tasks (part B course guide for this Teaching Period), requiring an integrated understanding of the subject matter; and assignment work requires active team participation and effective communication, which provides practice in these skills.


Total Study Hours

A total of 120 hours of study is expected during this course, comprising:

Teacher-directed hours (48 hours): lectures, tutorial/ laboratory sessions. Each week there will be 2 hours of lecture and 2 hours of tutorial/ laboratory work. You are encouraged to participate during lectures through asking questions, commenting on the lecture material based on your own experiences and through presenting solutions to written exercises. The tutorial and laboratory sessions will introduce you to the tools necessary to undertake the assignment work.

Student-directed hours (72 hours): You are expected to be self-directed, studying independently outside class.

Overview of Learning Resources

You will need your own Raspberry Pi 3 kit Model B or B+ and a laptop to do this course. You will be able to access course information and learning materials through myRMIT and Canvas LMS. Lists of relevant reference texts, resources in the library and freely accessible Internet sites will be provided.

Overview of Assessment

This course will be assessed via group assignments, individual tests and a written examination.

Assessment for this course is based on face-to face demonstration of practical assignment work.


Note: This course has no hurdle requirements.


Assessment tasks


Assessment Task 1: Written Assignment – part 1

Weighting 15%

This assessment task supports CLOs 1, 3 and 4.


Assessment Task 2: Written Assignment – part 2

Weighting 25%

This assessment task supports CLOs 1, 3, 4 and 5.


Assessment Task 3: Lab Tests

Weighting 10%

This assessment task supports CLOs 2 and 4.


Assessment 4: End-of-semester Examination

Weighting 50% 

This assessment supports CLOs 1, 2, and 4.