High School

CodeVA offers five training programs for public high school educators and education professionals:

  • HS – CS Foundations (ECS) prepares science teachers to teach a high school elective in computer science
  • HS – AP CS Principles prepares teachers to teach an Advanced Placement level course.
  • The MS/HS – School Counselor Training is designed for Middle and High School Counselors and administrators to explore what computer science opportunities exist for their students and how to increase awareness and participation.
  • HS – Programming using Java and Programming in Python are focused on building programming knowledge.
  • Programming in Python II is focused on continuing to build programming knowledge.

CodeVA provides training tuition waivers to all full-time educators working in Virginia public school divisions who are accepted through our registration process. This includes all curricular materials.


HS CS Foundations (ECS)

Virginia State Course Code: 10020

Computer Science Foundations is an introductory level course that prepares students for future study in a variety of fields, including computer science, cybersecurity, web design, and networking.

CodeVA’s training program uses the Exploring Computer Science curriculum. It was 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 the following topics: Human Computer Interaction, Problem Solving, Web Design, Programming, Computing and Data Analysis, and Robotics.

Developed at UCLA in partnership with the Los Angeles Unified School District, the Exploring Computer Science curriculum is the National Science Foundation funded project to expand participation in computer science. It is the foundation of Computer Science for All. The curriculum is a complete day-by-day curriculum, and a unique professional development to help you implement it in your classroom.

In addition to the new Computer Science Foundations course, the Exploring Computer Science training can be used in a variety of classes, including Computer Math and IT Fundamentals.

The HS – CS Foundations (ECS) program prepares educators to:

  • Learn in-depth yet accessible computing concepts that align with an introductory high school-leveled computer science course
  • Experiment with pedagogical techniques
  • Gain experience and confidence in leading lessons and activities.
  • Practice and be able to instill positive dispositions in your students (persistence, willingness to make mistakes, resourcefulness)
  • Learn how to adapt ECS lessons to fit their classroom needs from a critical lens of equity

The initial training consists of six days over the summer, with four follow up Saturday sessions during the school year and a PLC based on community learning. Curriculum is included for free as a part of the program.

Preview the Curriculum  

Register Here View Schedule


HS AP CS Principles


This 6 day course prepares educators to teach the foundational concepts of computer science to high school students through a hands-on teacher-as-facilitator approach. AP Computer Science Principles is a student-facing college level course that covers the foundational concepts of computer science and challenges students to explore how computing and technology can impact the world. This training specifically works with teachers to prepare for teaching this class to 9-12th grade students and provides a rigorous and relevant look at the dynamic field of computer science.

This AP course was launched in 2016 with the intention of opening computer science opportunities to more students. Developed in a partnership between the National Science Foundation and College Board, the new AP Computer Science Principles class is intended to provide a rigorous and relevant look at the dynamic field of computer science. In order to launch this course, the College Board partnered with universities and organizations to provide “AP Endorsed” curricula that include classroom materials and robust training programs.

CodeVA’s training program is provided in partnership with Code.org. Our outstanding training teams are experienced high school AP Computer Science teachers who have worked for the College Board as graders and have helped to shape computer science programs within their schools.

The HS – AP CS Principles program prepares educators to:

  • Develop background knowledge in computer science topics
  • Experiment with pedagogical techniques
  • Gain experience and confidence in leading lessons and activities.
  • Practice and be able to instill positive dispositions in your students (persistence, willingness to make mistakes, resourcefulness)
  • Prepare students to take the AP Computer Science course and test

The program includes online modules covering core content, a 6-day online summer practicum, four follow up sessions during the school year, and a PLC focused on community learning.

Preview the Curriculum

College Board’s AP CS Principles site

Register Here View Schedule


MS/HS – School Counselor Training

This 3 day course is designed for Middle and High School Counselors and administrators to explore what computer science opportunities exist for their students and how to increase awareness and participation. Participants will create a plan to increase recruitment and engagement for CS courses and explore how schools and divisions can increase equitable access to CS courses.

The MS / HS School Counselor Training prepares educators to:

  • Give a definition of Computer Science that applies to a real world context
  • Explore why students should be involved in Computer Science programs/courses
  • Share careers in CS and pathways for deeper knowledge and industry experience
  • Define strategies in Equity and Participation in CS including building strategies for engaging and recruiting in to CS classes
  • Develop a CS Ready school culture where students have multiple in class and after school opportunities to engage in Computer Science activities
  • Have knowledge of state codes for Computer Science courses
  • Explore how to advocate for change or utilize what exists for your students

Register Here View Schedule


HS – Programming using Java


This three-day course will introduce educators to Java programming tools and resources, as well as introduce and expand their knowledge with programming using an IDE platform and/or a Text Editor. Participants will learn how to create programs through using variables, conditionals, and loops. This course consists of strategies to write code efficiently, using inductive learning, and exploring different project domains that use Java while collaborating with other educators. Throughout the course, participants will learn through participation in a variety of projects and collaborate with other educators to assist each other on how to use the application and how to integrate these concepts into their classroom content.

Participants may include: 9th-12th Grade computer science/programming teachers, curriculum writers/leads for high school math/computer science, and teachers who want to gain an introductory experience with a text-based programming language.

The HS – Programming using Java program prepares educators to:

  • Create programs with Java using variables, conditionals, and loops.
  • Explore packages and frameworks associated with different programming domains (game design, app developments, data visualization, etc.)
  • Learn and use inductive learning to become successful Java coders
  • Learn how to integrate programming concepts into classroom content

The program includes online modules covering core content, a 3-day online summer practicum, four follow up sessions during the school year, and a PLC focused on community learning.

Register Here View Schedule


Programming using Python

This three-day course will introduce educators to Python programming tools and resources, as well as introduce and expand their knowledge with programming using the Replit platform and/or a Text Editor. Participants will learn how to create programs through using variables, conditionals, and loops. This course consists of strategies to write code efficiently, using inductive learning, and exploring different project domains that use Python while collaborating with other educators. Throughout the course, participants will learn through partaking in a variety of projects and collaborate with other educators to assist each other on how to use the application and how to integrate these concepts into their classroom content.

Participants may include: 3rd-12th Grade classroom teachers, instructional technology staff, specialists (LMS, Gifted, SPED, ELL, STEM, etc.), curriculum writers, or instructional leaders at the building or district level.

The Programming using Python program prepares educators to:

  • Create programs with Python using variables, conditionals, and loops.
  • Explore packages and frameworks associated with different programming domains (game design, app developments, data visualization, etc.)
  • Learn and use inductive learning to become successful Python coders
  • Learn how to integrate programming concepts into classroom content

The program includes online modules covering core content, a 3-day online summer practicum, four follow up sessions during the school year, and a PLC focused on community learning.

Register Here View Schedule


Programming using Python II

This three-day course will build upon participant’s knowledge of the Python programming language, tools, and concepts as well as introduce and expand their knowledge by using functions, lists/dictionaries, and functions with parameters. These new concepts will allow participants to learn and create different types of programs with a focus on debugging and determining ways to integrate programming into 6-12th grade classrooms. Throughout the course, participants will learn through partaking in a variety of projects and collaborating with other educators on how to use the application and how to integrate these concepts into their classroom content.

Participants may include: 3rd-12th grade classroom teachers, instructional technology staff, specialists (LMS, Gifted, SPED, ELL, STEM, etc.), curriculum writers, or instructional leaders at the building or district level.

The Programming using Python II program prepares educators to:

  • Create programs with Python using functions, lists/dictionaries, and functions with parameters.
  • Explore and discuss packages (API), lists, and dictionaries to simplify code
  • Learn and use inductive learning to become successful Python coders
  • Create a software design that uses functions to modularize features of programs
  • Learn how to integrate programming concepts into classroom content

The program includes online modules covering core content, a 3-day online summer practicum, and a PLC focused on community learning. Programming using Python is a prerequisite to this course.
Register Here View Schedule