Computer Science

Computational thinking comes first

Learning to code is much more than learning a specific language. Instead, a child should acquire a distinct way of thinking that allows pupils to tackle problems, to break them down into solvable chunks and to devise algorithms to solve them.

At Prime Factor, computational thinking comes first: in all our classes, we emphasize algorithmic approach, and techniques and methods for solving problems.


Start Early

There is no age boundary for starting to acquire computations skills and for learning how to program. Our curriculum starts at upper elementary school. At this age, many kids are already mature enough to master abstract programming constructs and to create programs with quite advanced logic.


Project-oriented Approach

We teach new concepts and coding skills through exciting projects that use graphics, audio, and game design. Our projects are carefully designed to be aligned with the academic goals of our curriculum. These projects, with links to geometry, algebra, physics, and other disciplines, keep our students motivated and challenged.

Languages that are right for the age

We teach kids using languages and environments that are right for the age and abilities. We start with visual languages, and slowly progress all the way up to professional languages like Java and Python. All the time, we set development of computational thinking and coding skills in higher priority, and treat languages as educational tools.


Designed by professionals

Our curriculum is designed by professional software developers with plenty of teaching experience. We know what matters for becoming a top coder and problem solver, and we know how to deliver this knowledge to kids.


Small classes, individual attention

We emphasize individualized approach in teaching programming. Each student should be able to get personalized advice and assistance whenever needed. We keep our classes small, and group students of similar abilities.

Computer Classes details
  • Games and Algorithms with Scratch, grades 5-6

    The goals of the course are to learn fundamental programming concepts and to gain plenty of practice in algorithmic and game programming. By the end of the year, students will be able to create sophisticated programs (games, simulations, algorithmic programs, etc.) Our Scratch projects encourage children to apply their existing knowledge in math and science and to learn more. For example, our graphic projects use geometry extensively, and our gaming projects illustrate the use of probability, algebra, and mechanics.

    Pre-requisites: Good mathematics/algebra skills at a grade level, and enthusiasm for programming (Students with comparable programming experience can join mid-year.)

    Offered Thursdays, 5:00pm-6:30pm in Overalke

    Saturdays, 10am-11:30am in Overalke


    Learn about class's curriculum

  • Coding and Algorithms with Snap! and JavaScript
    Newcomers, grade 7-8

    The year-long class is for motivated middle-school students who are new to programming and who would like to learn coding and computational thinking.
    We will be covering the fundamental programming concepts and will be illustrating them with plenty of games, exercises, and algorithmic projects. We will also be talking about theoretical aspects of CS: Boolean logic, data compression, image representation, etc.
    During the last part of the course, we will transition to coding with JavaScript. We will be covering the fundamental programming concepts: data types and variables, operators, the flow of operations, control structures (conditionals, loops), functions, etc. Children will get their first taste of programming in a text-based programming language.

    Prerequisites: Math and Computational Thinking test, or Prime Factor teacher recommendation. (Can be substituted by successful participation in a relevant math competition, or a school teacher recommendation.) Proficiency with school math at Algebra 1 level is expected.

    Offered Mondays, 6:45pm-8:15pm in Overalke

    Saturdays, 11:45am-1:15pm in Overlake

  • Coding and Algorithms with Python Pro
    Advanced Track, grades 8-9-10

    This class targets our coding classes graduates, or students with comparable programming experience.
    This fast-paced course is all about writing plenty of programs. It is assumed that students are already familiar with major programming concepts and data structures such as variables, conditionals, loops, functions, lists. Therefore, the initial efforts will go into mapping these core constructs to Python, and not into explaining the ideas behind them. As the course progresses, we will start learning more advanced concepts that are available in high-level textual languages. The course will also stress out the important principles of program organization, design and implementation cycle. We will be working on a variety of projects and exercises that utilize, emphasize, and enforce these concepts. The curriculum includes discussions about computer architecture and theoretical aspects of CS.

    Targeted Audience: Graduates of our coding classes, or students with similar programming experience. Advanced 10-graders without programming experience could apply.

    Prerequisites: Previous programming experience (successful graduation from Prime Factor program or similar), or recommendation of a math circle teacher. Can be substituted by a Math and Computational Thinking test, or successful participation in a relevant math competition. Proficiency with school math at Algebra 1 level is required.

    Offered Mondays, 5pm - 6:30pm in Overalke
  • Coding and Algorithms with Python
    Newcomes grades 9-10, or advanced 8th graders

    This year-long class is for motivated students who are new to programming or have limited coding experience. We will start this course by learning essential programming concepts and data structures and working our way through plenty of relevant projects and exercises. We will continue by going deeper into more advanced elements of the language and by working on more challenging and complex projects. The course will also stress out the important principles of program organization, design and implementation cycle. We will also be talking about theoretical aspects of CS: Boolean logic, data representation, image representation, etc. We will be working on a variety of projects and exercises that utilize, emphasize, and enforce these concepts.

    Targeted Audience Newcomers or students wilt little programming experience. Advanced 8-graders could apply; however, our recommendation is to start with our Snap!/JS course.

    Admission: by a recommendation of a math circle teacher, or Math and Computational Thinking placement test, or good performance in a relevant math competition. Proficiency with school math at Algebra 1 level is required.

    Offered Thursdays, 6:45pm - 8:15pm in Overalke
  • Computing and Algorithms in Java, grade 9-11

    This year–long course is designed to give the basics of object-oriented language programming at a pace targeted at advanced 9th–11th grade students. The goal of the course is to establish a firm understanding of the essentials of object–oriented programming and architecture through games, simulations, graphical programs, and algorithmic practice. We will be programming in Greenfoot, an interactive Java environment developed for educational use. It allows easy development of two–dimensional graphical applications, such as simulations and interactive games, as well as of algorithmic educational programs.A big share of our programs will include cool visual component; still, this is an advanced course with plenty of work to do.
    The scope of material that we are going to cover is loosely aligned with that of an AP Computer Science A Java exam. We will be learning control structures, basic data structures (arrays, lists), functions, classes and objects, inheritance, design, and architecture of object–oriented programs. The emphasis goes into algorithmic design and practices, solid understating of core concepts of object–oriented programming, and developing a good coding style.

    Targeted Audience Some prior programming experience, good mathematics/algebra skills as well as motivation and desire to work.

    Admission: by the Math and Computational Thinking placement test, recommendation of a math circle teacher, or by good performance in a relevant math competition.

    Offered Saturdays, 11:45am-1:15pm in Overalke
  • Coding Competitions Preparation and Algorithmic Programming.
    Grades 9-11, with previous coding experience

    This class is for advanced programmers who would like to improve their coding skills and compete in coding contests.
    The class will be centered around preparation for USACO (USA Computing Olympiad, bronze level.) In this class, we will be programming either on Python or on Java. The choice of the language will be defined by the composition of the group. The main goals of this class are to practice computational problem solving and algorithmic programming.

    Targeted Audience Students with a serious interest in programming.

    Admission: by the teacher invitation or an interview with the teacher.

    Offered Saturdays, 1:30pm-3pm in Overalke