Teaching
WS > Teaching
I have been affiliated with Habib University since August, 2012 where I founded the Computer Science program. Classes began at Habib University in Fall 2014.
I have taught diverse courses, listed below, but some constants in my courses are minimal use of paper, the use of technology, and teamwork. Except for short, in-class quizzes and in-person exams, none of my coursework involves paper submissions. This is made possible by the use of LMS and, more usefully, GitHub Classroom. Assignment submissions are usually code and/or LaTeX files.
Students today have immense access to information. I am but one source. Rather than a purveyor of information, I try to be a deliverer of outcomes. One important outcome is for students to see each other as collaborators, and to build the confidence to convey, share, and receive information among each other. Working with others is an important life skill required in whichever pursuit the students choose after their undergraduate. I enforce teamwork in my courses and over time have developed a buddy system around it.
I am a first-principles person. My approach is summarized in the following comment from one of my student evaluations.
"One must appreciate his philosophy of a bottom-up approach to learning. to elaborate, the instructor chooses to focus upon the foundational aspects of a subject and eschews an implementation-based approach, holding that a complete comprehension and mastery of these aspects effectively brings one to plane where the sky is the limit – what follows next simply builds upon and uses what came before thus, one can simply self-learn and progress further. additionally, a complete understanding of a notion helps in implementation itself – given that implementation is simply a form of articulating what one wishes to convey or achieve."
Habib University, Fall 2014 onward
- CS 100 Computer Science Freshman Seminar: Fall 2017, Fall 2018
- CS 101 Programming Fundamentals: Fall 2017, Fall 2018, Fall 2019 (lab only), Fall 2022
- CS 110-1 Computational Thinking I-II: Fall 2014, Fall 2015, Spring 2016, Summer 2016, Fall 2016, Spring 2017
- CORE 111 Logical Problem Solving: Fall 2016, Spring 2017
- CS/MATH 113 Discrete Mathematics: Spring 2018, Spring 2020, Spring 2021, Spring 2022, Spring 2023
- CS 130 Digital Logic and Design: Spring 2016
- CS 132 Elements of Computing Systems: Spring 2015, Spring 2017
- CS 200 Functional Data Structures: Spring 2016, Spring 2017
- CS 201 Data Structures II: Spring 2018, Spring 2020, Spring 2021, Spring 2022
- CS 212 Nature of Computation: Fall 2021, Fall 2022
- CS 224 Object Oriented Programming and Design Methodologies: Summer 2017, Fall 2018, Summer 2019, Fall 2019
- CS 400 Computer Science Senior Seminar: Fall 2018
- CS 412 Algorithms: Design and Analysis: Spring 2022, Spring 2023
- CS 440 Computer Graphics: Spring 2018, Fall 2019, Fall 2020, Fall 2021, Fall 2022
- CS 491-2 Kaavish I-II: every semester since Fall 2017
Pitzer College, Spring 2019
- CSCI 155 Computer Graphics: Spring 2019
- CSCI 056 Object Oriented Game Design: Spring 2019
Texas A&M Univeristy, Fall 2013
- CSCE 443/VIST 487 Game Development: Fall 2013 (with Scott Schaefer)
FAST-NUCES Karachi, 2011-2012
- CS 4XX Computer Graphics: Spring 2012 (with Atika Burney)
- CS 2XX Automata Theory: Spring 2012
- CS 4XX Human Computer Interaction: Fall 2011
- CS 1XX Introduction to Computing: Fall 2011 (with Syed Hammad Ahmed)
Friedrich-Schiller-Universität Jena, 2008-2011
- GPGPU with CUDA
- Information Visualization Seminar
- Shape Retrieval Seminar