Computer Science Practices

The intertwined methods by which computer science is studied and applied.

Each practice is composed of a progression of skills, based on Webb’s Depth of Knowledge, that educators can utilize to structure CS lessons based on their students’ needs.

Analyzing

“I can develop a deeper understanding of computing applications.”

Students interact with computing applications created by government, industry, startups, nonprofits, researchers, artists and many others.They 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:

Steps to Analyze the Impact of Computing
Skill Definition Example
Describing

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.

Examining

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.

Interpreting

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.

Evaluating

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.

Prototyping

“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 students use computers in a limited way. When students practice prototyping computing projects, they are creating their own applications; using computers in different ways than when they use a word processor or web browser.

There are many versions of and names for the prototyping process such as the engineering design process, design thinking process, and others that map to process and skills discussed below:

Steps to Prototype an Algorithm or Application
Skill Definition Example
Asking

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.

Researching

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.

Imagining

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.

Planning

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.

Creating

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.

Testing and Critiquing

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.

Improving

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.

Communicating

“I can engage others in my ideas and work on computing concepts.”

Students will have to communicate the complex thought processes behind their computer science work when they collaborate with professors, advisors, project leaders, customers and others across a range of different fields. 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.

Steps to Communicate the “How” And “Why” of a CS Project
Skill Definition Example
Showing 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!”

Explaining 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.”

Presenting 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.”

Discussing 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?