12 Computer Science Curriculum; your school should too.
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
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.
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 repl.it 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.
The high school courses utilize Code.org 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 Code.org 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.