Note: This program was previously called IT Embedded Systems Programming.
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.
In this graduate certificate 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 is a mandatory credit course, providing the opportunity to apply your knowledge and skills outside the classroom.
- Opportunities are typically unpaid and last approximately 5 weeks.
- Transportation, accommodations and other costs related to work experience courses are your responsibility.
- 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 instil 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.
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.
Recognizing prior learning / transfer credits
If you have previous learning (course, employment, etc...) that's relevant to your program, you may be able to apply to earn credit. Not all programs are eligible. Learn about our recognizing prior learning (RPL) process.
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 - Integrated Project
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.
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
PROG 5015 - Introduction to Embedded Systems Programming
This course introduces the fundamentals of programming in relation to embedded development and covers basic programming concepts such as decisions, loops, and functions.
SAFE 1000 - Introduction to WHMIS (Workplace Hazardous Materials Information Systems)
This course offers learners basic overview of WHMIS principles and establishes a solid foundation to support workplace-specific training on the safe storage and handling of controlled/hazardous products. Upon successful completion of the course, students receive basic WHMIS certification.
SAFE 1001 - Introduction to NS OH&S Act
This course offers students an introduction to the Occupational Health & Safety (OH&S) Act of Nova Scotia, which is required by any person employed in a Nova Scotia workplace. This is a generic, introductory course that provides basic knowledge of the Act for students and is considered to be the basis from which more specific training can be given.
In addition to their required courses, learners will also complete nine credits from a list of electives, or an acceptable equivalent based upon approval from faculty and the academic chair: