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 students 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. Offered in the fall trimester.

    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 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. Offered in the winter trimester.

    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 the spring trimester.

    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 defense, 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.

  • Games and Algorithms with Scratch Advanced, grades 4-6

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

    Scratch Advanced is the course for students who learned some Scratch on their own, in a summer camp, or in another school and want to expand their knowledge.

    We will learn new challenging programming concepts, design more complex and sophisticated programs, perfect coding skills, and even advance our knowledge of geometry and physics. We will be learning about lists, strings, procedures, clones, gaming techniques, and much more. A variety of graphical projects, mathematical simulations, quests, and games will take these new concepts to work.

    Requirements: coding skills in Scratch. Knowledge of variables, messages, conditionals, and loops. Admission is by a placement test.

  • Honors Apps and Algorithms, grades 5-6 (Mobile apps programming)

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

    In this class on mobile app development, which is designed for experienced Scratch programmers, students will be exposed to many new aspects of software development. They will study web development principles, create and share interactive mobile applications, get plenty of practice in JavaScript language, get their first exposure to working with databases. Along the way, while deepening their coding skills, children will create fun apps and games. .

    Students will be working in Code.org's AppLab environment to create applications intended for mobile devices. They 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. They will start by using block-based coding and gradually move toward text JavaScript programming. The unique curriculum of this class provides students with extensive practice in algorithmic skills while keeping them motivated through engaging exercises, visual projects, and fun apps that they can share with family and friends.

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

  • Apps and Algorithms, grades 5-7 (Mobile apps programming)

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

    This class on mobile app development and JavaScript is designed for students who are new to coding.

    Students will be working in Code.org's AppLab environment to create applications intended for mobile devices. They will start with block-based coding and gradually move toward JavaScript programming. Children will be learning how to design interactive media-rich web applications and how to code for event-driven programming. The unique curriculum of this class utilizes numerous mobile app projects to teach important computational concepts like conditionals, loops, lists, data types.

    This is an intensive class with plenty of algorithmic coding. It also dives deep into the techniques of modern web programming. The students will learn how to work with various UI elements, handle mouse and key events, write multi-screen mobile applications. They will also do pixel-level image processing, get their first glimpse of working with databases, and implement several mobile games.

    The engaging exercises, visual projects, and fun apps that the students can share with family and friends will keep them challenged, motivated, and excited.

    Requirements: Successful completion of a placement test.

  • 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; 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-8

    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. 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.

  • 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.

    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 8-11

    Course Details: Honors and regular options. 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.

    Honors Java course is for students who have coding experience. Honors class is very fast-paced and challenging. Please choose this option for motivated students who have coded before.

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

  • Algorithmic Programming with Java, Year 2, grades 9-12

    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 advanced coders who would like to improve their coding skills, become better at computational problem-solving, and get ready for coding contests. This class will be centered around more advanced algorithmic practices and new coding techniques. We will be discussing efficiency, recursion, dynamic programming, binary searches, binary trees, and much more. We also aim to include plenty of algorithmic problems with graphical solutions.

    We will also be preparing students for USACO (USA Computing Olympiad) and similar coding contests.

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