My main undergraduate and postgraduate teaching tracks include embedded system design, reconfigurable computing, hardware/software co-design, performance evaluation, microcontrollers and interfacing, computer organization and architecture, and digital logic design. On occasions, I have taught courses, such as, cryptography, data security, data structures and algorithms, etc. I’m experienced with project-based learning and well-trained on creating collaborative and cooperative learning environments.