Home Teaching
Teaching
Cancel

Teaching

Teaching Assistant

  • ENGG 6600 - ST: Internet of Things (Summer 2023)
    School of Engineering, University of Guelph, Guelph, ON
    • Marked assignments that challenged the student’s knowledge and understanding of the main components of an IoT system: sensors, networking, and data analysis. Also, evaluated literature surveys on the different IoT systems and their contributions to future academic and industry work in Smart Cities.
  • ENGG 3410 - Systems and Control Theory (Winter 2023)
    School of Engineering, University of Guelph, Guelph, ON
    • Led tutorials that reviewed topics and aspects of the course taught during the lecture. Also, provided supplementing discussions on methods to solving different systems and control theory problems.
    • Conducted a lab whose goal is to identify the transfer function of a DC motor. Data is collected by the students from running the motor through a custom GUI and analyzed using MATLAB to get the transfer function.
  • ENGG 4420 - Real-time Systems Design (Fall 2022)
    School of Engineering, University of Guelph, Guelph, ON
    • Conducted labs that would introduce real-time concepts from a system and computing perspective. The labs included tasks that required students to program an STM32 microcontroller using preemptive real-time kernels; μC/OS and FreeRTOS.
    • Assisted in a lab requiring the designing of a PID controller using the STM32 board and applying the different concepts of real-time operating systems such as; Mutexes, Semaphores, and Queues.
    • Supervised and evaluated a project requiring the creation of a real-time Intruder Detection System (IDS) using a motion sensor and an HD camera that is controlled by the STM32 board.
  • ENGG 6600 - ST: Software Architecture of AI Systems (Summer 2022)
    School of Engineering, University of Guelph, Guelph, ON
    • Marked assignments and labs requiring students to implement and modify AI systems for data processing and training within classifiers. Used Jupyter notebooks to create simulations that classify different types of raw data.
  • ENGG 4560 - Embedded Systems Design (Winter 2022, 2023)
    School of Engineering, University of Guelph, Guelph, ON
    • Introduced basic principles of embedded system design through lab activities using DE1-SoC development kits. The embedded designs were programmed in Verilog HDL using Quartus software tools.
    • Taught the basics of using the different internal components of an FPGA through Verilog HDL. For example, the generation of different IPs and Memory Mapped registers for simple FPGA coprocessor designs.
    • Supervised and evaluated a final project where groups designed their own AES encryptor implementation composed of an HPS portion and an FPGA coprocessor.
  • ENGG 6400 - Mobile Applications Development (Winter 2022)
    School of Engineering, University of Guelph, Guelph, ON
    • Marked assignments that required students to implement mobile applications that used many different programmable features of current mobile devices such as common widgets (i.e. buttons, drop-down, labels, text inputs), cameras, and maps.
  • ENGG 3050 - Embedded Reconfigurable Computing Systems (Fall 2021, 2022)
    School of Engineering, University of Guelph, Guelph, ON
    • Assisted in the introduction of the analysis, synthesis, and design of reconfigurable computing systems to students.
    • Worked with Xilinx Vivado as the main teaching environment and workspace in conducting each lab activity.
    • Headed labs that provided hands-on projects and activities that implemented basic embedded system components and architectures using the Nexys A7-T100 FPGA training board. These labs included the following concepts:
      • Evaluating and comparing performances of different logic designs through the resources used to synthesize each implementation.
      • Implementing simple SIMD processors and analyzing their performance using different operations of designed Arithmetic Units.
  • ENGG 3100 - Engineering and Design III (Winter 2021)
    School of Engineering, University of Guelph, Guelph, ON
    • Assisted in labs that gave students opportunities to exercise the knowledge they gained from previously advanced engineering and basic science courses and combine them with key design skills from ENGG1100 and ENGG2100 to solve open-ended problems.
    • Conducted tutorials that presented design tools such as; design modelling simulations, sensitivity analysis, life cycle assessment, etc. Each tool was used to help reinforce the designs formulated by each group.
    • Guided students through their design projects, giving them pointers and aid in writing interim reports, technical memos, design presentations, and final projects. Each deliverable was graded with rubrics that gauge the project management, technical writing, and communication skills required for an engineer to effectively formulate, analyze, and present a design.
  • ENGG 3210 - Communication Systems (Winter 2020)
    School of Engineering, University of Guelph, Guelph, ON
    • Conducted labs on the different signal encoding techniques through Matlab and Simulink (i.e. BPSK, QPSK, M-Ary PSK, Hamming code, etc.).
    • Marked assignments and tests related to communication system topics such as; Signal Encoding, Nyquist theorem, Shannon formula, and other Sampling techniques.
  • ENGG 4430 - Neuro-Fuzzy and Soft Computing Systems (Winter 2020)
    School of Engineering, University of Guelph, Guelph, ON
    • Marked assignments and tests related to neural network topics such as; Basic concepts and models of ANN, Reinforcement learning, Recurrent neural networks and Unsupervised learning, Fuzzy logic and Fuzzy sets, and Neuro-fuzzy systems.
  • ENGG 4540 - Large Scale Architecture (Fall 2019, 2020, 2021)
    School of Engineering, University of Guelph, Guelph, ON
    • Managed the labs that discussed the core applications that are used in large-scale software development (i.e. UML Diagrams, Code Review, Version Control, and Unit Testing).
    • Oversaw projects that required the students to pick an open-source software application. Then, they would apply the different software development concepts that they learned in class to help them develop new features and bug fixes for the selected application. These projects were:
      • A lightweight pedometer Java application for Android that uses the built-in step-sensor on the mobile device for minimal battery consumption.
      • A simple messaging Java application for Android that allows private conversations with friends through a shared server.
      • A cross-platform music bot for Discord servers that is written in a combination of Apache and Java.
  • ENGG 4200 - Wireless Sensor Networks (Fall 2019)
    School of Engineering, University of Guelph, Guelph, ON
    • Managed the labs that experimented with different wireless technologies and interfaces such as; Omnet++, XBee and RFID tags.
    • Conducted labs that dealt with the following concepts and applications;
      • Network simulations using the Omnet++ IDE.
      • Wireless transmission and data collection using a simple photoresistor circuit that transmitted data to an Arduino using XBee SC2 Modules.
      • Simple Arduino-based locking mechanism using RFID tags and cards that were paired with an RFID scanner and Nokia 3110 LED screen.
      • A trilateration implementation using RSSI values from Proximity Beacons that transmitted packets to a Raspberry Pi 3 via BLE.
  • ENGG 4540 - Advanced Computer Architecture (Winter 2019)
    School of Engineering, University of Guelph, Guelph, ON
    • Worked with SimpleSimulator to create simulations on the different advanced concepts in computer architecture. The labs included using the different benchmarks provided by the SimpleSimulator application to investigate and learn about the following concepts;
    • How to simulate basic processor capabilities using SimpleSimulator.
    • Testing the limits of provided processor benchmarks and comparing them with one another.
    • Different cache configurations and their effects on the processor speed.
    • Different branch prediction implementations and their effects on CPU performance.
  • ENGG 3380 - Computer Organization (Winter 2019)
    School of Engineering, University of Guelph, Guelph, ON
    • Worked with the Nexys 3 Spartan-6 FPGA Trainer Board paired with the Xilinx-ISE Design Suite to model and simulate basic VHDL architectures and basic computer architecture concepts. Included in the labs were activities on;
      • Learning to manipulate the seven-segment display on the Nexys board.
      • Introduction to assembly programming using the MARS MIPS Simulator.
      • VHDL implementations of the following basic computer architecture components;
      • Register files and other data storage modules
      • Arithmetic Logic Unit
      • Instruction Control Unit
      • Simple CPU putting together all the previous parts.
    • Oversaw a final project where the students were to implement a fully functional basic CPU architecture capable of carrying out a function similar to the Fibonacci sequence and display the results on the Nexys Board.
  • ENGG 2400 - Engineering Systems Analysis (Fall 2018)
    School of Engineering, University of Guelph, Guelph, ON
    • Taught tutorials that covered the basic concepts of modelling and analyzing engineering systems. The tutorials included lessons in;
    • Modelling basic mechanical, thermal, electrical and hydraulic systems.
    • Translating systems and converting them to one other using equivalent derivations of each component.
    • Analyzing models by converting systems to first and second-stage differential equations.