One of the questions I am asked the most is “We are looking at adding in computer programming classes for high school students, but where do we even get started?”
Many schools are seeing the growing need for students to learn valuable skills like computer programming, computer science, and have a deeper understanding of computers and technology that goes beyond just using a computer.
Getting Started with K-12 Computer Science
Here is some guidance for getting started with a high school computer programming curriculum and/or high school computer science curriculum.
- You need a champion. This is a person who sees the huge need for students to learn these valuable skills. Someone who is passionate about this so much so that when everyone is saying “No”, this individual still keeps pushing forward for even just a small victorious “yes.” This doesn’t need to be someone who knows computer science or how to write code (yet). Since you’re reading this article, this person is probably you. 🙂 You might be a parent passionate about STEM, an English teacher, a parent who has a child who’s interested in computer science, a Math teacher, a principal, or district administrator. You are the person who will keep pushing forward even when things aren’t going as expected. You understand the value for our students to get jobs in some fast growing careers. Understand that making this change will take years, and a champion is dedicated to that long term mission.
- Understand the difference between computer science, coding, and computer literacy. In a nutshell, do you want to teach students how to consume technology or create technology? Teaching students how to save files, use Microsoft Word, and create presentations is not teaching computer science. Just because you have iPads in the classroom, that does not mean you’re teaching computer science. Teaching students how to create something from nothing using code, computational thinking, and logic is the start to learning computer science.
Computer science is no more about computers than astronomy is about telescopes. ~ Edsger Dijkstra
- Understand the state of K-12 CS education in your state. Code.org provides a great tool to help you see the basic overview of computer science in your state. When you click on your own state, a summary will pop up on your screen. I highly suggest clicking the orange link that says “View Your State Fact-sheet.” You’ll get access to a more in-depth document about the state of CS in your own state. Since Code.org collected and published the information, the data are focused on their impact in each state. It is important to remember that there are other computer science initiatives in each state that will likely not be represented on these documents. This is just a really good place to start to see where CS education is, where it needs to go, and provides you as a Computer Science champion, the documentation that you can provide to leaders in your school, district, and local community.
- Learn more about K-12 CS Education standards on the Computer Science Teachers Association website. I highly recommend joining the organization as well. This organization is the go to spot for K-12 Computer Science standards. These standards were written with the intent to provide educational governing bodies the necessary information to create state and national CS standards, but many are using the standards in other ways to implement new curriculum, revise existing curriculum, and more. If you are just starting out with CS in your classroom, school, or district, I suggest using these standards when thinking through your CS program.
- Become familiar with CS curricula. Start looking at different computer science curricula available on the Internet. Some of these are already aligned to the CSTA standards. Some are also aligned to the AP standards. It is important to understand that for curriculum developers to claim alignment to the CSTA standards or any of the AP standards, they must have been reviewed by the entity that maintains those standards. If you’re new to CS, some of these may seem confusing. You’ll probably wonder, “Which one of these should I even start with?” If you’re new to learning how to code, I suggest just picking one and going with it. They’re all great resources.
- Get some assistance from math teachers. Some have taken the standards one step further and had math teachers help align a CS curriculum to state math standards. This may help stakeholders see that coding and computer science can be fit into the day and doesn’t need to be a separate before-school or after-school club or activity.
- Evaluate your access to technology. Computer science doesn’t always need to be taught on a computer. Yes, of course we want students to learn how to write code, but certain concepts, computational thinking, and logic can all be taught using unplugged activities. CS Unplugged provides activities to teach computer science without a computer. Think about the technology you DO have. Some CS programs require you to install a program on the computer. If you have a tablet or other mobile device, you probably won’t be able to do this. Many IT departments will have policies around this as well. Web-based programs, such as Code.org can easily be taught using a tablet such as a Chromebook.
- Get comfortable being uncomfortable. If you’re the teacher who will be teaching CS in the classroom, you’re not going to know the answer to everything. Be OK with that. Try to shift your mindset to a “facilitator of learning” in the classroom. You can help guide students in the right direction with questions. Becoming a great computer scientist requires you to think through problems. It’s OK to not have all the answers. Part of your job here is to help students figure out how to get the answers.
These are the general guidelines that I provide to schools or districts who are considering starting a computer science program in their schools. Each group of students is going to have unique circumstances, so it is not a one size fits all type of approach. I’d love to hear your thoughts on your own experiences with starting a CS program in your school. Are you just getting started? What’s been your major obstacle? Leave a comment below!