SYSC 3310 (Winter 2019, Fall 2019) – Introduction to Real Time Systems

Principles of event-driven systems. Microcontroller organization. Development of embedded applications. Programming external interfaces, programmable timer. Input/output methods: polling, interrupts. Real-time issues: concurrency, mutual exclusion, buffering. Introduction to concurrent processes.

SYSC 4310 (Fall 2019) – Computer Systems Architecture

Evolution of computer systems architecture to improve performance. Memory hierarchy, hardware accelerators. Instruction level parallelism, pipelining, vector processing, superscalar, out-of-order execution, speculative execution. Thread level parallelism, multi-core, many-core, heterogeneous systems. Processor-level interconnect bus, non-uniform memory access. Application-oriented architectures. Virtualization.

SYSC 5807 – Section Z (Winter 2020) – Hardware/Software Co-Design

Principles of hardware/software co-design. Power, performance and size trade-offs. Top-down design using High Level Synthesis. Bottom-up design using Hardware Description Languages. Softcore processors on FPGAs and associated toolchain porting.

Senior projects (Capstone) supervision

Robotic mobile printer

Development of a robotic mobile printer, capable of spray-painting an uploaded image on the floor.

Robotic crate carrier based on 3D models

Development of a sensorless robotic system capable of moving crates, based on a software 3D representation of the physical world.

Robotic guitar player

Development of a robotic guitar player, capable of performing pre-recorded music as well as improvising in real-time along with human players.

eHealth – Smartphone App for vascular pulse measurement (2018/2019)

Smartphone application capable of vascular pulse measurement through image processing.

eHealth – Wearable heart-rate and temperature monitor (2018/2019)

Wearable device capable of monitoring user’s heart rate and body temperature.


Attended Carleton Educational Development Center Certificate in University Teaching course