Here are definitions of common CS concepts, alongside parallels from other subjects to help to demystify unfamiliar vocabulary.
An abstraction represents a simplified idea or problem derived by ignoring details and using patterns or general characteristics. A simple example of a CS abstraction can be found in programming languages: They allow programmers to give complex instructions to computers without worrying about the bits and bytes!
Ideas, problems, or projects are broken down into component parts to set the stage for deeper analysis.
145 can be decomposed as 100 + 40 + 5.
Words can be broken into syllables to sound them out. Essays have three parts—introduction, body, and conclusion.
|Pattern Recognition|| |
Decomposed component parts are examined to find patterns like similarities, repetition, conditional relationships, or nested relationships.
2, 4, 6, 8, 10 are even numbers. 1, 3, 5, 7, 9, 11 are odd numbers.
As an alphabetic language, English has many systematic spelling patterns—“change y to i before adding es,” “i before e except after c”
|Generalization and Detail Removal|| |
Component parts are grouped by general characteristics, and unnecessary details filtered out.
Rounding or estimating removes details to provide a general understanding.
The main idea is determined by identifying the most salient idea and filtering out supporting details.
A process that completes a single task is more useful when it can be chained together with other processes to accomplish something more complex.
Inscribing a shape inside another shape is a process that can be done regardless of the inner and outer shape.
Each phase of the writing process has individual work that leads to creating a developed piece of writing—generating, rehearsing, drafting, revising, editing, and publishing.
Interfaces help users complete tasks, while hiding details of the overall process.
Function machines in math that take inputs and produce outputs represent the math being done.
Algorithms are a generalized and repeatable sequence of instructions that achieve a particular purpose and output, given a set of inputs. It's important to understand when, why and how to implement an algorithm, and to consider who or what might be affected.
|Algorithm Design|| |
Instructions should be general, clear, well-formed, complete, and capable of being executed as intended without confusion.
Showing the strategies used to solve a problem.
Explicitly demonstrating strategies to determine character traits—a) notice a character’s actions and ask, “What kind of person acts this way?” b) pay attention to dialogue and ask, “What kind of person would say things like this?”
|Control Flow|| |
The order in which steps of an algorithm are executed; determined by logical constructs such as IF statements, loops and calls to other procedures.
Students explain their problem-solving steps when addressing a word problem. First they decompose their problem, chose a strategy based on some logic, and so on.
In non-fiction texts, a footnote can redirect us to look elsewhere for more information, before taking us back to where we left off.
The steps in the writing process aren’t necessarily linear. When revising, writers might need to return to the rehearsal phase and gather more information. During rehearsal, writers might do some flash drafting to try out an idea.
|Inputs, Variables, and Outputs|| |
How data is passed into (inputs) manipulated by, used within (variables) and returned from the algorithm (outputs).
A function machine is an example of a process that takes inputs, manipulates them in a way and outputs them.
* Variables in CS are more than just numbers - they can also represent strings of characters, lists, etc.
Writing a paper that must be on a specific topic, using vocabulary words and meeting a word count.
Writing an informational text (output) can be done by using varied research materials, explicitly taught vocabulary (inputs), and prior knowledge/experience (variable).
Understanding where, when, why and how to apply algorithms and which algorithm to apply in a given context.
Interpreting a word problem to know what strategy to utilize.
When encountering an unfamiliar word, readers make decisions about whether to use context clues or morphology clues (prefix, root, suffix).
Programming is about giving instructions to computers. Programming can be done through a constantly changing set of languages. Each language is translated from human-readable code into machine code that can be executed by the computer's central processing unit, CPU.
Programming languages have different applications and require different amounts of prior knowledge. Some languages can only be run on specific hardware, while others run inside software such as a web browser.
Fractions, ratios, decimals and percentages all express proportions, but are used in different contexts and require different background knowledge to use correctly.
Within English there are different writing or speaking styles that are used depending on the situation: formal language, technical language, colloquial language, regional dialects, etc.
All programming languages have a set of commands or reserved words and grammar rules that must be followed.
Mathematical notation represents numbers, operations and relationships. The syntax for 5 plus 5 is 5+5.
Writers follow the common rules of grammar and mechanics in English to communicate easily with the reader.
|Development Environments|| |
Programmers use development environments to create applications; these environments have an editor to write code, run and show a program's output and log errors that arise.
Excel can be used as a development environment when formulas are written in cells. It will give you help writing them, run the formula for you, and then tell you if there is an error.
Word processors or other digital media display errors in the form of spelling and grammar checks.
Collaborating on code is complex because each line is part of a larger algorithm or abstraction. Clearly setting team roles, saving versions along the way, and using parallel versions are some ways to manage the complexity.
Extended problem-solving, such as that used to design a playground, requires students to combine their work in order to achieve a single goal.
Large research projects are often written in collaboration with others who may have different areas of expertise. The collaborators have to meet frequently to ensure cohesion in the content.
Computers can be used to collect, store and analyze massive amounts of data quickly and reliably. Computer programs can use data to make decisions or to automate tasks.
|Sensors and Datasets|| |
Data is collected by sensors such as video cameras or thermostats, or from other datasets such as government data, or your digital activity. Data from sensors and datasets must always be cleaned, to ensure its accuracy and usability.
Data can be collected from the class such as heights, interests, country of origin, etc.
If students are taking measurements, rulers can be seen as analogous to sensors. Sensor data needs a reasonableness check.
When researching a topic, writers collect data and information from various sources. Writers should use current research to ensure its relevance and usability.
|Data Abstraction and Storage|| |
Data is represented in computers as binary, but humans save and use data on computers as lists, databases, key-value pairs, etc.
Tables of rows and columns are an example of data representation.
Outlines, timelines, and graphic organizers can represent complex data in a structured form.
|Transformation and Visualization|| |
Computers make looking at data easier by allowing us to quickly visualize data in different ways; to break up a big problem into manageable pieces, operate on each piece independently, and then put all the pieces back together.
When (x,y) points are plotted, it becomes easier to see their relationship.
If the (x,y) points are very far apart, the scale of a graph must be adjusted.
Infographics are used to visually represent complex information and convey scale, interconnections, and progressions.
|Feedback Loops and Automation|| |
Automation is controlled by data. Some automation uses data from outside the automated system, like time. Other automation uses data on the output of the system, like temperature.
If the answer to a math problem doesn't pass the reasonableness check, the student may backpedal through their work.
Using editing and revision checklists during writing for accuracy and clarity through self-assessment, peer-assessment and teacher feedback.
Networks, like the Internet, allow computers to interface with other computers through a set of rules, or protocols, that define how computers send and receive data. Protocols and standards are created and agreed upon by groups of people.
The common thread behind issues of security, privacy and consent is trust. Whenever we connect to a network, we decide our level of trust, based on our security and privacy needs. We implement and monitor protocols to protect those needs.
When researching a topic, writers should verify the credibility and accuracy of the source and information. Researchers look for evidence of expertise of the author.
In order to send data from one device to another, the devices must be synchronized, share a syntax for the data, share a method of encryption, and have a way to report and recover from errors.
Protocols for a math assignment include requirements like due date, format, and there are consequences if not followed.
When students are reading in a book club, they can follow a protocol for discussing the book and use talking prompts to share their thinking.
If there are misconceptions or confusion, readers can refer back to the text for evidence.
|Physical Internet|| |
It is critical to understand the infrastructure of the Internet, including the hardware, companies, governing bodies, etc., that connect your computer to internet exchanges -- where massive networks cross-connect to the undersea fiber optic cables that connect the world (not satellites).
Hypertext Markup Language (HTML) is the standard way to publish information or applications on the Internet. It is a standard agreed upon by the Internet Engineering Task Force (IETF). It is not a programming language, as it doesn't use logic.
Mathematics has standard representations of different expressions: 1 x 2 is multiplication, etc.
Underlining titles, indenting paragraphs, starting sentences with capitalization, and ending them with punctuation, are examples of publishing standards in English.