Each practice consists of a progression of skills (based on Webb’s Depth of Knowledge) that help educators structure lessons to meet students’ needs.
Computer Science Practices
The intertwined methods by which computer science is studied and applied.
Analyze
Evaluating the social impact of computing“I can develop a deeper understanding of computing applications.”
In the future students will interact with computing applications created by government, industry, startups, nonprofits, researchers, artists and many others.They will need to evaluate and respond to the ways that these applications affect their lives, their families and friends, as well as their communities.
In order build their ability to analyze computing applications, educators should help students develop these skills:
| Skill | Definition | Example |
|---|---|---|
| Describe | Describe an application of computing by detailing who, what, where, when. In this first step, focus on things that can be observed. |
A keyboard allows users to input data into a computer. It has keys with letters, symbols and other functions. |
| Examine | Examine the description for patterns, general characteristics, or anomalies. How do the parts of the whole relate to each other and the user? |
The letter keys are not arranged alphabetically. Some keys affect the behavior of others. Users need know the placement of, and how to read the keys. |
| Interpret | Interpret your analysis by looking for evidence to support an explanation. Test the evidence by researching similar cases, running experiments, or creating models (relates to prototype). |
I can draw on personal experience and interviews with others about how they use the keyboard, i.e. from memory, looking at the keyboard, etc. |
| Evaluate | Evaluate the application of computing, based on your investigation. What are its benefits and evils; and to whom, how much, when and how? What are potential modifications and the arguments for and against? |
The keyboard works great for people that memorize the keys and know all the functions. Blind people or people without full control of their fingers may experience difficulties. |
Prototype
Computing projects connected to student interests“I can express my ideas by making computing projects”
The goal of the prototyping practice is to help students build a mental model of how to use a computer to create new applications. Computer applications or programs like word processors or web browsers define how we use computers in a limited way. When we practice prototyping computing projects, we are creating our own applications; using computers in different ways than when we fire up our word processor or web browser.
There are many versions of the prototyping process - this is a seven step process that equally weighs:
- Researching and designing what to build (many connections to the analyze practice).
- Building the prototype in iterations, or many small parts, in order to test often and make small changes.
- Recording and reflecting on work and the results of testing.
| Skill | Definition | Example |
|---|---|---|
| Ask | Identify a problem that can be solved, break it down into smaller parts, and set constraints that limit its goal, features, or complexity. |
A school performance (dance, play, etc.) needs three animations of ten minutes each, but we can loop a shorter animation. |
| Research | Read about the problem, look into how others solve it, find projects you can repurpose / remix, interview people such as experts, or people that might use your prototype. |
We researched concert videos with background animations, searched the Scratch community for projects to remix, and spoke to the performance director. |
| Imagine | Collaborate to imagine how to solve the problem. Use problem definition, constraints, and research to help you imagine new ideas. |
We came together to jot down ideas on chart paper, crossed out ideas that were too hard, and voted on a couple options. |
| Plan | Select a promising solution, build a team, and set roles. Identify materials, break down your project into smaller parts, and set a timeline. |
We drew a storyboard for each option, set a timeline to share it with the performance team, and then built it in code. |
| Create | Work with your team to build enough of the project in order to test it out and get feedback. Be creative about your materials: paper, drawing apps and code. Take pictures or video, and comment on your work or code. |
First iteration: We created a slideshow of our animation options using pictures we found and drawings. Second iteration: We created animations in Scratch to test out with the projector. |
| Test or Critique |
Allow different people to test your prototype without telling them how it works. Take detailed notes and ask questions. When critiquing or giving feedback, use the analyze practice to structure feedback. |
First iteration: The performance director and actors said that the theme and colors were good, but the animation was too fast. Second iteration: The animation was square but the projection was rectangular. |
| Improve | Repeat the process using the information from testing as a new starting point. Repeat the process multiple times! |
First Iteration: Slowing down the animation won’t be simple, but can be done. Second Iteration: We will screen-capture the animation over a background to align its sides to the projection. |
Communicate
Understanding computing concepts“I can engage others in my ideas and work on computing concepts.”
Whether it be in college or a career, students will have to communicate the complex thought processes behind their computer science work. Students will inevitably work with collaborators, professors, advisors, project leaders, customers and many others on computing issues or projects. These stakeholders will be interested in the ‘how’ and ‘why’ behind students’ projects and analyses.
Students should practice the skills required to communicate their higher-order CS thinking, go through the analyze and prototype practices, and not just complete those activities.
| Skill | Definition | Example |
|---|---|---|
| Show | Talk, draw, sing, etc. about a computing application, why you think it’s interesting, or why you made it. | “I made a circuit with two lights and button. When I’m not pushing the button, one light is on and the other is off and pushing the button reverses which one is on and off. I like this because it reminds me of a digital lock on a door, like in the movies!” |
| Explain | In your own words talk, draw, sing, etc. about your understanding of how a computing application works. What did you discover about how it works while playing, testing, or creating it? | “I used code that recognizes when the button in my circuit pushed if it is pushed, it turns on one light and turns off the other. That’s called an if-statement and it let’s me tell the computer how to make a simple decision.” |
| Present | Talk, draw, sing, etc. about your understanding of computing concepts to a group of people. Consider how you might help your audience better understand your presentation - e.g. including relevant and practical examples or hands-on activities. Capture feedback that might be useful to improve your presentation. | “I used code to make the button in my circuit do something simple, but interesting. The code is running on a small chip called a microcontroller. Anyone can program a microcontroller, so let’s all try to do a very simple blinking light activity together now. Once we do it, I’d love to hear what questions you have about microcontrollers.” |
| Discuss | Engage in a deep discussion around computing concepts by asking questions, researching and presenting evidence, and drawing on your firsthand experiences using computing concepts. | Computers are getting smaller and can be embedded anywhere which could make our lives better, but how do we protect people’s privacy? Because small computers can’t store large amounts of data, people’s personal data is sent over the Internet to databases. What if I don’t want my data sent thousands of miles away? |