Program Overview
AStar Computer Science Program has yearround courses and winter / summer camps. This Computer Science competition training program aims to train students towards USA Computing Olympiad (USACO) which is the most prestigious precollege Computer Science competition in the States.
USACO System*
The USACO holds periodic webbased contests during the academic year, and in the late Spring conducts the US Open, our “national championship” exam. Contests generally run for three to five continuous hours in length, although for maximum flexibility, you are free to schedule this block of time anywhere within a FridaytoMonday contest weekend — your timer starts when you log into the contest and download the problems. Contest tasks are presented on the web, and you submit your final solutions through a simple web interface. Participation is free and open to all.
Contests are offered in four divisions:
 Bronze: for students who have recently learned to program, but who have no training in algorithms beyond basic concepts like sorting and binary search.
 Silver: for students who are beginning to learn fundamental problemsolving techniques (e.g., recursive search, greedy algorithms) and fundamental data structures.
 Gold: where students encounter more standard algorithms of a more complex nature (e.g., shortest paths, dynamic programming) and more advanced data structures.
 Platinum: for advanced students who are well grounded in algorithmic problemsolving techniques, who wish to challenge themselves with sophisticated and more openended problems.
All participants start in the bronze division, and those who score particularly well in a contest will be promoted to the next division. Contestants scoring particularly highly will be automatically promoted to the next division while a contest is running; others will need to wait until results are announced at the end of the contest to see if they meet the (contestdependent) cutoff for promotion.
[*] Retrieved from USACO website. See http://www.usaco.org/ for further information on USACO.Why AStar Computer Science Program?
AStar Computer Science Program has benefits to students in various portions of their lives.
Some of the crucial ones can be summarized as follows:
 Problem solving skills: AStar CS program helps students develop and improve problem solving skills substantially as a lifelong skill.
 AP CS Courses: AStar CS courses have substantial overlap with AP Computer Science courses. A successful AStar student can accomplish AP CS courses easily without much extra effort.
 College applications: Top colleges such as MIT, Harvard, Stanford, UC Berkeley care about distinguished skills of students since almost all their applicants have already outstanding scores in regular application items. USACO training track is one of the credible ones especially if a student is in Gold division or above.
 Engineering career: AStar CS Program provides a strong foundation for college CS courses. In addition, one can observe the similarities between software engineering algorithmic interview questions of hitech companies and problem sets of AStar CS Courses.
Distinguished Features of AStar CS Program
The distinguished features AStar CS Program can be summarized as follows:
 It is flexible for fast paced students by providing an acceleration track in basic courses
 Based on both C++ and Java programming languages in Silver and above courses
 Code submissions for problem sets are graded by an automated system with instant feedback mechanism
 More than 90% of the problems in the courses are former USACO problems
 Provides master courses for exceptionally advanced students
AStar CS Curriculum
Levels
AStar CS Program has 5 levels some of which has basic and advanced courses. Levels, course and corresponding topics can be summarized as follows:
Introduction to Programming  
Topics  Courses  
Fall Semester Topics:

Fall

Summer


Spring Semester Topics:

Spring


USACO Bronze  
Topics  Courses  
Fall Semester Topics:

Fall

Summer

Winter

Spring Semester Topics:

Spring


USACO Silver  
Topics  Courses  
Fall Semester Topics:

Fall

Summer

Winter

Spring Semester Topics:

Spring


USACO Gold  
Topics  Courses  
Fall Semester Topics:

Fall

Summer

Winter

Spring Semester Topics:

Spring


USACO Platinum  
Topics  Courses  
Fall Semester Topics:

Fall

Summer

Winter

Spring Semester Topics:

Spring

Course Flowchart
The following flowchart summarizes AStar CS Courses in terms of yearround (fall and spring) / summer / winter courses:
Explanations
Yearround courses: are composed of fall and spring terms. They’re indicated as separate courses since each term requires separate registration. For instance CS201A only covers the first part of the AStar USACO Bronze curriculum. It covers the whole curriculum together with CS201B course. A yearround course is composed of 2 hours per week for 12 weeks per term, in total 48 class hours plus 48 hours for homework is required on the average.
Summer courses: 6 hours per day for 15 days, in total, 90 class hours. A summer course corresponds to a yearround course. The course code also indicates the idea. For instance, USACO Bronze yearround course is composed of CS201A and CS201B whereas the summer course has code CS201AB. Note that there is no homework in summer camps; average practice time is included in the camp. Intro to Programming and USACO Bronze courses are same in yearround and in summer. On the other hand, although summer USACO Silver and above courses have the same curriculum with yearround courses they have different problem sets.
Winter courses: 6 hours per day for 5 days, 30 class hours. There is no winter course for Introduction to Programming level. Winter camp serves as a booster camp for USACO Silver and upper levels. Courses are composed of problem solving and implementation sessions; they don’t include teaching topics. Students are assumed to have basic foundation of that level. For only USACO Bronze level, CS201A course is offered during winter program as a makeup course for the students who missed the fall course. That gives the opportunity to continue USACO Bronze course CS201B in spring.
Basic vs. advanced courses: Intro to Programming, USACO Silver and Gold levels have basic and advanced courses. Basic and advanced courses have the same topics but different structures. Basics courses are more lecture oriented and problems are easy to medium former USACO problems. On the other hand, students are assumed to know topics or that level. There is not much lecturing and the problems are medium to hard former USACO problems. We can summarize the difference between basic and advanced courses in general as follows:
Basic Courses  Advanced Courses  
Objectives 
– understand the concepts in that level and be able to implement them – be able solve easy/medium USACO problems in that level 
– be able to solve hard USACO problems in that level – comfortably implement solutions of that level – get ready for next level 
Content 
– considerable amount of lectures – easier problem sets / projects 
– brief lectures when necessary – much harder problem sets / projects 
Accelerated track: To make it more convenient for our extra motivated fast paced students, we have accelerated track as a feature in basic courses. if a student finishes solving the problems of the current week in two weeks, the advanced problem set appears and s/he will be eligible to solve them. That advanced problem set is the same problem set appears in the advanced course. In that way, fast paced students can skip advanced courses.
Course Sequence: Arrows indicate the recommended sequence of the courses for different paces:
—> Faster pace: a student who finishes at least 90% of the problems in the course
—> Regular pace: a student who finishes at least 60% of the problems in the course
Prerequisites
 A student at 4th grade or above can start at Intro to Programming course in fall (CS101A) or in summer (CS101AB) without any programming background.
 A student who took Algebra 1 course can start USACO Bronze course in fall (CS201A) or in summer (CS201AB) without any programming background.
 A student who took AP Computer Science A course can start with USACO Silver Basic course in spring (CS301B) or can start with USACO Silver Advanced course in fall (CS302A) if the student knows the topics, can solve the problems and implement them well. As the level, AP Computer Science A course fits in the middle of USACO Silver Basic course. The fall course (CS301A) is easier whereas the spring course (CS301B) is harder than the AP course.
Course Descriptions
Introduction to Programming Courses
These courses are intended for students in 46 grades. Students will learn fundamentals of programming while they are working on projects and having fun using Scratch programming language. Note that the focus of the courses is not the language itself but the programming concept fundamentals and problem solving skills.
Scratch is a programming language and an online community where children can program and share interactive media such as stories, games, and animation with people from all over the world. As children create with Scratch, they learn to think creatively, work collaboratively, and reason systematically. Scratch is designed and maintained by the Lifelong Kindergarten group at the MIT Media Lab.
Related courses are CS101A (basic) and CS102A (advanced) in fall, CS101B (basic) and CS102B (advanced) in spring and CS101AB in summer.
CS101A: Introduction to Programming Basic (Fall)
Objectives:
 finish the first part of AStar Introduction to Programming Basic curriculum
 provide initial programming experience
 understand the fundamental programming concepts and be able to implement them
 boost problem solving skills
Prerequisites:
Following prerequisites have to be satisfied
 for grades 46
 no background in programming is necessary
 robust math background is strongly recommended
Topics:
 Variables
 Conditions
 Loops
 Lists (Arrays)
 String processing
CS101B: Introduction to Programming Basic (Spring)
Objectives:
 finish the second part of AStar Introduction to Programming Basic curriculum
 understand the fundamental programming concepts and be able to implement them
 boost problem solving skills
Prerequisites:
Following prerequisites have to be satisfied:
 for grades 46
 successfully completed CS101A course by finishing more than 60% of the problem sets
Topics:
 String processing review
 Nested conditions
 Nested loops
 Multithreading
 Matrices
 Functions
CS101AB: Introduction to Programming (Summer)
This course is equivalent to take both the yearround courses CS101A and CS101B
Objectives:
 finish AStar Introduction to Programming Basic curriculum
 provide initial programming experience
 understand the fundamental programming concepts and be able to implement them
 boost problem solving skills
Prerequisites:
Following prerequisites have to be satisfied:
 for grades 46 (who finished 4th grade)
 no background in programming is necessary
 robust math background is strongly recommended
Topics:
 Variables
 Conditions
 Loops
 Lists (Arrays)
 String processing
 Nested conditions
 Nested loops
 Multithreading
 Matrices
 Functions
CS102A: Introduction to Programming Advanced (Fall)
Objectives:
 finish the first part of AStar Introduction to Programming Advanced curriculum
 learn to deal with more challenging algorithmic problems
 comfortably implement solutions
 get ready for USACO Bronze level courses
Prerequisites:
Following prerequisites have to be satisfied:
 for grades 46
 successfully completed CS101B course by finishing more than 60% of the problem sets or strong programming background in Scratch
 robust math background is strongly recommended
Topics:
 Variables
 Conditions
 Loops
 Lists (Arrays)
 String processing
CS102B: Introduction to Programming Advanced (Spring)
Objectives:
 finish the second part of AStar Introduction to Programming Advanced curriculum
 learn to deal with more challenging algorithmic problems
 comfortably implement solutions
 get ready for USACO Bronze level courses
Prerequisites:
Following prerequisites have to be satisfied:
 for grades 46
 successfully completed CS102A course by finishing more than 60% of the problem sets
 robust math background is strongly recommended
Topics:
 String processing review
 Nested conditions
 Nested loops
 Multithreading
 Matrices
 Functions
Intro to Programming Basic vs Intro to Programming Advanced Courses
The following table provides the comparison between courses:
Introduction to Programming Basic  Introduction to Programming Advanced  
Objectives 
– provide initial programming experience – understand the fundamental programming concepts and be able to implement them – boost problem solving skills 
– learn to deal with harder algorithmic problems – comfortably implements solutions – get ready for USACO Bronze course 
Prerequisites 
– for grades 46 – no background in programming is necessary – robust math background is strongly recommended 
– for grades 46 – finish Intro to Programming Basic course successfully or strong programming background on Scratch – robust math background is strongly recommended 
Content 
– considerable amount of lectures – easier problem sets / projects 
– very brief lectures when necessary – much harder problem sets / projects 
Sample project 
The following project requires problem solving skills using loops. 
The following project requires problem solving skills using matrices (2D arrays). 
USACO Bronze Courses
These courses are for students with very little or no programming background. The language used is C++. The focus is the fundamentals of programming and problem solving hence object oriented part of the language and other details will not be taught. At the end of the course, the goal is to finish AStar USACO Bronze Curriculum and to be comfortable in solving USACO Bronze division problems. Programming background is not required whereas strong Math background is required.
Related courses are CS201A in fall, CS201B in spring and CS201AB in summer.
CS201A: USACO Bronze (Fall / Winter)
Objectives:
 finish the first part of AStar USACO Bronze curriculum
 provide initial programming experience in C++
 understand the fundamental programming concepts and be able to implement them
 boost problem solving skills
Prerequisites:
At least one of the following requirements has to be satisfied:

 finished Algebra I
 qualified for MathCounts State Competition
 successfully completed CS102B course by finishing more than 60% of the problem sets
 USACO Bronze contestant
 Accelerated track:
 successfully completed CS101AB course by finishing more than 90% of the problem sets or
 successfully completed CS101A and CS101B courses by finishing more than 90% of the problem sets
Note that no background in programming is necessary for this course
Topics:
 Variables
 Conditions
 Loops
 Arrays
 Strings
CS201B: USACO Bronze (Spring)
Objectives:
 finish the second part of AStar USACO Bronze curriculum
 understand the fundamental programming concepts and be able to implement them
 boost problem solving skills
Prerequisites:
Following prerequisite have to be satisfied:
 successfully completed CS201A course by finishing more than 60% of the problem sets
Topics:
 Strings review
 Nested conditions
 Nested loops
 Matrices
 Functions
 Introductory USACO Silver problems
CS201AB: USACO Bronze (Summer)
This course is equivalent to take both the yearround courses CS201A and CS201B
Objectives:
 finish AStar USACO Bronze curriculum
 provide initial programming experience
 understand the fundamental programming concepts and be able to implement them
 boost problem solving skills
Prerequisites:
At least one of the following requirements has to be satisfied:

 finished Algebra I
 qualified for MathCounts State Competition
 USACO Bronze contestant
 successfully completed CS102B course by finishing more than 60% of the problem sets
 Accelerated track:
 successfully completed CS101AB course by finishing more than 90% of the problem sets or
 successfully completed CS101A and CS101B courses by finishing more than 90% of the problem sets
Note that no background in programming is necessary for this course
Topics:
 Variables
 Conditions
 Loops
 Arrays
 Strings
 Strings review
 Nested conditions
 Nested loops
 Matrices
 Functions
 Introductory USACO Silver problems
USACO Silver Courses
These courses are for students who have programming background or compete in USACO Silver division. Students who know C++ or Java are welcome.
Related courses are CS301A (basic) and CS302A (advanced) in fall, CS301B (basic) and CS302B (advanced) in spring and CS301AB in summer.
CS301A: USACO Silver Basic (Fall)
Objectives:
 finish the first part of AStar USACO Silver Basic curriculum
 understand the concepts in USACO Silver level and be able to implement them
 be able solve easy/medium USACO Silver problems
Prerequisites:
At least one of the following requirements has to be satisfied:
 scored more than 600 points in a USACO Bronze contest
 USACO Silver level contestant
 successfully completed CS201B or CS201AB course by finishing more than 60% of the problem sets
Topics:
 Introductory USACO Silver problems
 Sorting and Searching
 Simple string processing
 Nonrecursive floodfill
 Simulation problems
 Greedy methods
CS301B: USACO Silver Basic (Spring)
Objectives:
 finish the second part of AStar USACO Silver Basic curriculum
 understand the concepts in USACO Silver level and be able to implement them
 be able solve easy/medium USACO Silver problems
Prerequisites:
At least one of the following requirements has to be satisfied:
 USACO Silver level contestant
 successfully completed AP Computer Science A course
 successfully completed CS301A course by finishing more than 60% of the problem sets
Topics:
 Recursion
 Simple data structures
 Depth first search
 Breadth first search
 Hard implementation problems
CS301AB: USACO Silver (Summer)
This course is equivalent to take both the yearround courses CS301A and CS301B. Note that although the topics are the same, the problem sets mostly different.
Objectives:
 finish AStar USACO Silver Basic curriculum
 understand the concepts in USACO Silver level and be able to implement them
 be able solve easy/medium/hard USACO Silver problems
Prerequisites:
At least one of the following requirements has to be satisfied:
 scored more than 600 points in a USACO Bronze contest
 USACO Silver level contestant
 successfully completed CS201B or CS201AB course by finishing more than 60% of the problem sets
Topics:
 Introductory USACO Silver problems
 Sorting and Searching
 Simple string processing
 Nonrecursive floodfill
 Simulation problems
 Greedy methods
 Recursion
 Data structures
 Depth first search
 Breadth first search
 Hard implementation problems
CS301P: USACO Silver Problem Solving (Winter)
The course is for students who already know USACO Silver concepts and want to improve problem solving skills. Students will intensively work on former USACO Silver problems and their analysis. There is no lecturing other than short reviews in class.
Objectives:
 comfortably implement USACO Silver level solutions and pass USACO Silver contest
Prerequisites:
At least one of the following requirements has to be satisfied:
 scored more than 400 points in a USACO Silver contest
 successfully completed AP Computer Science A course
 successfully completed CS301B or CS301AB course by finishing more than 60% of the problem sets
Topics:
 Sorting and Searching
 Recursion
 Depth first search
 Breadth first search
CS302A: USACO Silver Advanced (Fall)
Objectives:
 finish the first part of AStar USACO Silver Advanced curriculum
 be able to solve hard USACO Silver problems
 comfortably implement USACO Silver level solutions
 get ready for USACO Gold course
Prerequisites:
At least one of the following requirements has to be satisfied:
 scored more than 400 points in a USACO Silver contest
 successfully completed AP Computer Science A course
 successfully completed CS301B or CS301AB course by finishing more than 60% of the problem sets
Topics:
 Introductory USACO Silver problems
 Sorting and Searching
 Simple string processing
 Nonrecursive floodfill
 Simulation problems
 Greedy methods
CS302B: USACO Silver Advanced (Spring)
Objectives:
 finish the second part of AStar USACO Silver Advanced curriculum
 be able to solve hard USACO Silver problems
 comfortably implement USACO Silver level solutions
 get ready for USACO Gold course
Prerequisites:
At least one of the following requirements has to be satisfied:
 scored more than 400 points in a USACO Silver contest
 successfully completed AP Computer Science A course
 successfully completed CS301B or CS301AB course by finishing more than 60% of the problem sets
Note that CS302A is not a prerequisite of this course. They can be taken in any order.
Topics:
 Recursion
 Simple data structures
 Depth first search
 Breadth first search
 Hard implementation problems
USACO Gold Courses
These courses are for students who are competing in USACO Gold division. Students who know C++ or Java are welcome.
Related courses are CS401A (basic) and CS402A (advanced) in fall, CS401B (basic) and CS402B (advanced) in spring and CS401AB in summer.
CS401A: USACO Gold Basic (Fall)
Objectives:
 finish the first part of AStar USACO Gold Basic curriculum
 understand the concepts in USACO Gold level and be able to implement them
 be able solve easy/medium USACO Gold problems
Prerequisites:
At least one of the following requirements has to be satisfied:

 scored more than 600 points in a USACO Silver contest
 USACO Gold level contestant
 successfully completed CS302B course by finishing more than 60% of the problem sets
 Accelerated track:
 successfully completed CS301AB course by finishing more than 90% of the problem sets or
 successfully completed CS301A and CS301B courses by finishing more than 90% of the problem sets
Topics:
 Searching techniques
 Data structures
 Graph algorithms
CS401B: USACO Gold Basic (Spring)
Objectives:
 finish the second part of AStar USACO Gold Basic curriculum
 understand the concepts in USACO Gold level and be able to implement them
 be able solve easy/medium USACO Gold problems
Prerequisites:
At least one of the following requirements has to be satisfied:

 scored more than 600 points in a USACO Silver contest
 USACO Gold level contestant
 successfully completed CS302B course by finishing more than 60% of the problem sets
 Accelerated track:
 successfully completed CS301AB course by finishing more than 90% of the problem sets or
 successfully completed CS301A and CS301B courses by finishing more than 90% of the problem sets
Note that CS401A is not a prerequisite of this course. They can be taken in any order.
Topics:
 Dynamic programming
 Greedy methods
 Elementary geometric algorithms
CS401AB: USACO Gold (Summer)
This course is equivalent to take both the yearround courses CS401A and CS401B. Note that although the topics are the same, the problem sets mostly different.
Objectives:
 finish AStar USACO Gold Basic curriculum
 understand the concepts in USACO Gold level and be able to implement them
 be able solve easy/medium/hard USACO Gold problems
Prerequisites:
At least one of the following requirements has to be satisfied:

 scored more than 600 points in a USACO Silver contest
 USACO Gold level contestant
 successfully completed CS302B course by finishing more than 60% of the problem sets
 Accelerated track:
 successfully completed CS301AB course by finishing more than 90% of the problem sets or
 successfully completed CS301A and CS301B courses by finishing more than 90% of the problem sets
Topics:
 Searching techniques
 Data structures
 Graph algorithms
 Dynamic programming
 Greedy methods
 Elementary geometric algorithms
CS401P: USACO Gold (Winter)
This course is for students who already know USACO Gold concepts and have some experience in standard algorithms. Students will intensively work on former USACO Silver problems and their analysis. There is no lecturing other than short reviews in class.
Objectives:
 comfortably implement USACO Gold level solutions and pass USACO Gold contest
Prerequisites:
At least one of the following requirements has to be satisfied:
 scored more than 400 points in a USACO Gold contest
 successfully completed CS401B or CS401AB course by finishing more than 60% of the problem sets
Topics:
 Graph algorithms
 Dynamic programming
CS402A: USACO Gold Advanced (Fall)
Objectives:
 finish the first part of AStar USACO Gold Advanced curriculum
 be able to solve hard USACO Gold problems
 comfortably implement USACO Gold level solutions
 get ready for USACO Platinum course
Prerequisites:
At least one of the following requirements has to be satisfied:
 scored more than 400 points in a USACO Gold contest
 successfully completed CS401B or CS401AB course by finishing more than 60% of the problem sets
Topics:
 Searching techniques
 Data structures
 Graph algorithms
CS402B: USACO Gold Advanced (Spring)
Objectives:
 finish the second part of AStar USACO Gold Advanced curriculum
 be able to solve hard USACO Gold problems
 comfortably implement USACO Gold level solutions
 get ready for USACO Platinum course
Prerequisites:
At least one of the following requirements has to be satisfied:
 scored more than 400 points in a USACO Gold contest
 successfully completed CS401B or CS401AB course by finishing more than 60% of the problem sets
Note that CS402A is not a prerequisite of this course. They can be taken in any order.
Topics:
 Dynamic programming
 Greedy methods
 Elementary geometric algorithms
USACO Platinum Courses
These courses are for students who are competing in USACO Platinum division. Students who know C++ or Java are welcome.
Related courses are CS501A in fall, CS501B in spring and CS501AB in summer.
CS501A: USACO Platinum (Fall)
Objectives:
 finish the first part of AStar USACO Platinum curriculum
 understand the concepts in USACO Platinum level and be able to implement them
 be able solve USACO Platinum problems
Prerequisites:
At least one of the following requirements has to be satisfied:

 scored more than 600 points in a USACO Gold contest
 USACO Platinum level contestant
 successfully completed CS402B course by finishing more than 60% of the problem sets
 Accelerated track:
 successfully completed CS401AB course by finishing more than 90% of the problem sets or
 successfully completed CS401A and CS401B courses by finishing more than 90% of the problem sets
Topics:
 Dynamic programming
 Advanced data structures
 Advanced searching techniques
CS501B: USACO Platinum (Spring)
Objectives:
 finish the second part of AStar USACO Platinum curriculum
 understand the concepts in USACO Platinum level and be able to implement them
 be able solve USACO Platinum problems
Prerequisites:
At least one of the following requirements has to be satisfied:

 scored more than 600 points in a USACO Gold contest
 USACO Platinum level contestant
 successfully completed CS402B course by finishing more than 60% of the problem sets
 Accelerated track:
 successfully completed CS401AB course by finishing more than 90% of the problem sets or
 successfully completed CS401A and CS401B courses by finishing more than 90% of the problem sets
Note that CS501A is not a prerequisite of this course. They can be taken in any order.
Topics:
 Advanced dynamic programming
 Advanced graph algorithms
 Geometric algorithms
CS501AB: USACO Platinum (Summer)
This course is equivalent to take both the yearround courses CS501A and CS501B. Note that although the topics are the same, the problem sets are mostly different.
Objectives:
 finish AStar USACO Platinum curriculum
 understand the concepts in USACO Platinum level and be able to implement them
 be able solve USACO Platinum problems
Prerequisites:
At least one of the following requirements has to be satisfied:

 scored more than 600 points in a USACO Gold contest
 USACO Platinum level contestant
 successfully completed CS402B course by finishing more than 60% of the problem sets
 Accelerated track:
 successfully completed CS401AB course by finishing more than 90% of the problem sets or
 successfully completed CS401A and CS401B courses by finishing more than 90% of the problem sets
Topics:
 Dynamic programming
 Advanced data structures
 Advanced searching techniques
 Advanced dynamic programming
 Advanced graph algorithms
 Geometric algorithms
CS501P: USACO Platinum (Winter)
The course is for students who mastered standard algorithms and capable of working on complex tasks. Students will intensively work on former USACO Platinum problems and their analysis. There is no lecturing other than short reviews in class. It is assumed that students already know the USACO Platinum topics.
Objectives:
 comfortably implement USACO Gold Platinum level solutions and become one of the USACO finalists.
Prerequisites:
At least one of the following requirements has to be satisfied:
 USACO Platinum level contestant
 successfully completed CS501A or CS501AB course by finishing more than 60% of the problem sets
Topics:
 Range searching
 Advanced dynamic programming
 Advanced graph algorithms
Master Classes
Master classes are for students
CS503M: Turing Master Course
This course prepares individuals and teams for prestigious high school computer science competitions such as USACO National Camp, ACM High School Programming Contests, Stanford ProCo, Codeforces, and Top Coder.
The course is composed of 10 sessions in total yearround. It is focused on solving contest problems, contest strategies and teamwork.
Prerequisites:
This course is only for USACO Platinum Division or above contestants.
AStar CS Curriculum vs School CS Curriculum
AStar CS Courses are different than the CS courses in school curriculum. The major difference is the perspective. AStar CS Program focuses on acquiring the skills of using the topics to solve problems whereas school curriculum mostly focuses on teaching the topic itself and language details.
AStar CS Courses correspond the following portions of the K16 CS curriculum:
School course  AStar course  Comments 
Middle school Introduction to Programming  AStar Introduction to Programming Basic  School course is more language oriented whereas AStar course is more focused on problem solving 
High school Introduction to Programming / Java / C++  USACO Bronze  School course teaches object oriented part of the language whereas in depth problems are solved in AStar course 
AP CS A  USACO Silver Basic  USACO Silver is much harder in terms of problem sets but doesn’t include objectoriented and software engineering topics 
College Junior year Algorithms  USACO Gold Basic  
Graduate level Advanced Data Structures and Algorithms  USACO Platinum 
Online SelfStudy Courses
AStar offers online computer science courses in selfstudy format. Currently, courses don’t have live lectures or video recordings. All courses other than Introduction to Programming courses are available online.
Provided Services in Online Courses
The following services will be provided to the enrolled students:
 the curriculum and the course materials are the same as the onsite courses
 lecture notes will be provided in print in advance as a booklet in all courses except advanced ones (since advanced courses doesn’t have lectures but only problem sets)
 each student will have an AlphaStar elearning account
 students will solve the exercises / problem sets in their accounts at home
 students will submit their solutions for the weekly problems which will be graded by the automated grader
 almost all the problems are former USACO contest problems
 quizzes / exams will be taken online
 solutions of a problem set will be available after two weeks the problem set is provided
 students can post their questions to the course discussion forum
Diagnostic Exams
The following table provides guidelines for selecting the right AStar Computer Science course. To take an exam, you need a USACO account (if you don't have, you can easily sign up free at usaco.org). Click on the exam link provided below and find the right exam on the page. Try to solve the problems  unlimited time and trials. You can determine the right course based on your results and the recommendations provided below.Level  Diagnostic Exam  Recommendation 

USACO Bronze  USACO December'16: Bronze contest problems:


USACO Silver  USACO March'13: Bronze contest problems:


USACO Gold  USACO February'14: Silver contest problems:


USACO Platinum  USACO US Open'14: Silver contest problems:

