CS4All aims to support every New York City public school in implementing their vision for computer science education. To do so, the initiative provides training for middle and high school educators on the below introductory and advanced placement CS courses.


Introductory CS Courses

Introductory courses offer students opportunities to learn CS through activities designed to support multiple entry points for engagement such as music, art, stories, games, and sports. Introductory courses borrow from research-based curriculum that provides students with opportunities to explore CS concepts and practices as they begin to build their CS identity or develop computational perspectives. The goals of introductory courses are:

  • to increase the number of middle and high school students, particularly from traditionally underrepresented groups, to new and emerging high-tech career pathways;
  • to begin to develop student’s computational concepts and practices based on their personal passions;
  • to increase the number of students who are ready and interested to enroll in foundational AP courses such as Computer Science Principles.


The following introductory CS  courses are currently being offered:

Edhesive Get Ready to Teach Intro to Computer Science (Python)

  • Edhesive’s Get Ready to Teach Intro to Computer Science (Python) professional learning program provides teachers with the information and resources they need to successfully facilitate the Intro to Computer Science course in a blended learning environment. The program includes a comprehensive overview of the components and features of the Intro to Computer Science curriculum, as well as leveled and self-paced coding tracks that allow teachers to learn to code in Python while also becoming familiar with the lessons and features of the Intro to CS curriculum. The program also includes robust resources and activities that explore the dynamic role and responsibilities of the Intro to CS teacher, preparing educators to facilitate the lessons, use and respond to the assessments, harness and create supplemental learning activities, and customize the Intro to CS course to meet students’ needs. To learn more, visit

Computer Science Discoveries

  • Computer Science Discoveries is an introductory computer science course that empowers students to create authentic artifacts and engage with computer science as a medium for creativity, communication, problem-solving, and fun. With a combination of unplugged activities to engage students in logic and introduce basic concepts, students also use a number of digital tools to create projects like websites, games, and apps that include a physical computing component with Adafruit’s Circuit Playground. The course features six units which can be done in a single semester or a full year, and resources can be found online to allow flexibility of in-class meeting time. The course is young, but a strong community of over 500 teachers across the United States participate in forums to help modify the course for a variety of diverse student populations. Watch this video and view this fact sheet for more information.

Exploring Computer Science

  • Exploring Computer Science is a yearlong course developed around a framework of both computer science content and computational practice. Assignments and instruction are contextualized to be socially relevant and meaningful for diverse students. Units utilize a variety of tools/platforms and culminate with final projects around Human-Computer Interaction, Problem Solving, Web Design (HTML, CSS), Programming (Scratch, Edware), Computing & Data Analysis, and Robotics. ECS is recognized nationally as a preparatory course for AP Computer Science Principles. Watch this video and view this fact sheet for more information.

The following introductory CS courses will launch in the 2018-19 school year:

Introduction to Physical Computing

  • Developed by the CS4All team, the Introduction to Physical Computing course is a 54-hour long introductory computer science course that guides students to explore fundamental CS concepts through tinkering with the micro:bit, a simple programmable computer device. Each unit of the course guides students through the learning process with three practices: analyzing computer applications around them based on a given issue; prototyping a project that reflects the result of the analysis plus their interest; and communicating about their projects, including the functionality of a project, a project development process, influence from other projects and their contribution to a project when working in a group. The curriculum and support sessions assist educators in discovering the most effective way of facilitating this course for their own classroom, while helping them to become comfortable with the main tool, the micro:bit. Watch this video and view this fact sheet for more information.

Introduction to Computational Media

  • Developed by the CS4All team, the Introduction to Computational Media is a yearlong (108 hours) creative computing course for high schools using the open source Javascript library p5.js. By understanding how code can be a medium for creative expression, students will learn the fundamentals of computer science while designing and prototyping interactive projects that run on a browser. Additionally, students will learn how HTML/CSS elements can interact with p5.js to fully take advantage of developing content for a browser. This course is currently being implemented in NYC schools via CS4All’s Software Engineering Program (SEP) and it aligns with the CS4All Blueprint for CS education that emphasizes a hands-on CS approach called creative computing. Watch this video and view this fact sheet for more information.

TEALS Introduction to Computer Science

  • The Introduction to Computer Science curriculum is based on the University of California at Berkeley CS 10 course, “Beauty and Joy of Computing” (BJC). TEALS has worked closely with UC Berkeley’s CS department to adapt BJC as a flexible and approachable introductory programming course for a wide range of high school students from diverse backgrounds. The course has been successfully implemented in hundreds of high schools nationwide. This introductory computer science course is not the same as the BJC AP CS Principles course. The two courses share a pedagogical philosophy, as well as the Snap! programming environment. Watch this video and view this fact sheet for more information.


Advanced Placement CS Courses

Advanced Placement Computer Science Principles (AP CSP) courses are designed around comprehensive, research-based framework that prepares students for the new Advanced Placement (AP) Computer Science Principles exam. The goals of AP CSP courses are:

  • to increase the number of high school graduates, particularly from traditionally underrepresented groups, who are ready to enter new and emerging high-tech career pathways;
  • to develop students’ computational thinking and problem-solving skills in real-world contexts;
  • and to increase the number of students who successfully complete the AP exam and receive college credit.


The following AP CSP courses are currently being offered in schools:

Beauty and Joy of Computing

  • The CS4All team, in partnership with the Education Development Center (EDC), University of California, Berkeley (UCB), and CSNYC, offers The Beauty and Joy of Computing’s Advanced Placement Computer Science Principles (AP CSP) curriculum, as well as professional development. The purpose of AP CSP is to attract non-traditional computing students such as female and underrepresented minority students, to the breadth and depth of ideas in modern computer science. The program curriculum is based on a successful computer science undergraduate course for non-majors; Beauty and Joy of Computing (BJC) at UC Berkeley. The curriculum, adapted for New York City high schools by the EDC, will prepare students to take the new AP CSP exam. The program is underwritten by a grant from the National Science Foundation (NSF) and includes a research component that involves consenting teachers and students. Watch this video for more information. AP Computer Science Principles with Code/Interactive

  • AP CSP is a full­-year, approachable, rigorous course that introduces students to foundational CS topics including programming (block and/or text JavaScript), algorithms, the Internet, big data, digital privacy and security, and the societal impacts of computing. Curriculum tools include AppLab, a data analysis/visualization tool, and activity-specific “widgets” (ex. The Internet Simulator). AP CSP’s goal is to create leaders in CS fields and attract traditionally underrepresented students. Through hands-on, collaborative workshops, teachers will reflect on the pedagogy of teaching CS while becoming familiar with the subject. Workshops are accessible to teachers with any or no prior CS experience. Watch this video and view this fact sheet for more information.

The following additional AP CSP course will be offered in schools during the 2018-19 school year:

UTeach Computer Science Principles

  • UTeach Computer Science Principles (CSP) is a yearlong high school course that addresses the seven Big Ideas and six Computational Thinking Practices specified by the College Board’s AP Computer Science Principles Curriculum Framework. UTeach CSP is a complete, classroom-ready curriculum that contains comprehensive teacher materials that rely on delivery models that are flexible and easy for teachers to use in a variety of high school classroom settings. The curriculum is designed to be taught using a  project-based approach to engage all students. In fact, it is designed specifically to engage women and other historically underrepresented students in the field of computer science. Watch this video and view this fact sheet for more information.

We are working to make this website easier to access for people with disabilities, and will follow the Web Content Accessibility Guidelines 2.0. If you need assistance with a particular page or document on our current site, please contact programs [at] to request assistance.