Sergey O.

Sergey O.


New York, NY 10010

Will travel 10 miles

$125 per hour.

4.92 51 ratings

Computer Science/Programming Tutor, Math Ph.D.

Have you or your children ever wanted to really understand math going beyond drills and rote training in specific techniques? Do you want to learn computer programming? Not just to create nice-looking and functional websites or mobile phone applications, but so you can write a program that can play checkers or find its way out of a labyrinth. If you want to become a top-notch programmer or an applied mathematician working on the next-generation search engine, cutting-edge cryptography, real... [more]

Algebra 1

Algebra 2


During my Ph.D. program at Penn State I have taught the course "Calculus and Vector Analysis" two times. The students were mostly sophomores majoring in engineering.


Microsoft Excel

General Computer


I have a Ph.D. in Mathematics, and my thesis was in metric geometry (see However, I believe that teaching is more fun than doing research. Geometry is a wonderful area of mathematics, and it actually is related to art, science, and modern technology. I will be happy to share it with you.

Microsoft Word


Microsoft PowerPoint


SAT Math

SAT Reading

SAT Writing



I have never actually taught Probability Theory, but I have enjoyed explaining selected topics to curious friends. There is something in this subject that attracts all kinds of people.

ACT English

ACT Math

Discrete Math

Discrete math is one of my strongest areas of expertise. I have spent many years participating in computer programming competitions, and in this way I have learned a lot of various algorithms and data structures. My B.Sc. program also included a considerable amount of discrete math. During my Ph.D. program at Penn State I took advanced courses in mathematical logic and one course in cryptography. I also gave two discrete math-flavored lectures at the Brooklyn Technical High School. The first one was on dynamic programming (2011), the second one --- on artificial intelligence in board games (2013).


I have been programming for 18 years, that is, since the age of 9. I have used Pascal, C++, Java, ActionScript, C#, and Python. I've had internships at Adobe Systems and at Microsoft. I have worked for Credit Suisse in New York City, developing real-time trading software. There we primarily used C++ and Python.

Computer Programming

I have been programming for 18 years, that is, since the age of 9. I have used Pascal, C++, Java, ActionScript, C#, and Python. I've had internships at Adobe Systems and at Microsoft. I have worked for Credit Suisse in New York City, developing real-time trading software. I have spent 8 years participating in programming competitions, most notably in the ACM International Collegiate Programming Contest - the large, oldest, most prestigious programming competition in the world. In 2004 in Prague my team of three won the World Champions title and the absolute first place, leaving behind teams from M.I.T., Harvard, Stanford, Caltech, as well as teams from KTH (the Royal Institute of Technology, Sweden), Warsaw University, Shanghai Jiaotong University, and thousands of other teams. In 2005 in Shanghai we won the absolute third place and the gold medals. I have also organized, judged, contributed problems for 15 high school programming competitions including four All-Russian national olympiads. I taught programming in Russia at the high school level. I can help you if you are a high school student or an adult and you: - have a strong math/physics background and want to learn the foundations of programming - need to prepare for a job/internship interview - are interested in testing software by unit tests - are interested in programming competitions - are interested in organizing/judging programming competitions - are interested in understanding classical algorithms and data structures If you have several friends who share your interests, I will be happy to organize group sessions.

Computer Science

I have learned a lot of theoretical computer science during my programming competition years. My undergraduate thesis described a new data structure combining B-Trees with burst tries. Later, I co-authored an influential paper on ranking scientists and their publications in a way similar to the Google's ranking algorithm. In 2003 I founded a programming circle in Russia where I taught algorithms and data structures to interested high school students. In 2004-2005 I taught two experimental high school courses also focusing on algorithms and data structures. In 2011 I gave a talk on dynamic programming to 100 computer science majors at Brooklyn Technical High School. More recently, in 2013 I gave another talk on artificial intelligence in computer games. I can teach you classical algorithms and data structures, algorithmic complexity, and additional topics if requested. Of course, I will be happy to work with you if you are serious about participating in programming competitions. If you are an undergraduate student taking a course in theoretical computer science, I can help you understand it. Of course, if you are a high school student who wants to learn computer science, you are also very welcome. If you have several friends who are also interested in computer science, I am open to organizing group sessions as well.

Linear Algebra

I have a Ph.D. in Mathematics from the Pennsylvania State University. During this time I taught three courses on linear algebra. I have really enjoyed teaching this subject. Linear algebra has deep connections with other areas of mathematics as well as with computer science. Eigenvalues, determinants, orthogonal transformations - I know it all, and you can understand it too. Most people can if you teach them well.


I have studied mathematical logic during my undergraduate studies. In graduate school I formally had a concentration in Logic, so I have passed a qualifying examination in logic. I have really enjoyed learning about algorithmic randomness. (However, my thesis is in metric geometry.) I can teach you computability theory (also called recursion theory). I will also be happy to explain the basics of mathematical logic including propositional logic and first-order predicate logic. If you have always wondered about G?del's theorems, cardinals and ordinals, the Axiom of Choice, or Zermelo-Fraenkel Axioms, I can help you with that as well. I have also studied philosophy, particularly philosophy of language, so I can present mathematical logic in a philosophical context.


I started programming in Pascal when I was 9 years old. At first I was using Turbo Pascal, then Borland Pascal. Years later I used Borland Delphi to develop a production-quality application for a middle-sized sports equipment manufacturer in St. Petersburg, Russia. I have also spent many years participating in computer programming competitions, and I competed almost exclusively in Pascal/Delphi (or Kylix, the unix version of pascal). If you are just starting to learn computer programming, Pascal is a great first language. It is a bit outdated, though.


I started teaching Argentine Tango at Penn State where I served as a vice-president and then a president of Penn State Social Dance Club. I taught weekly classes to beginner-intermediate tango dancers. I also taught a few absolute beginner workshops and one advanced weekend workshop. Later I taught Argentine Tango at Ral'eau Salsa Dance Company, a new studio near Times Square.