Teaching

For more on my pedagogical approach, you may wish to read my Teaching Philosophy.

University of Notre Dame

Spring 2024
Principles of Computing
EG10118 Engineering Computing - Section 08
Fall 2023
Principles of Computing
CSE Service Projects
Summer 2023
Balfour Programming - ALBA
Web Dev 4 All
Spring 2023
EG10118 Engineering Computing - Sections 06 and 08
CSE Service Projects
Fall 2022
Principles of Computing
CSE Service Projects
Summer 2022
EG Ethical and Professional Issues
CSE 34331 Programming Paradigms
Balfour Programming - ALBA
RET Python
Spring 2022
EG10118 Engineering Computing - Sections 06 and 08
CSE Service Projects
Fall 2021
Principles of Computing
CSE 40793 Software Development Practices
CSE Service Projects
Summer 2021
Balfour Programming - ALBA
RET Python
CSE 34331 Programming Paradigms
EG Ethical and Professional Issues
Spring 2021
CSE 30332 Programming Paradigms
CSE Service Projects
Winter 2021
Bias in Technology and CSE Service Projects
Fall 2020
CSE-40793 Software Development Practices
CSE-30332 Programming Paradigms
EG Engineering Programming
Undergraduate Research
Summer 2020
CSE-30332 Programming Paradigms
Spring 2020
EG Intro to Engineering II - sections 3 and 4
CSE Agile TSP
Undergraduate Research
CSE Service Projects
Fall 2019
CSE-40793 Software Development Practices
CSE-30332 Programming Paradigms
CSE-40600-028 CSE Service Projects
Spring 2019
CSE-40287-01 Agile Team Software Project
EG-10112-03 Intro to Engineering II
CSE-40600-04 CSE Service Projects
Fall 2018
CSE-30332-01 Programming Paradigms
CSE-20110-01 Discrete Mathematcis
CSE-40600-04 CSE Service Projects
Spring 2018
CSE-20312-01/02 Data Structures
EG 10112-03/04 Intro to Engineerng Systems II
CSE 30600-04/40600-04 CSE Service Projects
Fall 2017
CSE-30332-02 Programming Paradigms
CSE-20110-01 Discrete Mathematcis
CSE-20311 Fundamentals of Computing I
CSE 30600-04/40600-04 CSE Service Projects
Spring 2017
CSE-30332-02 Programming Paradigms
CSE-20312-01 Data Structures
CSE 30600-04/40600-04 CSE Service Projects
Fall 2016
CSE-30331-02/CSE-34331 Data Structures
Explores the fundamental techniques in the design and analysis of non-numerical algorithms and their data structures, such as lists, stacks, queues and more advanced ones such as priority queues and search trees. Also covered are design techniques such as divide-and-conquer in the context of sorting and searching, and graph algorithms.

Michigan Technological University

CS 3141 — Team Software Project (Spring/Fall 2014)
I have taught the Team Software Project course, where I took advantage of the opportunity to design the course to interweave communication-centric activities using inverted classroom techniques like Process Oriented Guided Enquiry Learning (POGIL). My responsibilities included all the classroom teaching, designing the syllabus, schedule and assignments, grading and reporting.
CS 1122 — Introduction to Programming II (spring/Summer 2012, Summer 2013, Summer 2014)
In teaching CS1122, I enjoyed a lot of freedom modifying the syllabus and changing the way many topics were taught and tested. My responsibilities included all the classroom teaching, syllabi and schedule design, assignment design, reporting and grading - both manual and setting up automated grading.
CS 1121 — Introduction to Programming I (Summer 2011)
In this course I leveraged existing teaching tools like Turingscraft Codelab and an existing automated grading system.
Summer Youth Programs — Women in Computer Science (Summer 2013 and summer '14)
Women in Computer Science was a scholarship course designed to attract young women to the computing fields through a combination of hands on programming and exposure to a realistic picture of the field. The course combined mobile app programming sessions interlaced with real-time interviews of successful female computing professionals, interactive computing lab demos and introductory lectures on different areas of computing, linking back to the notion of real-world impact.
Summer Youth Programs — Computer Science for Women in Engineering (Summer 2012)
This course used interactive activities to illustrate different computing concepts like cryptography, networking and algorithms to middle and high school students.
Summer Youth Programs — Computer Science (Summer 2012)
This course used interactive activities to illustrate different computing concepts like cryptography, networking and algorithms to middle and high school students. Students also worked on a week-long project in computing.
Summer Youth Programs — Designing for Humans - HCI and Usability (Summer 2012, Summer 2014)
This was an intense week-long course taught students about mobile app design, usability testing, designing for specific user groups, wireframing and other types of prototyping and 3D modeling.
Summer Youth Programs — HCI Project (Summer 2012)
In this course, students worked on a week long project based on principles of human computer interaction.