Osion kuvaus

  • Important links

    The course details can be found in A+ page.

    Scope

    This course covers basic concepts on embedded programming of short-range wireless communication devices using Bluetooth Low Energy. The lectures and exercises are based on C++ programming language, which requires significant C programming language knowledge.

    Overview

    The Internet of Things (IoT) is a key concept in the digitization of society since it allows data acquisition of different physical phenomena without human intervention to reach the goals set by novel applications and services. It also refers to an extension of the Internet and other network connections toward simple devices (things) deployed in our daily living environment to allow the cyber world to interact with the physical world. This course focuses on Machine-type communications (MTC) technologies, which enable automated data communications among devices, but also must be extended toward core communication technologies using some data transport infrastructure. This course outlines the basic technologies required to develop an IoT application using simple devices.

    Block diagram of an IoT system

    The complete IoT system is very complex and requires several technologies to successfully interact with each other as shown in the figure above. This course covers the basic development concepts on the Device Side.

    Learning outcomes

    After completing this course, you are are required to aim at reaching the following goals.

    • master the object oriented programming using C++ Programming Language Syntax, which will allow you to read and understand software written in this language.
    • master basic C++ Programming Language semantics to create meaningful statements in this programming language.
    • use the C++ language to implement computational tasks.
    • use a C++ development environment to write, build and validate software.
    • use the Git version control system to keep track of software development.
    • analyze the key requirements of a given IoT application on the device side.
    • use C++ language to develop device-side software to meet the requirements

    Organization


    This course is organized as a basic course in embedded software programming of wireless communication devices based on Bluetooth Low Energy protocol using C++ programming language. Correspondingly, the course is organized as two parts, in addition to the first lecture.

    Kick-off lecture

    The first lecture will be an online meeting on General Channel of Course Microsoft Teams @ Tuesday 09.01.2024 @ 12:15.

    In this lecture, we will cover the importance of Machine-type communications in Internet-of-Things ecosystem, and go over the organizational details of the course.

    Part I: Basics of C++ programming

    This part is fully online on A+ system.

    In this part, we will cover basic constructs of C++ language and discuss object oriented programming principles.

    This part is composed of 4 modules on A+ system, where you can find some introductory content and programming task assignments. The purpose of the provided content is not to present you all the details of the language, as a complete reference would do, but rather to summarize the basic syntax and features.

    1. Getting started (Deadline Sunday, 14.01.2024 @ 19:59)

      In this module, you will setup a development environment on your computer for the course. This part is prerequisite for the other parts and you will be provided with detailed instructions.

      You must collect at least 50/100 points from the assignments.

    2. Basics of C ++programming (Deadline Sunday, 19.01.2024 @ 19:59)

      You must collect at least 50/100 points from the assignments.

    3. Containers in C++ (Deadline Friday, 26.01.2024 @ 19:59)

      You must collect at least 50/100 points from the assignments.

    4. Classes and object-oriented programming with C++ (Deadline Friday, 02.02.2024 @ 19:59)

      You must collect at least 50/100 points from the assignments.

    Part II: Bluetooth Low Energy-based IoT device programming using C++

    In this part, the course materials and exercise assignments are on A+ system. We will organize short face-to-face exercise sessions in a classroom.

    In this part, you will program nRF52-DK development kit using Mbed OS to build Bluetooth Low Energy applications. This part is composed of 5 modules.

    1. IoT device hardware (Deadline Friday, 09.02.2024 @ 19:59)

      You must collect at least 50/100 points from the assignments.

    2. IoT device software (Deadline Friday, 16.02.2024 @ 19:59)

      You must collect at least 50/100 points from the assignments.

    3. Introduction to Bluetooth Low Energy (Deadline Friday, 01.03.2024 @ 19:59)

      You must collect at least 50/100 points from the assignments.

      In the this and following modules, you will use your mobile phone to test your solutions.

    4. Bluetooth Low Energy Services (Deadline Friday, 08.03.2024 @ 19:59)

      You must collect at least 50/100 points from the assignments.

    5. Bluetooth Low Energy Security (Deadline Friday, 15.03.2024 @ 19:59)

      You must collect at least 50/100 points from the assignments.

    Project

    At the end of Part II, you are required to complete a programming project, which requires to use all the covered concepts by implementing two Bluetooth Low Energy services.

    Learning diary

    At the end of the course, you will submit a self-reflection learning diary.

    The diary is a self-reflection of the modules in Part II, and self evaluation.

    Grading

    The four course parts have the following weights on the final grade.

    1. Part I: 20%.

    2. Part II: 50%.

    3. Programming project: 20%.

    4. Learning diary: 10%.

    The complete details of the course organization is available in A+ page.

    Important

    If you are not able to login to A+ system, go to plus.cs.aalto.fi and login there (top right corner). Once you have logged in, an account will be created for you. Then, send a message over course Teams by directly mentioning @Ali Yusein.