My school added a K-12 Computer Science Curriculum; your school should too.

Andrew Julian
Sep 17, 2018 · 8 min read

Subjects and classes in school have been relatively static for quite a few years. Every student equates school with Science, History, English, Math and often a Foreign Language. It is time we add another increasingly relevant subject to the typical repertoire of school… Computer Science.

By: NESA by Makers on Unsplash

While some people consider Computer Science (CS) as a sub-topic of other subjects, this idea only serves to decrease the required emphasis and attention that CS needs for students in a dynamic world.

As the world becomes increasingly more digital, a strong understanding of computation, networking, and systems interactions (hardware and software) becomes that much more important to students in future opportunities.

This post will cover topics that emphasize the importance of your school having a dedicated Computer Science curriculum, essential elements of the experience, and resources that have helped my school deploy a K-12 curriculum that supports all students on their CS journey.

Why does your school need Computer Science?

Answering this question will help you focus the implementation of your program. While the direct benefits in my environment will be different than yours, there is still value to be derived.

With the digital world increasing its reach, the potential for students is much more vast each day. Becoming a digital native will open opportunities for students as soon as they start learning information.

When considering the logistics associated with your future CS program, it is necessary to consider the end goals.

  • What do we want our students to be able to do?
  • What skills do we want our students to have?
  • How do these skills align with our school’s mission/vision?

By answering the questions above, you will begin to see the required elements of your curriculum, ultimately shaping the instructional method and eventually the required resources.

Some sample answers to these questions could be…

We want our students to be able to create a personal website using HTML and CSS to showcase their best work as a digital portfolio.

We want our students to be able to create programs that help analyze data for their science research projects and share their results online.

We want our students to be able to produce creative content that can be displayed alongside traditional art.

Our school goal was to foster the development of computation and sequencing skills for the creation of products to address problems.

What do you need to achieve your goals?

Once you have your goals identified, you can now pursue the process by which you will achieve those goals. Just as with the implementation of any other area of content, the questions are essentially the same.

This means that you will need to consider the logistics of WHEN instruction will occur, to WHOM instruction will be provided, WHAT topics and resources will be taught, and HOW lessons and information will be provided.

To Whom is Computer Science Taught?

The answer is short and simple… Everyone! While there are certain topics that are appropriate for certain ages, computational thinking is applicable for students of all ages and abilities. We have taken much time to consider the breadth and depth of information that is appropriate for each grade level. We will talk more about that in the “What” section of this post.

When is Computer Science Taught?

Being a K-12 institution, my school had to handle the WHEN question depending on the division, with the questions of WHAT, and HOW being consistent threads throughout the entire experience.

Students in lower grades (K-5) have a devoted class once per week. This allows for a clear separation of information, just like transitioning between Math and English. Creating the understanding that Computer Science is a REAL subject, helps students understand its importance.

With a sound foundation in sequencing and computational thinking, middle school students invest 20% of their science instructional time to complete instruction based in gaining proficiency in computer programming. While it is not ideal to take away from another subject, the ability to create a new course that requires new teachers was not feasible.

At the high school, courses were added to embrace the skills learned in lower courses and extend the opportunities to apply them to created content. We have added two courses; Introduction to Computer Science and AP Computer Science Principles. Each of these courses allows students to engage in the variety of ways learned skills can be used to solve complex, real-world problems.

How is Computer Science Taught?

With a focus on experiential education, my school seeks to create opportunities for students to see knowledge in action. Information is best seen in its “natural habitat,” creating an understanding of the authenticity of the application. With this in mind, we wanted Computer Science to be presented in a similar manner.

With a focus on product creation for solving real problems, students are able to construct their understanding from evaluating models (products and applications) and identifying the major elements of applicable solutions. By showcasing what a program actually looks like or what it can actually do, students start to see what elements of computer programming allow certain things to happen.

Whether this is instilling the importance of sequential operations in the K-2 curriculum, the link between programs and action in the 3–5 curriculum, creation of automated systems in the 6–8 curriculum, or the understanding of complex systems in the 9–12 curriculum; emphasis is placed on student experience with, and evaluation of, authentic products in an effort to learn.

What is Taught in Computer Science?

As mentioned above, much consideration was taken to create a curriculum that combines authentic experience with skill development toward the ability to solve complex problems with computer science.

Grades K-2 focus on sequencing and computational thinking with unplugged challenges, while students in Grades 3–4 apply those previously learned skills by programming Lego Mindstorm Robots to complete skills and challenges. In an effort to aid the transition to the Middle School programming curriculum, Grade 5 students work with Arduino Uno kits to manipulate and create lines of code to change the action of the Arduino boards.

To further the depth of knowledge with programming languages, students in Grades 6–8 work within different themes such as; data, security, gaming, and creativity to create products using the programming language Python 3. This language was selected for its simple readability and syntax, making it a perfect beginner language that actually has broad and powerful applications beyond the classroom.

To cap the K-12 experience for students, we offer two high school courses, each with a different focus. While partially aligned, students taking one or both courses will derive value in the demystification of how computers work. The Introduction to Computer Science course focuses on the basic structures that allow technology to function and thrive, whereas the AP Computer Science course takes a deeper look at HOW each of those structures operates and asks students to create products that optimize and/or utilize their knowledge of the system to solve a problem.

What Resources Should Be Used?

This is the trickiest of the implementation questions due to the fact that schools are very different when it comes to demographics, access, and available expenses. The most important idea to consider is access to devices for student creation, whether that is for research or programming. This will influence which curriculum is right for your environment.

When considering the type of curriculum that was to be used, I first encountered the challenge that there were no K-12 computer science standards (this was 3 years ago). This presented the challenge of having to create the instructional and curricular goals for each grade level. I was able to start to investigate which resources would be required to facilitate growth toward those goals.

As far as the landscape of computer resources available to students, my school has three computer labs that can be used for K-8 students and a Bring Your Own Device (BYOD) program at the high school. This meant that I needed to consider how to balance computer access with unplugged instruction, both of which are valuable elements of a well rounded CS program.

By: Phi Hùng Nguyễn on Unsplash

In order to provide sound instruction for all students, taking into account the limited access to computers for all students, we opted to create a curriculum of our own and find resources (mostly free) that helped deliver the experience. For example, we use the Lego Mindstorm robot kits as a means for learning about programmed movement, but also utilize these kits in a way not intended by the manufacturer, but allows for creativity. The middle school python curriculum uses the web-based IDE called and lessons created from Python For Everyone. All of these resources are free or open source, making them ideal for scaling when the program grows.

By: CodeforChildren

The high school courses utilize curricula Computer Science Discoveries and Computer Science Principles. Due to the fact that each student has a device at the high school, we can use the simulations within the curriculum without having to schedule a computer lab. As with other grade levels, the curriculum is free and quite robust given its ease of access. The instructional approach encourages students to engage in activities where they can identify rules and concepts that lead them to conclusions about the lesson’s subject.

How is the new subject being received?

This is where I am glad to report that we have received resounding support for the addition of the classes across the curriculum. By articulating the value of each topic at the grade level and its alignment with future courses we have been able to show the value of these ideas immediately and their benefits in preparing students for a dynamic world.

My name is Andrew Julian and I am a teacher of science, computer science, and technology. I have a passion for considering how technology can positively impact a classroom and the education of all students.

Checkout my website at for more information.

For more about my classroom instruction or my foray into AR/VR development, you can read my Medium articles, a few of which are found below. Thanks!

Andrew Julian

Written by

Educator and Aspiring Developer —

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade