RePublic's CSforAll curriculum is designed for educators, by educators. Aligned to AP CS Principles from day 1, teachers and scholars engage in exciting lessons, differentiated practice opportunities, and projects designed to mimic experiences directly from the tech industry.
Every lesson comes with a detailed plan, accompanying exemplar answers for CFUs, and online professional development.
Our curriculum is designed to be flexible. Our curriculum can fit as an elective, a core class, a class that meets everyday or a class that only meets a couple of days per week. This is true for any grade level in middle school or high school.
Each course has 4 units along with optional extension capstone projects. Each unit is designed to last roughly 24 school days. Click the courses below to learn more about each of them:
Middle School 1 introduces students to computer science and introduces them to the seven Big Ideas of the AP Computer Science Principles framework. Through this course, scholars will learn to build games and websites using HTML, Thimble, and Scratch.Click the units below to learn more about each of them:
One of technology’s greatest levers is its ability to share and enhance stories. This unit opens by teaching the fundamental skills behind many multimedia formats necessary to build a programmed, animated autobiographical short in MIT’s block language. By diving into animation, design basics, and audio manipulation, students learn programming basics like loops, conditional reasoning, and user interaction. This unit also introduces two important skills that are used across RePublic curriculum: our problem-solving framework and our creative design cycle.
A user’s ability to interact with an application or website enhances the usability and usefulness of the artifact. In this unit, scholars begin building interactive applications in Scratch. The unit opens with a focus on mathematics, including an exploration of coordinate planes, positioning using the x and y-axis, variables, conditional statements, functions, and randomness. Scholars will use these concepts to create numerous elements of interactive games, such as primary character movement, timers, points, enemies, barriers, and multiple levels. Scholars will build multiple interactive games throughout this unit, utilizing the problem solving framework and group development principles.
Scholars interact with browsers and the Internet on a daily basis. The Internet allows people to access an enormous amount of information instantaneously and to communicate with millions of users around the world. We live in a society that actively engages with browsers on a daily basis, yet very few people truly know how the Internet works. This unit starts with scholars beginning to build out websites using HTML and CSS in Mozilla’s online code editor, Thimble. Students will learn how to integrate basic tags, lists, images, and links into a web page and manipulate the color, background color, and alignment of their content through CSS. By the end of this unit, scholars will build out two websites.
Algorithms are all around us. Every day we use algorithms to complete tasks and there are usually multiple ways to accomplish the task. In this unit, scholars will explore how to create algorithms in life and create code through the exploration of sequence, iteration, and selection using Scratch. In the first project, Draw that Shape, scholars will dive into an algorithm that relies on user input, sequence, and selection. In the final project of the unit, students will determine how and when to use functions and loops to get a sprite to move through a maze with minimal user interaction.
In Middle School 2, students continue to build on their programming skills, creating more complex websites and games. Students explore the structures of the internet, data storage and visualization, and begin building their first mobile applications using Code.org’s App Lab. Click the units below to learn more about each of them:
Through the creation of websites using HTML and CSS using Thimble, scholars will focus on collaboration, both locally with peers and globally with online tools and resources. In the first half of the unit, students will explore the interconnected nature of the internet and how it promotes collaboration among developers. Scholars will enhance the design of their websites using resources created by other developers such as fonts, layouts, and media players. Scholars will then have the opportunity to showcase their skills by creating a social media design project. In the second half of the unit, students will research the digital divide and how it affects the global community. Scholars will work collaboratively with their peers to present case studies on countries affected by their access to technology and the internet. Finally, students will develop a website proposing how to solve the digital divide.
This unit is based in mathematics and physics as students begin designing games with consideration for concepts such as velocity and speed. Students will build games and artifacts in Scratch that focus on how characters move around the screen and how elements such as gravity would impact such movement. Collaboration and team creation will be a key focus throughout the unit. Scholars will incorporate the mathematical concepts in this unit with previous knowledge gained in the Scratch language, and utilize user input, variables, and conditional logic. Students will learn to work with boolean logic and apply it to develop platform and scrolling games.
In this unit, scholars will begin to focus on the collection, analysis, and use of data using Google Sheets. All decisions made in an interconnected world such as our own are dependent upon the interpretation of data. Knowing how to collect and interpret data is a matter of pivotal importance for two reasons. First, data interpretation plays a significant role in all sectors of industry today. Secondly, data is often used to influence peoples’ perceptions. By understanding how data is gathered and used, scholars will become informed citizens who can interpret whether or not data is being used correctly and recognize attempts to misinform others through false interpretations.
This unit uses code.org’s App Lab to introduce scholars to mobile application design. They will develop two front end apps that meet a particular need for their users. Students will use purposeful IDs, the design elements, variables, conditionals, and functions to create these apps. Students will work collaboratively and pitch the apps that they built to their class.
Middle School 3 dives into the creation of mobile applications. Students build apps using both frontend and backend design and begin studying the history of innovation in the field of technology. Click the units below to learn more about each of them:
This unit introduces scholars to the back end of application design. Scholars will be using App Lab to design and create databases that align to the applications built in the previous unit. Students will spend the first half of the unit learning how databases are structured and accessed. They will pull information from databases and integrate them into existing applications. The second half of the unit will focus on manipulating and editing data. Students will return and build upon the concept of loops, which they had explored in Scratch in previous units. The final assessment involves scholars creating a social media platform. The platform can have a range of target audiences, but it must enable users to post information and see information posted by others based on a network. The final project will be graded based on its design, functionality, and potential impact.
In this unit, scholars will develop a full stack application using code.org’s App Lab. The application they build will combine the content from both MS2 Unit 4 and MS3 Unit 1, integrating front end design with back end database integration. Scholars will build applications that focus on the user experience, developing front end designs that allow users to access and review data. Students will also learn about how multiple tables in a database can connect through unique identifiers. Activities are split between opportunities where scholars have to design databases (e.g. design a database that can track songs by artist, genre, and plays) and where students then build and use data (e.g. find all songs by artist x and console them).
Modern computer science is dependent upon a rich history of innovation and evolution of technology. The pioneers of modern computer science, such as Ada Lovelace, Grace Hopper, and Alan Turing, not only revolutionized their field, but also impacted the ways in which every global citizen interacts today. Through the first half of this unit, scholars will apply their knowledge of HTML and CSS to delve into the history of computing technology and languages. From there, students will explore the development of the internet and how the network changed the progression of technological advances across fields. The unit closes by exploring the potential security risk the Internet poses and how new technology innovations battle cyber threats.
This unit approaches computer science through the lens of entrepreneurship. Students will focus on entrepreneurship by examining a series of case studies. The first case study on aerospace and modern advances in privately-owned aerospace companies will have students analyze the use of the design cycle in modern innovations. The second case study will investigate how mobile phones have transformed agriculture in Africa. Students will look at new technologies in the field and then consider how those innovations came to be, specifically noting the use of the design cycle. The final case study will focus on advances in medicine and the impact those advances have had on infant mortality rates worldwide. This final section of the unit will present scholars with a problem where they will be tasked in creating a potential solution and prototype with their team. The unit will utilize App Lab, Thimble, Google Docs, and Google Slides.
In High School 1, students are introduced to Computer Science through game, website, and application development. The curriculum exposes students to all seven Big Ideas from the AP Computer Science Principles framework as they build artifacts in Scratch, Thimble, and code.org’s App Lab. Click the units below to learn more about each of them:
The year opens with an exploration of the fundamental skills behind many multimedia formats, the programming of an animated autobiographical short story. Students will engage with lessons that teach programming basics, animation, and design. From there, scholars will begin building interactive programs through the utilization and manipulation of variables to control different elements of their programs, from timers and points to levels and lives. Scholars will build functions, incorporate randomness, and use conditional statements to enhance the interactive elements of their programs. At the end of this unit, scholars will build a maze game that incorporates randomness, variables, and sensing into the animation and design elements. This unit also introduces two important skills that are used across our curriculum: our problem solving framework and our creative design cycle.
From taking assessments in computer science class and researching history projects to watching videos on YouTube and posting in Instagram, scholars interact with browsers and the internet on a daily basis. The Internet allows us to almost instantaneously access an enormous amount of information and communicate with millions of people around the world. While we live in a society that actively engages with browsers on a daily basis, very few people truly know how the Internet works. This unit will launch with scholars building out their own websites using HTML and CSS. Scholars will learn how to integrate basic tags, lists, images, and links into a website and manipulate the color, background color, and alignment of their content through CSS. From there, scholars will dive into the structure of the Internet and explore how information is transmitted. Throughout this unit, scholars will interact with the concept of net neutrality, the principle that internet service providers should not enhance or reduce access to specific websites. Scholars will participate in a full class debate around the positives and negatives of net neutrality. By the end of this unit, scholars will build out two full websites, including an advocacy website on a topic chosen by the scholar and an argumentative website presenting an opinion on the net neutrality debate.
In this final unit, scholars will focus on the development of a full stack application through the utilization of code.org’s App Lab. Over the course of the unit, scholars will build an application that allows users to report information to officials or other users of a problem that needs to be solved. This could be citizens reporting broken issues in a park to the metro parks department, people reporting instances of police violence, or mapping of traffic incidents to city officials. Scholars will work in teams over the course of the unit to produce a final application that can be launched at the end of the year. Scholars will have multiple opportunities to pitch their projects and receive feedback from peers and teammates, and the unit will culminate in a pitch day where all applicants will present their projects to a panel of judges. Scholars will focus heavily on the planning process, why this particular application is so important, why individuals would want to use it, and what features needed to be included for maximum usability. Scholars will dive deeply into the Problem Solving Framework as they apply the process to much larger artifacts, and instructors will spend multiple days practicing analysis, debugging, and challenge creation with scholars throughout this unit.