Course Title: Programming Internet of Things

Part A: Course Overview

Course Title: Programming Internet of Things

Credit Points: 12.00

Course Coordinator: Dr. Flora Salim

Course Coordinator Phone: +61 3 9925 0291

Course Coordinator Email:

Course Coordinator Location: 14.11.33

Pre-requisite Courses and Assumed Knowledge and Capabilities

Enforced Pre-requisites:
Advanced Programming Techniques (COSC1076)
Advanced Programming (COSC1295)
Software Engineering Fundamentals (ISYS1117)
Database Concepts (ISYS1057)

Enforced Co-requisites:
Cloud Computing (COSC2626)

Course Description

The Internet of Things (IoT) course will teach students how to program with current and leading IoT technologies for building IoT solutions for Smart Homes, Smart Campus etc., using IoT sensor and devices.
Students in this course will learn the skills to get their hands on popular physical computing and electronic prototyping platform such as Arduino, and learn the basics of programming such devices. They will also learn to capture data using sensors, and the basics of analysis and visualisation of the data in the cloud.
The course will be hands-on with students expected to work in groups to build complex and fun smart applications.

Objectives/Learning Outcomes/Capability Development

On completion of this course you should be able to:

  1. Understand IoT principles, design and abstraction of developing IoT systems
  2. Develop on a variety of open source electronic prototyping platforms, devices and software services
  3. Integrate a variety of IoT devices, sensors and services to build complex applications
  4. Develop an end-to-end data analysis and visualisation pipeline
  5. Evaluate competing technologies and make decision on which to use
  6. Present and demonstrate the developed system to external industry panels

Overview of Learning Activities

You will engage with key concepts in lectures, classes or online, where course material will be presented and the subject matter will be illustrated with demonstrations and examples.
Tutorials, workshops, studios and/or labs and/or group discussions (including online forums) focused on projects and problem solving will provide you with practice in the application of theory and procedures. You will explore concepts with teaching staff and other students, and receive feedback on your progress. You will develop an integrated understanding of the subject matter through private study by working through the course as presented in classes. Comprehensive learning materials will aid you in gaining practice at solving conceptual and technical problems.


Total Study Hours

This course includes 4 hours per week of instructor-led work distributed over tutorial/laboratory classes and/or studio, lecture. To achieve high levels of academic results you are expected to spend on average an additional 6 hours per week on self-directed independent learning (reading, online activities and assignments).

Overview of Learning Resources

You will make extensive use of specialised computer laboratories and relevant software and hardware provided by the School. You will be able to access course information and learning materials through myRMIT 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.

Overview of Assessment

This course has no hurdle requirements.

Assessment tasks

Individual Research Report
Weighting 20%
This assessment task supports CLOs 1, 5

Individual Programming Assignment:
Weighting 15%
This assessment task supports CLOs 2

Mid-term Test:
Weighting 15%
This assessment task supports CLO 1, 2, 5

Group Project Part A
Weighting 20%
This assessment task supports CLOs 1, 2, 3, 4, 5, 6

Group Project Part B:
Weighting 30%
This assessment supports CLOs 1, 2, 3, 4, 5, 6