New CSTA K12 Computer Science Standards
Question: What is up with new CSTA Standards?
A teacher recently asked a group of other OCSTA members the following and sparked a good discussion:
Have you tried aligning your curriculum to the standards?
Did you notice the following?
- By 2nd grade, students should be able to
- “develop programs with sequences and simple loops, to express ideas or address a problem” – 1A-AP-10
- By 5th grade, students should be able to…
- “Create programs that include sequences, events, loops, and conditionals.” – 1B-AP-10
- By 8th grade, students should be able to…
- “Design and iteratively develop programs that combine control structures, including nested loops and compound conditionals” – 2-AP-12
In other words, if we’re teaching variables, data types, debugging, events, loops, conditionals, nested loops, compound conditionals, functions and parameters, and documentation, then we are doing elementary and middle school work.
This concerns me because I have to point to a national standard in my goals, and I’m pointing to standards for elementary students, or I have to seriously ramp up my curriculum and goals.
Suggestion: Recognize the goal of the CSTA Standards
The CSTA standards are very much aspirational standards. Given the CS standards vacuum prior to recent times, the standards writers had to either:
- Write lowest common denominator standards for HS based on common current practice.
- Write standards based on the idea that they will represent how things should be.
The authors obviously went with the second option – aspirational standards. The positive side of this approach is that it provides a goal post for willing states, districts and schools to align their efforts to. If all the standards did was codify common current practice, there would be no incentive to implement direly needed changes in the way we teach CS.
The bad news is that this choice means the standards are yet useful as a tool to point to and say “here is what my current students at the high school level should be mastering”. They assume a background from K-8 that most students do not have. So how do we use them now?
Two possible approaches are:
- Look for and focus on higher level standards that revisit earlier skills at a deeper level. Like 3A-AP-15: “Justify the selection of specific control structures…”. That standard assumes students learned control structures in previous classes and are now comparing and contrasting different approaches. If your students are starting from scratch, learning the basic control structures is still part of working towards those standards. It will just be one that your students spend more time on as they both learn the structures and then learn to evaluate the options they have.
- Work to the lower grade standards. If a math teacher in an algebra class got a class or students who had never been exposed to basic arithmetic, fractions, etc… the only reasonable thing to do would be to go back and worry about those foundational concepts.
Hopefully, over time, what we currently think of as “high school” CS will change. Prior to 1786, algebra was not mentioned in Harvard’s curriculum. By the early 1900’s it had become a regular high school subject, but only for advanced students. Now it is the standard math class for 8th or 9th graders. The same progression is going to happen with CS, only much, much faster. The standards are an attempt to force that movement.
As large numbers of schools attempt to teach CS across the entire range of K-12, there will certainly be debate over what the exact standards should be and changes to them. For now, focus on them as goal posts we are all working towards instead of a pacing you and your current students should be judged against.