During my graduate degree, I’m working as a Teaching Assistant (TA) for a variety of undergraduate computer science courses at the University of Ottawa. This involves teaching weekly lab/tutorial sessions, holding weekly office hours, grading theory and programming assignments and proctoring midterms and final exams. Below is a list of courses I’m currently TA-ing and have previously TA-ed.

Spring-Summer 2018 (Current):

CSI3140 WWW Structures, Techniques and Standards

The objectives for this course are:

  • Understand the World Wide Web fundamentals and protocols.
  • Learn client side programming.
  • Learn server side programming.

The course website can be found here.

Winter 2018:

CSI2132 Databases I

The objectives for this course are:

  • Learn fundamental database concepts including entity-relationship modeling, relational algebra and relational calculus, relational databases and functional dependencies and normalization.
  • Understand how to create and manage databases using SQL.
  • Design a web application that uses a database in a team project.

This course does not have a public website. A github link to the material I teach in this course can be found here.

Fall 2017:

CSI2110 Data Structures and Algorithms

This is the second time I TA this course. The course website can be found here.

Winter 2017:

CSI2101 Discrete Structures

The objectives for this course are:

  • Learn advanced concepts in discrete mathematics and how to apply them to various types of problems in computing.
  • Analyze algorithms, prove correctness of programs, model network problems with graphs and use number theory to solve cryptographic problems.
  • Practice writing precise mathematical proofs.

The course website can be found here.

Fall 2016:

CSI2110 Data Structures and Algorithms

The objectives for this course are:

  • Learn in a systematic way the most commonly used data structures with emphasis on their abstract properties.
  • Understand the typical algorithms that operate on each kind of data structure and learn how to analyze their performance.
  • Learn how to compare different data structures for solving the same problem, and choose the best data structure for the given problem.

The course website can be found here.