Computer architecture (Undergraduate level). Principal instructor: This course offers a comprehensive overview of the fundamental concepts of computer organization and architecture, covering a range of topics including the history of computing, the power wall, various instruction set architectures, critical paths, pipeline design, and cache memory. Students apply their knowledge by using Verilog to develop a replica of a classical pipelined MIPS processor and run a Hanoi tower program on it using MIPS assembly language. This hands-on approach provides students with a deeper understanding of the inner workings of computer systems and the interplay between hardware and software.
Embedded systems II (Undergraduate level). Principal instructor: This course covers advanced topics in embedded systems, including real-time scheduling, basic kernel development, and the use of advanced peripherals like USB and Ethernet with TCP/IP. Students gain hands-on experience with the FRDMK64F board, a platform that offers a comprehensive set of features for the development of a wide range of embedded applications. Through this course, they deepen their understanding of the key concepts and techniques involved in the design and implementation of advanced embedded systems.
Topics on advanced control with application to the control of Aerial Robots (Undergraduate level). Assistant/technical instructor (~20% of the course): This course provides a comprehensive introduction to the fundamental concepts of basic nonlinear control theory, with a focus on its application to quadrotors. Students apply what they have learned through hands-on experience with the Crazyflie platform, where they get to test and refine their own control designs. Through this practical approach, they gain a deeper understanding of the key principles and techniques involved in nonlinear control, and how they can be applied to real-world systems.
Embedded Software with application to the control of Aerial Robots (Master). Assistant/technical instructor (~20% of the course): This course provides a comprehensive introduction to the fundamental concepts of basic nonlinear control theory, with a focus on its application to quadrotors. Students apply what they have learned through hands-on experience with the Crazyflie platform, where they get to test and refine their own control designs. Through this practical approach, they gain a deeper understanding of the key principles and techniques involved in nonlinear control, and how they can be applied to real-world systems.
Embedded Systems (Master level). Assistant instructor (~10% of the course): This segment of the course explores the fundamental principles of real-time kernel programming using the FRDMK64F board as a platform.