Skip to content

Beginning Concepts

Computational thinking

Computational thinking is one of the underlying patterns that guide the development of computer science curriculum.

There are four key techniques (cornerstones) to computational thinking. We have to added the concept of explainability and bias to these concepts

  1. decomposition - breaking down a complex problem or system into smaller, more manageable parts
  2. pattern recognition – looking for similarities among and within problems
  3. abstraction – focusing on the important information only, ignoring irrelevant detail
  4. algorithms - developing a step-by-step solution to the problem, or the rules to follow to solve the problem
  5. explainability - can a computer explain why it took a specific action or made a specific recommendation?
  6. bias - is the result of the suggestion made by a computer skewed in a direction that makes it unfair to a group of people?

Beginning Concepts

Although we have many different coding groups that are appropriate for beginners, there are several computer science concepts that we encourage everyone to adopt in your coding group curriculum.

Events - What events start a program? What events change the behavior of a program?

Loops - How do repeat a set of tasks?

Variables - How do we reference a common value and make our programs easier to change?

Conditionals - How do we change program behavior based on rules. How do we use comparsions to do this?

Functions - How do we group code sections together and give them names?

Function Parameters - How do we pass values to functions. Why would we want to check the types of an input?

Data types - What is the difference between a string of characters, an integer, a floating point number or a datetime? How do we use the right datatype and type checking to keep our programs reliable?

Data Structures - How do you create and manage lists, dictionaries, arrays and complex data structures?

Sensors - how do we gather input from the real world?

Output - how do we display text or graphic output

Feedback - how do we prompt users for input and respond to changes in output

Debugging - how do we find problems in our code?

Drawing - a great way to learn other concepts where you get quick visual feedback. An on ramp to charts and graphs.

Recursion - what happens when a function calls itself? How can you draw trees that have many smaller branches?

Commenting - how do we put hints in our code for others to better understand our code?

Scople - Global vs. local variables and when should you use one over the other?

Advanced concepts

Here are a few topics that you can explore with your move advanced students.

Files - How do we read data in from files and write data out to files?

Regular Expressions - How do we use a short set of special characters to look for patterns.

Integrated Development Environments - How do we setup our desktop so that we can be productive debugging our programs? What is syntax highlighting? What is autocomplete?

Logging - How do we keep a record of what has happened in our programs?

**