CSTA / ISTE Standards for Computer Science Educators        


In 2019, the International Society for Technology in Education (ISTE) and the Computer Science Teachers Association (CSTA) launched an effort to refresh the Standards for Computer Science Educators. Last updated in 2011, the Standards are designed to provide clear guidelines on what computer science (CS) educators should know and be able to do in the classroom, serve as aspirational goals for educators to guide their professional learning and stretch their teaching practice, and establish benchmarks for professional development (PD) providers as they craft CS PD experiences.


The field of CS education has changed significantly as CSforAll movements took hold starting in 2015. Since then, we have learned a great deal more about effective K-12 CS instruction. The rapid growth of CS education and growing expectation for educators to develop students who can meet the benchmarks established in the K-12 CS Framework and CSTA K-12 CS Standards justify an update to these Standards for CS Educators.

CS educators enter the field from many different areas of specialization, and their preparation varies significantly. Effective CS educators must have sufficient content knowledge and skills in computer science to understand the student learning progression. They must also continuously refine their pedagogical content knowledge (PCK) and skills to support all students in meeting learning outcomes. As computer science is an evolving field, it is important that educators continue to expand their knowledge of new and emerging areas.


In order to support rigorous CS education for all students, we aim to provide guidance around effective and equitable CS instruction. These Standards are written to provide a level of specificity that both offers sufficient guidance to novice CS educators while allowing experienced CS educators space for professional growth. Each indicator is not an expectation of current knowledge, but instead a road map to help educators from multiple entry points to identify strengths and areas of need. We hope teachers use this information to seek out targeted professional development opportunities to increase their mastery.

CS educators should have proficiency with CS concepts and skills for the grade band(s) they teach, as well as familiarity with the broader learning progressions (Standard 1). These Standards do not attempt to define all content knowledge and skills that CS educators should have. Rather, they reference the K-12 Computer Science Framework and CSTA K-12 Computer Science Standards, which provide curricular guidance on CS learning objectives and outline the foundation for a complete CS curriculum and its implementation at the K-12 level. To support the learning of all students, educators must understand and value equity (Standard 2), plan for equitable instruction (Standard 4), and implement inclusive pedagogy (Standard 5). As educators continuously develop their knowledge and skills, they also strengthen their professional identity (Standard 3).

While we anticipate that many in the CS education community will find value in these Standards, we designed them for a few specific audiences, in order to align to effective instruction and to build CS educators’ confidence, knowledge, and skills:

These Standards are designed for both novice and experienced teachers who primarily teach computer science. Non-CS educators who integrate computing into other disciplines should instead refer to the ISTE Computational Thinking (CT) Competencies.

Refresh Process
More than 130 CS educators applied to participate in the 2019 refresh initiative. Eight writers from diverse backgrounds and deep expertise in CS education were selected, joining leadership from both CSTA and ISTE. The writing team convened frequently and created multiple drafts of the refreshed Standards for CS Educators. It solicited feedback through two public feedback periods, several in-person feedback sessions, virtual focus groups, and strategic interviews with educators, researchers, policymakers, and PD providers.

The timeline of the refresh process is depicted in the graphic below:

Future Work
These Standards are aspirational and dependent on sustained professional development (PD) and learning. They do not describe an educator who is teaching CS after one week or one year of PD, but rather after years of ongoing and deepening professional growth. We intend for these Standards to be relevant to both novice and experienced CS educators in identifying opportunities for growth. Novice educators will aspire to master the standards as they progress in their professional development, whereas experienced educators will use the standards to identify gaps in their professional expertise as they plan their professional growth.

The writing team envisions these standards as being a foundation for additional work. We expect and hope that other groups will create learning progressions from these standards to scaffold them for the diverse and flexible pathways through which educators begin teaching computer science and develop mastery of their craft. For example, others may develop benchmarks for pre-service teachers or define competencies[1] to facilitate CS educators in demonstrating their mastery of these Standards. We are excited to partner with others to advance this vision for high-quality teaching of K-12 computer science.

Standard 1. CS Knowledge & Skills

Effective computer science educators develop thorough knowledge of the CS concepts and practices[2] that underlie what they teach. They demonstrate proficiency with CS concepts for the relevant grade band and familiarity with preceding and following grade bands[3]. They engage in computational thinking[4] themselves in order to support their students in developing these practices.

Indicators: Effective computer science educators:

1a. Understand computing systems

Understand how hardware and software work[5] within systems to input, process, store, and output information.

1b. Understand networks and the Internet

Understand how computing devices connect via networks and the Internet to facilitate communication and foster innovation.

1c. Use and analyze data

Collect, store, transform, and analyze digital data to better understand the world and make more accurate predictions.

1d. Develop programs and understand algorithms

Design, implement, and review[6] programs in an iterative process using appropriate CS tools and technologies. Understand tradeoffs[7] associated with different algorithms.

1e. Analyze impacts of computing

Analyze how people influence computing through their behaviors and cultural and social interactions, as well as how computing impacts society in both positive and negative ways.

1f. Demonstrate CS practices
Apply and model CS and computational thinking practices in flexible and appropriate ways. Practices include: Fostering an Inclusive Computing Culture[8], Collaborating Around Computing[9], Communicating About Computing[10], Recognizing and Defining Computational Problems[11], Developing & Using Abstractions[12], Creating Computational Artifacts[13], and Testing and Refining Computational Artifacts[14].

Standard 2. CS Equity and Inclusion

Effective computer science educators proactively advocate for equity and inclusion in the CS classroom. They reflect on an intentional equity-focused CS vision, and help reform the full pathway of student access, engagement, and achievement for all students in CS.

Indicators: Effective computer science educators:

2a. Understand issues of equity in CS
Explain how
structural barriers[15] and social and psychological factors[16] contribute to inequitable access, engagement, and achievement in CS[17] among marginalized groups[18].

2b. Minimize threats to inclusion
Develop strategies[19] to proactively challenge unconscious bias[20] and minimize stereotype threat[21] in CS.

2c. Represent diverse perspectives
Incorporate[22] the perspectives and experiences of individuals from marginalized groups[23] in curricular materials.

2d. Use data for decision-making to improve equity

Create and implement a plan to improve access, engagement, and full participation in CS[24] using classroom data[25] to inform decision-making.

2e. Promote accessible educational CS materials
Learn to effectively evaluate tools and curricula[26] and to leverage resources[27] to improve accessibility[28] for all students.

Standard 3. Professional Growth and Identity

Effective CS educators continuously develop their knowledge, practice, and professional identity[29] to keep pace with the rapidly evolving discipline. They participate in the larger CS education community and collaborate with others to develop the skills that enable all students to succeed in their classes.

Indicators: Effective computer science educators:

3a. Pursue targeted professional development

Develop and implement a plan for targeted professional development[30] to continuously deepen their content and pedagogical knowledge and skills.

3b. Model continuous learning
Model willingness to learn from others[31] and to continuously develop new skills. Demonstrate comfort in problem solving and perseverance when encountering new or challenging content.

3c. Identify and counteract personal bias

Reflect on how their own perspective, privilege, and power impact student success and classroom culture[32] and continuously work to counteract these personal biases.

3d. Recognize the value of CS for all students

Refine a personal teaching philosophy reflecting that all students can[33] and should learn CS[34].

3e. Leverage community resources

Identify and connect resources[35] in the local community and broader CS ecosystem to support student learning in CS.

3f. Participate in CS professional learning communities

Participate in CS professional learning communities (PLCs)[36] to collaborate with peers, celebrate successes, and share challenges and lessons learned.

Standard 4. Instructional Design for CS

Effective computer science educators design learning experiences that engage students in problem solving and creative expression through CS, using pedagogical content knowledge (PCK).[37] They plan to meet the varied learning, cultural, linguistic, and motivational needs of individual students in order to build student self-efficacy and capacity in CS.

Indicators: Effective computer science educators:

4a. Analyze computer science curricula

Analyze[38] computer science curricula for implementation in their classrooms in terms of CS standards alignment[39], accuracy, completeness of content, cultural relevance, instructional approaches, and accessibility.

4b. Develop standards-aligned learning experiences

Design and adapt learning experiences with strong alignment to comprehensive K-12 computer science standards[40].

4c. Design inclusive learning experiences

Ensure that all students can access and engage with content and succeed in learning CS by using Universal Design for Learning (UDL)[41] and Culturally Relevant Pedagogy (CRP)[42].  

4d. Develop strong student conceptual understanding

Use a toolkit of CS-specific teaching strategies[43] to develop students’ strong conceptual understanding and to proactively address student misconceptions in CS.

4e. Integrate personally meaningful projects

Plan opportunities for students to create open-ended and personally meaningful projects[44].

4f. Inform instruction through assessment 
Develop[45] multiple forms of formative and summative assessment[46] to provide feedback and support. Use resulting data for instructional decision-making and differentiation.

4g. Build connections between CS and other disciplines

Design learning experiences that highlight connections to other disciplines and real-world contexts.[47] 

Standard 5. CS Classroom Practice

Effective computer science teachers are responsive practitioners[48] who implement applicable pedagogy to facilitate meaningful experiences and produce empowered learners of computer science.

Indicators: Effective computer science educators:

5a. Facilitate inquiry for student learning

Use inquiry-based learning[49] to enhance student understanding of CS content. 

5b. Cultivate a supportive classroom environment

Cultivate a supportive classroom environment[50] that values and amplifies multiple solutions, approaches, perspectives[51], and voices.

5c. Promote student self-efficacy
Facilitate[52] students’ engagement in the learning process and encourage students to take leadership of their own learning by encouraging creativity and use of a variety of resources and problem-solving techniques. 

5d. Support student collaboration with computing
Provide meaningful opportunities for students to work together[53]. Elicit students’ ability to provide, receive, and respond to constructive feedback.

5e. Encourage student communication about computing
Create meaningful opportunities[54] for students to discuss, read, and write about computing.

5f. Provide meaningful feedback
Use formative assessments to provide effective feedback[55] to students and to adjust instruction in order to promote stronger achievement in CS.

[1] We are currently collaborating with the Friday Institute for Educational Innovation as they develop a set of core competencies for CS educators that are aligned closely with these Standards. The competencies will provide processes and pathways for CS educators to demonstrate professional growth and mastery of their craft.

[2] Computer science concepts are defined in the K-12 Computer Science Framework. Standards aligned to the Framework, such as CSTA K-12 Computer Science Standards and other comprehensive, state-adopted standards, articulate the current body of knowledge and skills.

[3] For example, middle grades CS teachers should demonstrate deep knowledge of the concepts taught in grades 6-8, and they should also have familiarity with the progression of concepts from upper elementary to early high school.

[4] Computational thinking (CT): The human ability to formulate problems so that their solutions can be represented as computational steps or algorithms to be executed by a computer. [Lee, 2016]

[5] Teachers use this understanding of hardware and software to troubleshoot problems using systematic processes.

[6] Design often involves reusing existing code or remixing other programs within a community. People continuously review whether programs work as expected, and they fix, or debug, parts that do not. Repeating these steps enables people to refine and improve programs. [adapted from K-12 CS Framework]

[7] Different algorithms can achieve the same result. Some algorithms are more appropriate for a specific context than others. Tradeoffs may involve use, performance, reusability, and ease of implementation. [adapted from K-12 CS Framework]

[8] Fostering an Inclusive Computing Culture: Incorporate perspectives from people of different genders, ethnicities, and abilities. To do this, educators must first understand the personal, ethical, social, economic, and cultural identities/contexts in which they and their students operate. [adapted from K-12 CS Framework]

[9] Collaborating Around Computing: Work effectively with colleagues to plan and reflect on lessons and create complex artifacts. Collaboration requires educators to navigate and incorporate diverse perspectives, conflicting ideas, disparate skills, and distinct personalities. [adapted from K-12 CS Framework]

[10] Communicating About Computing: Communicate with diverse audiences about the use and effects of computation and the appropriateness of computational choices. Write clear comments, document work, and communicate ideas using precise language and multiple forms of media. [adapted from K-12 CS Framework]

[11] Recognizing and Defining Computational Problems: Define problems, break them down into parts, and evaluate each part to determine whether a computational solution is appropriate. [adapted from K-12 CS Framework]

[12] Developing & Using Abstractions: Identify patterns and extract common features from specific examples to create generalizations in order to simplify the development process and manage complexity. [adapted from K-12 CS Framework]

[13] Creating Computational Artifacts: Create artifacts that are personally relevant or beneficial to their community and beyond, by combining and modifying existing artifacts or by developing new artifacts. Examples of computational artifacts include programs, simulations, visualizations, digital animations, robotic systems, and apps. [adapted from K-12 CS Framework]

[14] Testing and Refining Computational Artifacts: Test and refine computational artifacts in a deliberate and iterative process. Respond to the changing needs and expectations of end users and improve the performance, reliability, usability, and accessibility of artifacts. [adapted from K-12 CS Framework]

[15] Structural barriers include the lack of CS offerings, scheduling conflicts, prerequisite courses, school funding and resources, lack of qualified and experienced teachers, inadequate access to technology, and additional course requirements for English learners and students with disabilities.

[16] Social and psychological factors include biased beliefs about who can and cannot succeed in CS, isolation of underrepresented students, stereotype threat, lack of diverse representation in curriculum, and lack of diverse STEM role models and peer support networks. These factors can impact students’ perceived ability, aspirations, and performance. [adapted from Kapor Center]

[17] Equity is not just about whether classes are available, but also about how those classes are taught, how students are recruited, and how the classroom culture supports diverse learners and promotes retention. Read more about equity in CS education in the K-12 CS Framework.

[18] Marginalized groups traditionally underrepresented in computer science include women and non-binary people, Indigenous and Native peoples, Black people, Latinxs, English language learners, students with learning differences, students from low socioeconomic backgrounds, and students who live in urban and rural areas.

[19] See Microsoft’s Guide to Inclusive CS Education for many strategies. In secondary grade levels, this may take the form of active recruitment of students from underrepresented groups. See the CS is for Everyone Recruitment Toolkit and NCWIT’s Recruit and Retain Strategically resources for additional information. Learn more about combating bias and stereotype threat from CSteachingtips.org, Race Forward, Teaching Tolerance, and NCWIT.

[20] Unconscious bias (or implicit bias): Prejudice or unsupported judgments in favor of or against one thing, person, or group as compared to another, in a way that is usually considered unfair. [adapted from Vanderbilt University] When the unconscious biases of well-intentioned teachers influence their judgment towards particular students (e.g., by race, ethnicity, gender, able-bodiedness), it can influence their instructional practices, the expectations they convey, and their recommendations for relevant outcomes like course placement, special education, and discipline. [Dee & Gershenson, 2017]

[21] Stereotype threat: Being at risk of confirming, as a self-characteristic, a negative stereotype about one's social group (Steele & Aronson, 1995). Even subtle aspects of classroom environments, such as the gender ratio of students in a class or posters associated with masculine CS stereotypes, can trigger anxiety that affects the performance and academic engagement of females. [Dee & Gershenson, 2017]

[22] Evaluate the extent that diverse perspectives are represented in existing curriculum materials and identify or create additional resources as needed.

[23] Diverse perspectives should include Black, indigenous, people of color, women, people who identify as LGBTQ+, English learners, people with disabilities, and other marginalized groups. Diverse experiences should include both those throughout history and in the present time.

[24] For example, a teacher may advocate that students are not pulled out for response to intervention (RTI) time during their CS instruction. Alternatively, a teacher may create an active recruitment plan to increase enrollment among underrepresented groups of students. (See CS is for Everyone Recruitment Toolkit for ideas.)

[25] Monitor and disaggregate classroom data to inform decision-making to improve student access, engagement, and achievement in their CS classroom. For example, examine enrollment, affective surveys (measuring self-efficacy), and formative and summative assessments.

[26] For example, are videos captioned? Are there options for text-to-speech?

[27] Example resources include assistive technology specialists at the school or district level and the National Center for Accessible Educational Materials

[28] Accessibility: The design of products, devices, services, or environments for people who experience disabilities. Accessibility standards that are generally accepted by professional groups include the Web Content Accessibility Guidelines (WCAG) 2.0 and Accessible Rich Internet Applications (ARIA) standards. [Wikipedia]

[29] Professional identity includes understanding one’s self-concept as an educator, one’s personal biases, and one’s place as part of a larger CS education community (locally, statewide, and nationally).

[30] Identify strengths and areas of need in order to select specific priorities for professional growth, in a continuous improvement cycle.

[31] Teachers may act as the lead learner, demonstrating the importance of life-long learning and a positive attitude in the face of new material or new challenges

[32] Recognize that they have the power to influence students’ CS identities and trajectories and that personal bias can impact student engagement and achievement.

[33] When taught appropriately, all students are capable of learning and succeeding in CS. Standard 2 expands on how to build an inclusive computing classroom.

[34] CS is important for all students to learn to prepare for college, career, and civic engagement. CS has meaningful connections to a wide variety of curricular subjects, careers, and areas of interest.

[35] Resources include both people and programs and can be in school, outside of school, and in the community. Example people are other teachers, administrators, counselors, school staff, families, industry volunteers, librarians, and policymakers. Example programs are after school programs, summer camps, clubs, competitions, internships, library programs, volunteer placement organizations, guest speakers, field trips, mentorships, family code nights, and engaging with the community as the customer/user for student-developed projects.

[36] PLCs may be local, national, or global, and in-person, online, or blended.

[37] PCK combines CS content knowledge with instructional best-practices that acknowledge typical gaps and pitfalls in student understanding and practice. (https://www.wcu.edu/WebFiles/PDFs/Shulman.pdf)

[38] Educators can analyze curricula even if they do not select their own curricula.

[39] As part of examining standards alignment, educators should identify grade level standards that are partially covered and not covered and how their instruction fits within logical learning progressions. If state-adopted standards are not comprehensive, educators should also assess whether all five concepts and seven practices from the K-12 CS Framework are covered.

[40] Comprehensive standards are those aligned to the K-12 CS Framework, such as CSTA K-12 Computer Science Standards and other state-adopted standards.

[41] Utilizing the Universal Design For Learning (UDL) Framework in Computer Science Education 

[42] Resources: https://www.tolerance.org/frameworks/critical-practices, https://www.kaporcenter.org/tag/culturally-relevant-pedagogy/

[43] Examples include constructionism, teacher modeling (“code-alongs”), drawing on common analogies and illustrations, unplugged activities, and teaching strategies like PRIMM, and Use-Modify-Create.

[44] One common strategy is Project-Based Learning (PBL).

[45] Developing assessments does not always involve designing assessments from scratch; rather, they may compile and adapt existing assessment items and ensure alignment to learning objectives.

[46] For example, portfolios with aligned rubrics, student explanation of their iterative development process, Parsons problems, and debugging challenges

[47] Examples include science, math, history, political science, sociology, psychology, music, dance, and art.

[48] Responsive practitioners thoughtfully include and support all students and adjust their instruction based on student needs, cultural necessities, and formative and summative feedback.

[49] Guide student learning through asking key questions rather than offering solutions to technical challenges. Educators can act as the “guide on the side” when appropriate, rather than the “sage on the stage”. An example of scaffolded inquiry is Process Oriented Guided Inquiry Learning (POGIL), a pedagogy that makes students feel engaged, accomplished, and empowered through the use of self-managed teams with the teacher serving as a facilitator. For example, see the talk science project from TERC.

[50] Ensuring a supportive classroom environment for all learners includes differentiating instruction and responding to formative assessment by revising and revisiting instruction.

[51] Encourage students to consider multiple audiences in the design and development of computational artifacts.

[52] Support students’ ability to learn, grow, persevere, and advocate for themselves in CS.

[53] Research-based practices include pair programming and structured team roles.

[54] Structure opportunities to provide peer feedback (e.g., code reviews, gallery walks). See this NSF project video to learn more about infusing cooperative learning in CS.

[55] Effective feedback includes addressing misconceptions as they arise.