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


City Campus


175H Computing Technologies


Sem 2 2023,
Sem 2 2024


RMIT University Vietnam


171H School of Science


Viet2 2019,
Viet2 2020

Course Coordinator: Xiaoyu Xia

Course Coordinator Phone: n/a

Course Coordinator Email:

Course Coordinator Location: City Campus

Pre-requisite Courses and Assumed Knowledge and Capabilities

Enforced Pre-requisite courses
Successful completion of:

COSC2804 - Programming Studio 2 (Course ID 054082)
COSC2391/COSC2440 - Further Programming (Course ID 014052)
COSC2815 - Advanced Programming in Python (Course ID 054117)

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.

For your information go to RMIT Course Requisites webpage.

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

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 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 applications,
  • Learn to capture data using sensors, and the basics of analysis and visualisation,
  • 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

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;

  • PLO1: Knowledge - Apply a broad and coherent set of knowledge and skills for developing user-centric computing solutions for contemporary societal challenges.
  • PLO2: Problem Solving - Apply systematic problem solving and decision-making methodologies to identify, design and implement computing solutions to real world problems, demonstrating the ability to work independently to self-manage processes and projects.
  • PLO4: Communication - Communicate effectively with diverse audiences, employing a range of communication methods in both computing and non-computing personnel.
  • PLO5: Collaboration and Teamwork - Demonstrate effective teamwork and collaboration by using tools and practices to manage and meet project deliverables.
  • 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.

On completion of this course, you will be able to:

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

Overview of Learning Activities

The learning activities included in this course are:

  • 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.

Overview of Learning Resources

You will need your own laptop and Raspberry Pi kit to do this course.   RMIT will provide you with resources and tools for learning in this course through myRMIT Studies Course.

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, please visit the Library page on the RMIT University website and the myRMIT student portal.

Overview of Assessment

Note: This course has no hurdle requirements.

Assessment Tasks

Assessment Task 1: Timed and Timetabled Quiz
Weighting 10%
This assessment task supports CLOs 1, 2, & 4.
This assessment is a timed and timetabled assessment of less than 2 hours duration that students must attend on campus.


Assessment Task 2: Lab Tasks and Tests
Weighting 20%
This assessment task supports CLOs 1, 3, & 4. 
This assessment is an individual assessment.


Assessment Task 3: Written Assignment – part 1
Weighting 30%

This assessment task supports CLOs 1, 3, 4 & 5.
This assessment is an individual assessment with a presentation. 


Assessment Task 4: Written Assignment – part 2

Weighting 40%

This assessment task supports CLOs 2, 3, 4, & 5.
This assessment is a group assessment with a project report and presentation.