Hi, I’m Mike! I have a degree in computer science from Caltech and worked for many years in scientific programming at JPL/NASA, and now I teach coding and computer science to middle school and high school students in the Pasadena, California area and surrounding communities such as La Cañada Flintridge, San Marino, South Pasadena, Glendale, Altadena, Arcadia, and Alhambra.
I offer a free phone consultation to help you understand what the lessons will cover, what skills your child will gain, and how long it might take to reach your goals. I also offer a free 30-minute lesson where your child and I will do some programming together. This is a good way to find out if they enjoy it and to evaluate their skill level.
For beginners, I teach a language called Python. This is a text-based language, as opposed to “block coding” like Scratch or Blockly. Text-based languages are used to write more complex games and websites. They are also used in college courses and industry coding.
We’ll start with simple programs without graphics, then move on to simple graphical games.
After that we’ll go onto web pages. We’ll start with simple, static web pages, then we’ll move on to web pages that can change. With that kind of web page we can write games or make moving art. We can also write apps like a graphing calculator.
Dynamic web pages use a language called JavaScript. This is also a very important language in the industry. It’s similar enough to Python that your child will easily transfer skills from Python to JavaScript.
For more advanced students, I can teach them other text-based languages such as Java.
Computer science is the theory behind writing programs and involves the study of complex interactions of code. It is often taught in high school and college classes, such as AP Computer Science A. Professional programmers are often asked to demonstrate their knowledge of it in technical interviews in order to get a programming job.
I teach CS in a way that makes it fun and egaging. I have my students write programs to solve puzzle problems that range from easy to very challenging.
Solving puzzle problems is a great way to increase your programming IQ, making all other kinds of programming easier.
Mike is a rare find. He has helped my son (junior high schooler) already tremendously even in his first lesson. He is analytical and can quickly assess student’s level of understanding. With that he was able to explain difficult matter to my son in a way he understood and appreciated. IMHO this is in part, if not entirely, due to his outstanding academic and professional training. My son went on to get a 5 on the AP Computer Science.
—Steve, father of high school student
Mike has been a great tutor for my son. He’s professional, knowledgeable and patient. He pays attention to the details and is meticulous in his approach and expectations. My son has benefited greatly from working with Mike and is well prepared for more advanced classes and even an internship or coding job, while still in high school. We are so happy we found Mike, and have recommended him to some other friends, who have also benefited from his experience and methods. If you are looking for a tutor that is thorough, competent and thoughtful, Mike is the guy!
—Bonnie, mother of 10th grade student
Mike teaches competitive programming to my son who’s in 8th grade. Mike brings a unique, much sought after skill that is very hard to find. He understands how to teach young minds and focuses on learning by discovery rather than a formulaic approach to problem solving. He leads an interactive problem-solving session with my son that challenges him to think hard about multiple approaches to solving. My son has made tremendous progress in a short amount of time and his coaching with Mike has enabled him to qualify for the USACO Silver level.
—Badri, father of 8th grader
Q: What can I expect from my free phone consultation?
A: I will explain what I provide, clarify anything that was not clear on my website, and answer any questions you have about my services. I will also get some information about your student: their grade level, their background with computers, and their interests.
Q: What can I expect from my free 30-minute lesson?
A: In the 30-minute lesson, which can take place remotely or at your location, I’ll work with your child on a small program. I’ll attempt to match the problem difficulty to their current level so it’s challenging but not too frustrating. I’ll get a sense of how they work and their current level of knowledge.
Q: What kind of computer does my child need to participate in lessons?
A: Your child needs a laptop or desktop computer, either a Mac or a PC. A Chromebook or tablet won’t work. If you are planning on having remote lessons, you need a fast internet connection.
Q: Do you recommend remote or in-person lessons?
A: In-person lessons are always the most fun and allow me to establish a more effective teaching relationship with your student. I’ll go to your location if it’s not far from my home in Pasadena. You are also welcome to come to my home.
Remote lessons are a close second. There is very effective software that lets us share code and work together.
One possibility is that we have both remote and in-person lessons, depending on what’s convenient each week. For locations farther from Pasadena, we might need to do mostly remote sessions, but I would be willing to arrange an in-person lesson once a month.
Q: What languages do you teach? Will my child find a use for these languages in the future?
A: I teach Python, Java, JavaScript, Haskell, and Elm. Many computer science classes use Python or Java. For instance, AP Computer Science A uses Java. Websites use JavaScript. Haskell and Elm are quite different from most languages, and they will encourage outside-the-box thinking and prepare your student for the trends in professional programming right now.
Q: Can you tutor my child in a programming class like AP Computer Science A?
A: In the right situation I can take on students in programming classes. I ask that your student be self-motivated and do several hours of self-study between lessons with me. Keep in mind that I have an academic honesty policy: I will not give away the answers directly. I’ll work with a student to give hints and make sure they really understand. This sometimes comes up if I’m working with a student who’s far behind and doesn’t understand the current material: they often expect me to give away the homework answers.