- Math Circle Diaries, Year 1: A Complete Curriculum
- by Anna Burago
Join our computing classes for students grades 5 and up!We offer
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
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.)
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.
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.
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.