When students begin to program, especially in block-based languages, it is easy for them to be engrossed with all of the features. As they explore it is important to both cultivate their excitement for creation and expression, and to anchor their knowledge in a core set of skills.
We refer to these as the Tools of Programming. They are the core skills of programming that are found in nearly every programming language, and create the foundation of all software. Broken down by grade level, this list provides a general time frame of when concepts should be introduced. This is based on the sequence of concepts from the Virginia Standards of Learning, and can provide general guidance in other situations.
Finally, many students will be able to learn these tools earlier than listed, or some concepts may be better mapped at an earlier grade levels.
Learning to Code
As students are introduced to programming concepts they pass through three phases - Aware, Use and Mastery. In the beginning they become aware of a particular command or concept. This can happen through exploration, reading existing code, working with a partner, or direct instruction. Students need to be given opportunities to read programs and predict the outcome. Just like when learning to read, we don't ask students to start by writing stories, first they experience existing text. A simple way to do this is to give them a short program and predict what it does without running it. Then have them run it and see if they were right. Finally, have them make small changes - for example, instead of a sprite saying "Hello There" it could say "Hello *student's name* ".
As they learn they begin to use these commands more independently. At this phase they may begin to realize when they need a certain command, or they may still need prompting from a peer or the teacher. The focus is on using the tool correctly, and combining them to create larger programs.
Eventually, they reach mastery. At this point they should recognize when and why they need to use a particular command. This is closely related to the concept of decomposition in computational thinking. Students break down a program they want to create into smaller parts, and begin to match these parts to the commands needed to create the program.
While these stages are presented sequentially here, students may not experience them in a straight line. This is why programming cannot simply be a once a year experience. Students need opportunities to explore and play as they learn to program, and they need to see how computer science relates to what they are learning in other subjects.
Overview: Algorithms and Programming
Context This strand is at the core of how computer science gets done. Programming is how humans give instructions to the computer, directions are encoded into commands that the computer follows. Everything a computer does is encoded. This idea of ...
What is Computer Science?
Defining Computer Science Computer science moves beyond using technology tools towards an understanding of how they work and ultimately designing new solutions to enduring human problems. Despite common misperceptions, computer science is not simply ...
Definition Computers store information in binary. A series of 1's and 0's represent numbers, letters, pictures, and everything else the computer stores. The computer tracks all of these locations so that the data can be retrieved when it is needed. ...
Computer Science Endorsement in Virginia
There are several routes to licensure that enable teachers to teach computer science courses. Additionally, teachers may be able to teach computer science classes with existing endorsements, depending on the course code the course is assigned by the ...
Computer science has lots invisible systems at work behind the scenes. These are the rules for how computer programs work, data is stored, and how devices will communicate over networks. One rule about computers and programming is the need to create ...