My definition of teaching is: the art of dumbing shit down.
I aim, to the best of my ability, to explain concepts in ways a layman can comprehend.
This typically involves the use of imagery and carefully selected analogies as the first stepping stone into any new subject.
I also favour the use of demos to tie the abstract concepts learned in class to the real-world.
I’ve been a teaching assistant for 10 years, serving multiple courses in roles ranging from leading tutorials, to lecturing, to designing and running hands-on labs.
I’ve also helped to re-design old courses and develop new ones as well.
I’m a firm believer that hands-on experience is required to truly learn any new technology or skill.
My focus has primarily been on teaching software (both programming and design), networking, and cloud computing.
A summary of my teaching history is shown below.
Course Development
Designed and implemented course materials (lab assignments and lesson plans).
- ECE361: Computer Networks I (Fall ‘16; Summer ‘19 - Winter ‘20)
- Complete course re-design (syllabus, tutorials, and labs) from 2019-2020, focusing on solving fundamental networking problems from the ground up
- Designed 7 new labs throughout the years, ranging from MAC all the way to OpenFlow
- Created new lab environment and flexible auto-marking system
- Set of technical demos to show in tutorials and lectures to bridge theory with reality
- Periodic surveys to gauge students’ progress, understanding, and interest
- ECE1508: Network Softwarization: Technologies and Enablers (Winter ‘18 - ‘20)
- Aided the design of the course syllabus and the schedule of lectures, involving instructors across 4 different universities
- Lectures pertaining to the SAVI testbed, overlay networks, NFV, SDN, and orchestration
- Created set of hands-on labs related to each of the above topics
- ECE1548: Advanced Network Architectures (Fall ‘12, ‘13, ‘15 - ‘17)
- Designed & implemented cloud computing labs for the SAVI testbed with topics on SDN, orchestration, monitoring, and cloud federation
- APS105: Computer Fundamentals (Winter ‘16, ‘17)
- Designed a new computer-based examination framework as part of a trial semester
- Designed an auto-survey system to track students’ motivation and concentration
Lecturing
Prepared lesson plans and lecture materials; delivered them in both in-person and online formats.
- ECE1508: Network Softwarization: Technologies and Enablers (Winter ‘18 - ‘20)
- Presented lectures that streamed simultaneously to 4 universities
- IEEE ComSoc Summer School (Summer ‘17)
- Created a day-long multi-session tech series on cloud computing; topics included SAVI, NFV, SDN, orchestration, monitoring, and container technologies
- Created hands-on tutorials related to the above topics and guided students through exercises to bring theoretical concepts to reality
- Presented set of demos to showcase Software-Defined Infrastructure
Teaching Assistant
In-lab advisor, teaching students how to assess and resolve technical issues, as well as leading tutorials.
- ECE244: Programming Fundamentals (Fall ‘15 - ‘20)
- Supported students in learning to program and debug C++ programs
- ECE1508: Network Softwarization: Technologies and Enablers (Winter ‘18 - ‘20)
- Presented technical demos to showcase SAVI SDI and use of heterogeneous resources
- Provided technical guidance and assistance to student projects
- APS105: Computer Fundamentals (Fall ‘14, ‘15; Winter ‘16 - ‘20)
- Guided students in writing and debugging C-based programs using best practices
- Led tutorial sessions for groups of up to 30 students, as well as 1-on-1 sessions
- Created new lab assignments, as well as questions for midterm and final exams
- ECE297: Communication and Design (Winter ‘14 - ‘20)
- Supervised 4 to 5 groups of students in semester-long software project
- Advised students on best approaches for tackling certain problems
- Evaluated code quality, technical presentations, and product pitches
- ECE361: Computer Networks I (Winter ‘15; Fall ‘12, ‘16, ‘18, ‘19)
- Led weekly tutorial sessions as well as weekly TA meetings
- Assisted students in resolving technical issues while building their networking knowledge
- ECE1548: Advanced Network Architectures (Fall ‘12, ‘13, ‘15 - ‘17)
- Provided technical consultation for students on the design and implementation of their final projects
- ECE461: Internetworking (Fall ‘13, ‘14)
- Guided students in configuring new networks and root-causing network-related issues
- APS106: Fundamentals of Computer Programming (Winter ‘12)
- Led tutorials for groups of roughly 30 students on the C language
- Assisted students and fellow TAs in writing and debugging code using best practices
- ECE466: Computer Networks II (Winter ‘12)
- Assisted students in resolving issues with their network simulations
- Guided students in the analysis of network data to tie theory with experimental results
Tutoring
1-on-1 tutoring for students, identifying the specific needs and knowledge gap of the students, and preparing customized lesson plans and exercises.
- APS105: Computer Fundamentals (Fall ‘11)
- APS106: Fundamentals of Computer Programming (Winter ‘12)