My Training Program


Hello and welcome to the training page of my website. In this page, you can find more information about the programs I teach, my teaching style and experiences, how the sessions work and how to book an appointment. Please kindly navigate from the menu on the right side. Thanks!

My Training Program Subjects

In general I teach three categories of topics: Programming, Mathematics and Physics. I have explained my teaching courses in section 5 of this page here. If you have any enquiry about the mentioned courses, please feel free to contact me.
However the focus of my current training program is on preparing students and professionals for a software engineer career and I help them have a better understanding of fundamentals of Data Structure and Algorithms. I use multiple resources for my training program and for the coding part, I usually follow Leetcode problems for ease of having access to it.
I have categorized different topics of data structure and algorithms and for each topic, I have selected several Leetcode problems. You can find the details of that part in the leetcode page of my website here.
What I’ll do in my training program for each student, I’ll go through each topic and first cover the theoretical part of it thoroughly. Later on, I’ll select several leetcode problems together with my student and we’ll solve the coding part together to have a deeper and more practical knowledge of that topic. For the programming language, I mainly use Python.

My Teaching Style

The Organized Patient Instructor: What I’ve heard multiple times from my students is “you are so organized and patient” and I believe those are the most important and necessary factors for any teacher. During my teaching sessions, I listen carefully to my students to understand the parts that they are struggling with and after that we’ll carefully go through those concepts and I’ll teach them their weaknesses until we make sure that they are no longer strange with those concepts.
Teaching Through Examples: I usually ask my students which way they prefer to study and most of my students prefer to study through problems of their assignments, specially online webwork assignments. So what we’ll do is we will go over their webwork assignments to see which problems they haven’t solved properly or even the problems that they have tried to solve a couple of times and see which part they are struggling in. After finding their weaknesses in those examples, we would solve a couple of similar problems either from their webwork problems or from the suggested problems of their textbook or old exams to make sure they are pretty comfortable with the concepts that they were struggling with.
Conceptual Teaching: Some of my students prefer to learn through their textbook. This particularly happens for the conceptual courses where they are struggling with learning concepts of the course with themselves. Linear algebra and more advanced math courses and physics courses are among them. In that case, we start reviewing the sections of the course where my students need help in those sections and after teaching them the concepts, we solve a couple of examples from their textbooks, webwork problems, old exams or other sources.
Crash Course Teaching: Some students ask me to review the entire course in a few sessions. What I’ll do for those students is I would prepare a summary of the important points of the course and we quickly go over all the materials of the course and at the end, in the areas that they feel they need more help in them, we would solve a couple of more examples to make sure they are totally ready for their exam.

My TA Experiences

  • Teaching Assistant of Math/Mech 358 Engineering Analysis at UBC
  • Teaching Assistant of Math 317 Calculus IV at UBC
  • Teaching Assistant of Math 215 Elementary Differential Equation at UBC
  • Teaching Assistant of Math 102 Differential Calculus at UBC
  • Teaching Assistant of Pre-Calculus Math (Supervisor of Labs) at UBC
  • Instructor at Math Learning Center of UBC Mathematics Department at UBC

My Teaching Experiences

Teaching the following second year Computer Science courses (Course number is the equivalent of UBC courses):

  • Data Structure and Algorithms (CPSC 221, CPSC 259)

Teaching the following first year Math courses (Course number is the equivalent of UBC courses):

  • Pre-Calculus (Math 001)
  • Differential Calculus (Math 100,102,104,110,180,184)
  • Integral Calculus (Math 101,103,105,121)
  • Linear Systems(Math 152)

Teaching the following first year Physics courses (Course number is the equivalent of UBC courses):

  • Energy and Waves (Physics 101)
  • Electricity, Light and Radiation (Physics 118)
  • Introductory Physics for Engineers II (Physics 158)
  • Mechanics I (Physics 170)

Teaching the following second year Math courses (Course number is the equivalent of UBC courses):

  • Elementary Differential Equations (Math 215)
  • Mathematical Proof (Math 220)
  • Matrix Algebra (Math 221 )
  • Ordinary Differential Equations (Math 255)
  • Differential Equation (Math 256)
  • Partial Differential Equation (Math 257)
  • Introduction to Biometrics and Business Statistics (FRST 231)

Teaching the following third year Math courses (Course number is the equivalent of UBC courses):

  • Complex Analysis (Math 300)
  • Introduction to Number Theory (Math 312)
  • Elementary Differential Equation II (Math 316)
  • Introduction to Linear Programming (Math 340)

How the Sessions Works

The sessions are held completely online. I use two applications for our online session, Google Meet for our video call and Miro for our online whiteboard. For better performance, two devices are required for each session, your laptop for the Google Meet connection and your tablet/iPad (or your phone if you don’t have one) for the Miro application. If we need to edit a code simultaneously, we can either use the share screen feature of Google Meet or use the website. 
Miro is an online whiteboard which multiple users can have access to and edit in real time. At the end of each session you can download our work but for that purpose, you have to sign up for the Miro and download the application in advance. Miro application is available for all Android, Apple and Desktop users. I will keep our work online for one year, so that you will be able to have access to our work online as well as downloading it for that period of time. Our teaching sessions are available for both individual and group students. A template Miro file editable by the public is available here.

How to Book an Appointment

Please use my Calendly page below ( to book a free trial session. Further instruction will be provided for my training program during our trial session.

Rates and Payment Methods

I accept all kinds of cards (Debit/Credit/Visa/Mastercard/American Express …). Additionally for Canadian students, I accept E-transfer method of payment as well. Rates vary depend on a few factors such as subject of the course, nature of training (for university preparation or job preparation), number of sessions etc. We will discus about it in our 15 minutes trial session.