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 Level 1, grades 4-6

    Course Details: Trimester-long, 10 weekly sessions, 90 min each. Placement Test is required.

    This course introduces motivated elementary students to the fundamental concepts of computer science by using Scratch, a block-based visual programming language.

    The goals of this class are to spark children’s interest in coding and to transform them into independent creators. By the end of the course, the students will learn enough Scratch programming to be able to independently create games and other exciting projects.

    Students will start by learning the Scratch programming environment and will spend the rest of the course working on animation stories, coding projects and games. Through these carefully selected projects and exercises, students will learn important computational concepts: sequencing, loops, conditionals, operators, variables, messages, and events, lists. They will also learn essential computational practices: organization, modularization, testing, and debugging.

    The homework is assigned after each class and is expected to be submitted weekly. The students who successfully complete these 10 classes can proceed to take Games and Algorithms with Scratch Level 2.


  • Games and Algorithms with Scratch Level 2, grades 4-6

    Course Details: Trimester-long, 10 weekly sessions. 90 min each. Placement Test/Teacher recommendation is required.

    If you took Level 1 with us or learned to program in Scratch in another school or on your own, join Level 2. There is much more to learn and many projects to program!

    This 10-week course is designed for 4-6 graders who already have a working knowledge of variables, loops, messages, and conditionals, and have an active Scratch coding experience. We will learn new coding concepts, design more complex and sophisticated programs, and even advance your knowledge of geometry and physics. A variety of fun graphical projects, mathematical simulations, and games will take these new concepts to work and foster computational thinking and problem-solving.
    Successful graduates can move on to Games and Algorithms with Scratch Level 3.

  • Games and Algorithms with Scratch Level 3, grades 4-6

    Course Details: Trimester-long, 10 weekly sessions. 90 min each. Placement Test/Teacher recommendation is required. Offered in winter and spring.

    This 10-week course is the continuation of Level 2. We will introduce new game and graphics creating techniques, and work on the projects requiring complex logic. We will implement tower defence, space wars, projectiles shooter games, create optical illusions and geometric art, learn to use clones for visual effects.

    Join this course for improving your coding skills and getting ready for more advanced computer science topics and programming languages.

  • Apps and Algorithms, grades 5-6

    Course Details: School-year long, 30 weekly sessions. 90 min each. Placement Test or Teacher recommendation is required

    In this class created especially for experienced Scratch programmers, students will be exposed to many new aspects of software development. They will study principles of web development, create and share interactive web applications, practice working with JavaScript language, and learn the fundamentals of working with databases. Students will also perfect their coding skills by creating advanced Scratch projects and acquire a better understanding of physical computing by programming microcontroller boards.

    Students will be working in Code.org’s App Lab environment to create multiple JavaScript applications that live on the web. In App Lab, they will be using block-based programming and gradually moving toward text programming as their skills mature. Students will be learning how to design interactive media-rich web applications, code for event-driven programming, and use App Lab's database capabilities to make apps that store data in the cloud. For advanced algorithmic practice, students will create a series of challenging games and educational projects in Scratch. As a perfect introduction to electronics, children will be learning how to code for Circuit Playground, an arduino microprocessor equipped with sensors and LEDs.

    Requirements: coding skills in Scratch or similar environment. Working knowledge of variables, conditionals, loops, lists, design of complex programs.

  • Coding and Algorithms with Python Year 1, grades 6-8

    Course Details: School-year long, 30 weekly sessions, 90 min each. Placement Test is required.

    This course introduces newcomers or students with limited coding experience to the exciting world of programming. Students will gain a solid understanding of programming and enhance their critical thinking and problem-solving skills as they learn to design, code, and debug Python programs.

    The main topics covered in this course are: variables and their scope; logical and math operators; control flow - conditionals and loops, functions; file I/O; fundamental data structures - lists, strings, tuples, dictionaries.

    The course emphasizes quality coding practices, program organization and design, and includes plenty of algorithmic problem-solving. The students will also use the built-in graphics module of Python to create games and geometric art.

    Homework is given after each class, and the students are expected to submit their work each week.

    Requirements: solid knowledge of mathematics at grade level, understanding of coordinate plane geometry, developed typing skills. Acceptance is by a placement test or by a PF teacher’s recommendation.

    Choose Python Year 1, gr 6-8 for a student who is new to programming and could benefit from taking steps one at a time.

  • Honors Coding and Algorithms with Python Year 1, grades 6-7

    Course Details: School-year long, 30 weekly sessions, 90 min each. Placement Test is required.

    This intensive and challenging course is for motivated students with some coding experience in Python or another programming language.

    Compared to Coding and Algorithms with Python Year 1, grades 6-8, this Honors course moves faster, goes deeper, and provides more challenging algorithmic practice.

    The main topics covered in this course are: variables and their scope, logical and math operators, control flow: conditionals and loops, functions, fundamental data structures such as lists, strings, tuples, and dictionaries; file I/O. As the course progresses, the students will become familiar with the more advanced functionality available in Python and learn to use it to their coding advantage.

    Homework is given after each class, and the students are expected to submit their work each week.

    Requirements: solid knowledge of mathematics at grade level, understanding of coordinate plane geometry, developed typing skills. Acceptance is by a placement test or by a PF teacher’s recommendation.

    Choose Honors Python Year 1 programs for a student who has some experience with programming already, can grasp mathematical concepts quickly, and enjoys learning at a faster pace.

  • Honors Coding and Algorithms with Python Year 1, grades 8-9

    Course Details: School-year long, 30 weekly sessions, 90 min each. Placement Test is required.

    This fast-paced, challenging course is for motivated students interested in learning Python and ready for plenty of practice in computational problem-solving.

    Compared to Coding and Algorithms with Python Year 1, grades 6-8, this Honors course moves faster, goes deeper into more advanced elements of the language, and covers more challenging algorithmic techniques.

    The main topics covered in this course are: variables and their scope, logical and math operators, control flow: conditionals and loops; functions; fundamental data structures such as lists, strings, tuples, dictionaries; file I/O, recursion, sorting, ciphers. The course emphasizes quality coding practices, program organization and design. The students will use the built-in graphics module of Python to create games and geometric art. More advanced participants will be challenged with problems from coding competitions.

    Homework is given after each class, and the students are expected to submit their work each week.

    Requirements: solid knowledge of mathematics at grade level,understanding of coordinate plane geometry, problem-solving skills, developed typing skills. Previous programming experience is strongly encouraged. Acceptance is by a placement test or by a PF teacher’s recommendation.

    Choose Honors Python Year 1 programs for a student who has some experience with programming already, can grasp mathematical concepts quickly, and enjoys learning at a faster pace.

  • Coding and Algorithms with Python Year 2, grades 7-9

    Course Details: School-year long, 30 weekly sessions, 90 min each. Placement Test/Teacher Recommendation is required.

    This second-year course is for motivated coders who would like to improve their coding skills, learn more advanced Python topics, and broaden their understanding of computer science.

    The class is centered around more advanced coding concepts, new elements of the language, more challenging algorithms, new coding techniques, and extensive coding practice. Students will be working with strings, lists, sets, dictionaries. They will be learning about ciphers, recursion, binary numbers, object-oriented features of Python. Participants will also be implementing interactive games and projects that use GUI (graphical user interface).

    Requirements successful graduates of Coding with Python Year 1 or students with comparable coding experience are welcome. Acceptance is by a placement test or by a PF teacher’s recommendation.

    Choose Python Year 2, gr 7-9 for a student who learned Python with us, with another school, or on their own, but would benefit from more practice with the concepts they learned.

  • Honors Coding and Algorithms with Python Year 2, grades 7-9

    Course Details: School-year long, 30 weekly sessions, 90 min each. Placement Test/Teacher Recommendation is required.

    You can join this second-year course on computational problem-solving if you are a confident Python programmer (at least a year of active coding experience is recommended) who takes joy in coding and problem solving.

    Compared to our regular second-year Python, this course moves faster, goes deeper, provides more challenging algorithmic practice, and places more emphasis on preparation for coding contests.

    In addition to more advanced work on all our Python Year 2 course topics, we will be incorporating more topics on algorithms and more advanced Python features that proficient coders may use to their advantage (dynamic programming, sorting, custom sorting in Python, etc.) Another goal of this course is to give participants an insight into concepts of “higher-level” programming: algorithms types, efficiency, etc. Also, we will practice for coding competitions, and work on skills and strategies for doing the best in a contest setting.

    Requirements: Interest in programming, working knowledge of Python, problem-solving skills. Acceptance is by a placement test or by a PF teacher’s recommendation.

    Honors Python Year 2 is for students who excelled in their previous Python courses, grasped the concepts quickly, completed the projects with ease, and would like to try more challenging tasks in computer science.

  • Computing and Algorithms in Java, grades 9-11

    Course Details: School-year long, 30 weekly sessions, 90 min each. Placement Test is required.

    This year-long course is designed to introduce and give plenty of programming practice in an object-oriented language at a rate targeted at advanced 9th–11th-grade students.
    The goal of the course is to establish firm understanding of the essentials of object-oriented programming and architecture through extensive algorithmic practice, simulations, graphical programs, and games.

    We will be learning control structures, fundamental data types (classes, arrays, lists, sets, maps), functions, classes and objects, inheritance, design, and architecture of object-oriented programs. The emphasis goes into algorithmic design and practices, solid understanding of core concepts of object-oriented programming, and developing a good coding style. We will also be talking about many relevant theoretical aspects of CS: memory allocation, data representation, binary and hex numbers, etc.

    Requirements: Knowledge of math at Algebra 2 level, solid understanding of the geometry on the coordinate plane.

  • Coding Contests and Algorithmic Programming with Java, grades 9-11

    Course Details: School-year long, 30 weekly sessions, 90 min each. Previous coding experience, Placement test or Teacher recommendation are required.

    This class is for the advanced coders who would like to improve their coding skills and compete in coding contests. The class will be centered around preparation for USA Computing Olympiad (bronze level), PSCSTA Contest, and similar competitions.

    Requirements: Serious interest in programming, working knowledge of Java, Placement Test/Teacher recommendation.