haoma7.github.io

Teaching

Bertrand Russells wrote, “What have I lived for? Three passions, simple but overwhelmingly strong, have governed my life: the longing for love, the search for knowledge, and the unbearable pity for the suffering of mankind. “ I feel you, Mr Russells. I love the teaching & learning process, since the positive reinforcement between them is a intriguing experience that satisfies my strong curiosity about the world.

!!! note “Some random thoughts”

Over the years, I tend to learn things bottom-up so that I can have a in-depth understanding of things that I wanna learn.  It fits the teaching activity, since the bottom-up approach is able to provide students and myself with detailed logical explanations for 'Why' questions. However, sometimes such a thirst for details is like a obsessive-compulsive disorder (OCD) for logically rigorousness which can slow down the learning process. Just like a balance between exploration and exploitation is needed in reinforcement learning,  a balance between the top-down approach and the bottom-up approach is also required, so that a equilibrium between the breadth and the depth of understanding can be reached. I am working on it now. 

Teaching Experience

I have taught in Kwantlen Polytechnic University for several years.

!!! note “Lecturer Experience”

1. INFO 4330 Data warehousing and data mining: a course focused on big-data analytic platforms like Hadoop and Spark, data mining and data visualization using Tableau. 

2. INFO 4105 Search enginee principles: covers the fundamentals of search engine and information retrieval, modern search engine optimization and the Elastic Stack(Elasticsearch, Kibana, and Logstash). 

3. INFO 1112 Principles of Program Structure and Design: covers modern C++, including pointers and smart pointers, class and objects, move and copy constructors, operator overloading, inheritance, polymophism, exception handling and Lambda expression. 

4. INFO 2315 Data Structure: a course that use Java as a vehicle to teach data structures and associated algorithms commonly used in system development, including Linked Lists, Stacks, Queues, Binary Trees, Balanced Trees and Graphs.

5. INFO 1213 Web Application Development: focuses on front-end web development technologies, including HTML, CSS, Javascript, JQuery, Bootstrap and React.js/Vue.js.          

I have worked as Teaching Assistants during my graduate studies. It’s a good experience to add onto the daily research and learning.

!!! note “Teaching Assistant Experience”

1. DSCI 572 Supervised Learning II (Graduate course, UBC): a course designed for students in Master of Data Science program that covers optmization, neural network basics, convolutional neural networks (CNN), and advanced topics such as autoencoders and generative adversarial networks (GAN). 
   
2. ELEC 221 Signals and Systems (Undergraduate course, UBC): a course for the 3rd-year students in Faculty of Applied Science that focues on Fourier series, Fourier transform and state-space representation. 

3. APSC 160 Introduction to Engineering Computation (Undergraduate course, UBC): a course for the first-year students in Faculty of Applied Science that focuses on C programming language and its application. 

4. AMCS 201 Applied Mathematics on Differential Equations  (Graduate course, KAUST): a course for the master students in Engineering. It covers Ordinatory Differential Equations (ODE) and Partial Differential Equations (PDE).