SYSC 2006 Foundations of Imperative Programming

Instructor - Winter 2021
The objective of this course is to understand the concepts that underlie most imperative programming languages and to be able to use this knowledge to learn new languages. The course will deal with designing and implementing small-scale programs, in particular the use of C programming language.
Course Outline

INFOVIS - Introduction to Information Visualization

Guest Lecturer and Teaching Assistant - University of Calgary - Fall 2017
To give students a first-hand experience, I ran activities asking students to critique sample visualization designs and sketch new visualization designs in a group. I believe for teaching software engineering and computer science running hands-on activities will create a more active environment for students to learn the new concepts.
Lecture
Slides: Graphical Excellence or Graphical Disaster
Sample of my tutorial slides
Slides: Introduction to Tableau
Slides: D3: Data-Driven Documents “Making a Chart”
Slides: Fish-eye and Distortion

INFOVIS - Thinking with Data

Teaching & Course Development Assistant - University of Calgary - Summer 2017
The goal of this course was to familiarize students with the process of data collection, data cleaning, and data presentation. The department of Computer Science offered this course for the first time and because of my previous experience with teaching other data science and analytics courses, I was invited to tutor for this course. I outlined all the course assignments and helped the instructor in designing the course projects. I have designed and delivered materials and activities for two 3-hour tutorial sessions weekly. During the tutorials, I grouped the students and led them for their course projects with weekly feedback.
Sample of my slides
Slides: Qualitative Studies and Analysis
Slides: Visualization(Excel & Tableau)
Slides: Visualization(Excel & Tableau - cont.)
Sample of assignment I developed
Qualitative Data Analysis

INFOVIS - Visualization and Visual Analytics

Guest Lecturer and Teaching Assistant - University of Calgary - Fall 2016
I provided students with an initial code framework and while I was running a live demo for them, I asked them to fill the blanks in the code framework at the same time. This will give the students an opportunity to get involved, make mistakes, and ask questions.
Sample of my coding tutorial
iPython Notebook: Introduction to Python and Panda

HCI - Human-Computer Interaction

Teaching Assistant & Student Project Leader - University of Calgary - Winter 2015
I taught students how to conduct interviews with stakeholders of a project, identify the requirements of the projects, the system tasks, as well as coding with C# and WPF languages. For this course, I was responsible for leading the projects of ten groups of students where each group had 4 students during the semester. I guided students through the entire cycle of task-centered system design technique to design and evaluate interfaces based on real-world tasks. Mentoring student groups involved helping students scope their projects, helping with technical problems, regular meetings with students to discuss problems and suggest possible alternatives to improve interface design. Finally, I evaluated the projects through review of their portfolios and final project demonstrations.
Sample of my slides
Slides: Task Centered System Design
Slides: Prototyping
Slides: Visual Studio and C#

CS - Introduction to CS Application Software

Teaching Assistant - University of Calgary - Winter 2014
The goal of this course was to familiarize students not majored in computer science with basic computer science software such as Microsoft Excel and Microsoft Access. I ran weekly tutorials, each week introducing a new concept such as conditional formatting and conducting hands on activities working with the software.

CS - eCommerce

Teaching Assistant - Australian National University - Winter 2012
For this course, I ran weekly tutorials engaging students in discussing how technology is changing global commerce and how to create new opportunities. I taught web programming, helped students with troubleshooting in their projects, and mark students assignments.