Prime Factor Math Circle and School of Programming


Prime Factor School of Programming

Join our computing classes for students grades 5 and up!

We offer
  • Instruction in Coding, Programming Languages and Algorithm design;
  • Year-long classes designed for motivated and curious learners. As students advance, they can progress from class to class, learning new programming skills and new languages.
  • Comprehensive curriculum designed by professional software developers with extensive teaching experience.
  • Emphasis on algorithmic thinking, computational problem solving, coding skills, efficient program design, and quality programming practices.
  • Project-based approach: teaching new concepts and coding skills using projects that utilize graphics, audio, and game design.

2016-2017 Prime Factor Programming Classes

Games and Algorithms with Scratch (Grade 5-6)

The goal of the class is to learn major programming concepts and to gain plenty of practice in algorithmic programming and game programming. By the end of the year students will be able to create fairly sophisticated programs (games, simulations, algorithmic programs, etc.) They will master all key programming constructs: variables, conditionals, loops, lists, functions, objects, messages and events, etc. The students will also gain plenty of experience in all essential computational practices: organization, modularization, testing, debugging, etc.

Our Scratch projects encourage children to apply their existing knowledge in math and science, and to learn more. For example, for our 2D graphic projects use geometry extensively, and our games illustrate use probability, algebra, and mechanics.

This year-long class is offered over the course of 3 trimesters: Level 1, Level 2, Level 3. A student with a compatible Scratch experience can join Level 2 or Level 3

Intermediate Programming 1: Coding and Algorithms with Snap! and JavaScript (Grade 7-8)

The year-long class is targeting motivated middle-school students who would like to perfect their skills in coding and computational thinking.

We will start from programming in Snap!, an advanced educational block-based programming language for school children. The goal of this part of the course is to give students plenty of hassle-free and fun practice in algorithmic computing. (Snap! is a descendant from Scratch, and students who took Scratch courses would feel at home.)

During the second part of the course, we will transition to coding with JavaScript. We will be covering the fundamental programming concepts: data types and variables, operators, flow of operations, control structures (conditionals, loops), functions, classes, etc. Students will be working on a variety of projects that utilize, emphasize, and enforce these concepts. A big part of the course will be devoted to JavaScript as the scripting language of the web: combining together HTML, CSS and JavaScript to create rich interactive web sites. The course will also stress out the important principles of program organization, design, and implementation cycle.

Prerequisites: The course assumes no prior programming experience, but does assume good mathematics/algebraic skills as well as a motivation, curiosity, and desire to code. Testing or recommendation of Prime Factor teacher is required to register.

Intermediate Programming 2. Algorithmic computing (Grade 8-9)

This year-long class is a continuation of our Intermediate Programming 1. The emphasis is on algorithmic programming, computational problem-solving, more extensive use of data structures, and practicing and developing good coding habits. We will be programming in Stride– a Java-like educational language developed by Greenfoot. Stride has all Java semantics; however, program editing in Stride is easier than in Java. Stride implements frame-based editing, which emphasizes semantical structure of a program and decreases number of non-essential errors.

Prerequisites: The course is for students with previous programming experience. (A participant should have experience with at least one textual programming language, be proficient with the fundamental programming constructs: conditionals, loops, etc., and be able to write code with reasonably complex logical structure). Good mathematics/algebraic skills as well as a motivation, curiosity, and desire to code are required as well. Admission is by recommendation of a Prime Factor teacher, or by the results of a test.

Computing and Algorithms in Java, AP Java (Grade 9-10)

This year–long course is designed to give the basics of computer programming at a pace targeted at advanced 9th–10th grade students.

The goal of the course is to establish 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 development 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.

While a big share of our programs will have cool visual component to have fun with, this is advanced course with plenty of work to do. The scope of material that we are going to cover is aligned with that of AP Computer Science A Java exam. The major areas include: control structures, basic data structures (arrays, lists), functions, classes and objects, inheritance, design and architecture of object–oriented programs. The special emphasis goes into algorithmic design and practices, solid understating of core concepts of object–oriented programming, and developing good coding style.

The course assumes no prior programming experience, but does assume good mathematics/algebra skills as well as motivation and desire to work. Admission is by recommendation of a Prime Factor teacher, or by the results of a test.

Prime Factor Math Circle is a nonprofit organization. The goal of Prime Factor is to engage school children in the world of extracurricular mathematics with the purpose of developing their math knowledge, problem solving skills and creative thinking abilities. We have a lot of plans and ideas how to grow and expand. We welcome donations and we will put them to a good use.