The internet of things (IoT) is the network of devices that connect, interact and exchange data. Phones, wearable technologies, home security systems, vehicles and a growing number of other products can be monitored and controlled through the internet. Embedded systems programming is what enables this device-to-device communication to happen.
With more and more smart technologies hitting the market every day, the area of IT embedded systems programming is exploding.
Across all sectors, there's increasing demand for a labour force that has the skills to create, program and maintain IoT devices, systems and solutions. Jobs are available in a variety of industries, including information technology, health care, utilities, transportation and retail.
In this program, you learn to:
- Integrate a variety of technologies, such as programming languages/platforms, cloud services, operating systems and IoT protocols
- Install, maintain, troubleshoot and repair embedded and IoT devices
- Select and integrate appropriate sensors and devices for gathering, processing and transferring real-time data
- Securely transfer data in a networked environment using appropriate communication standards and protocols
- Develop applications for existing IoT devices using industry-standard languages and development environments
- Design interconnected embedded solutions that seamlessly integrate diverse, remote and distributed technologies
- Field experience (work placement) is a mandatory credit course completed at the end of your program. It provides you with the opportunity to apply your knowledge and skills outside of the classroom.
- Opportunities are typically unpaid and last approximately 5 weeks.
- For more information visit Work Experience Opportunities
- The program was designed in response to industry input.
- You'll engage with industry contacts through a variety of project-based activities and work-integrated learning opportunities.
- You'll have the opportunity to develop programming skills along with a solid foundation in electronics.
- You'll complete a Capstone Project, which will help instill an innovative and entrepreneurial component to your learning.
- Professional practices and skills are incorporated into all projects and activities.
- This program will interest those who are comfortable with logical processes, and who are interested in developing programming skills and competencies in physical computing.
- The program has been designed to appeal to graduates of IT diploma or degree programs, as well as those in industry requiring upgrading in the field.
Tuition is valid for the 2021-22 academic year. Program costs and fees (textbooks, supplies, etc.) are additional.
Tuition, fees and program costs
In addition to annual tuition, there are program costs (books, tools, etc.) and student fees for college services, health and dental plans, your student association and parking.
View detailed program fees page(s). Please note that amounts on these pages are meant for planning purposes only. They don't represent final amounts owing.
Courses may include
These are some of the courses offered in this program. It is not a complete list and courses are subject to change in advance of the academic year.
ELEC 3000 - Practical Electronics I
Students will learn the basics of electronics through application and construction of electronic devices and be introduced to basic circuit theory, interpreting schematics, and utilizing basic tools resulting in practical experience constructing an electronic project.
ELEC 3010 - Embedded Controllers I
This course introduces students to the design and programming of embedded systems using microcontrollers and microprocessors. Students will build a series of embedded systems using common architectures such as x86/x64, ARM, and Atmel processors to create smart devices and sensors that individually process the data they collect, otherwise known as edge computing.
ELEC 3011 - Practical Electronics II
This course builds upon knowledge gained in Practical Electronics I. Students will build more complex circuits using transistors, integrated circuits (ICs) and microcontrollers and examine how common IoT devices work and how to use them safely. The course will also discuss different types of sensors and how they can be integrated into a circuit.
ELEC 3020 - Embedded Controllers II
This course builds upon knowledge gained in Embedded Controllers I. Students will develop IoT devices using industry standard languages such as C/C++ and Python and more advanced I/O devices and sensors will be examined and a number of IoT protocols will be used for device-to-gateway and device-to-server communication.
INFT 3010 - Capstone Project I
Working within teams, students will integrate skills and knowledge to develop a real world IoT project using an agile framework to manage it effectively and regularly present their work to peers for feedback.
INFT 3020 - Capstone Project II
Building on a minimal viable product, students will integrate skills and knowledge from previous courses to continuously improve their project and add additional functionality. Students will also explore manufacturing, entrepreneurship, and service-learning applications of the project.
INFT 5500 - Work Experience
This course is either a campus-based or external applied learning experience which may consist of work experience, directed studies, industry projects or applied research.
ISEC 3010 - IoT Security
This course introduces students to issues related to securing IoT devices and the networks that host them. Students will examine networked IoT devices, operating systems, and protocols and discuss common vulnerabilities and exploits.
MOBI 3000 - Mobile Development
Students will develop applications for popular mobile devices that will be used to view the status of an IoT device, read the device’s inputs and control the device’s outputs. Applications will be written for modern Android and/or iOS devices.
NETW 3012 - Cloud Services
Students will learn how to connect electronic devices and sensors to cloud services to store data, visualize the data in different ways and monitor real-time information. They will also examine the current protocols used to communicate to the cloud, how to ensure the data is secure and how to host a personal "cloud" to build a complete end-to-end system.
OSYS 3012 - Embedded Operating Systems
This course examines the details of various embedded and real-time operating systems. Students get hands-on experience with several embedded operating systems and the specialized hardware used to run them and learn to assess the requirements of specific applications within the constraints of embedded hardware. Various case studies will be used to demonstrate course concepts.
PROG 3011 - Embedded C
This is a C programming course with a hardware focus. Students will learn the basics of the language using a PC, but will begin by using embedded devices (RPi, Arduino, PICs) to see the differences in development processes. Students are assumed to have programmed previously in both Java and Python. Advanced programming concepts, such as debugging and troubleshooting techniques are also covered.
PROG 3012 - IoT Programming with Java Script