Concepts

Chain of Command, Command of Language

How do computers predict what text you want to write next? Here's how to create predictive stories.

On Sorting

Have you ever put books in alphabetical order? What do you think the best method of alphabetizing would be?

P v NP: A Modern Mystery

Can we measure the time and steps required for things to happen?

What is Clean Code?

While you can't use soap and water on your code, you can keep your code as sparkly clean as any dish or silverware.

Cookies!

Most people love cookies. But these cookies are the kind that make the internet possible.

State

State is an important concept in computer science as well as our everyday lives.

Garbage Collection

Computers collect garbage the way humans do. Here's how they manage memory space.

What is Design?

Design is about solving problems, from donuts to race cars, how we eat to what to wear in cold weather.

What are Keywords in Programming Languages?

Everyone knows the difference between saying, “Let’s eat, grandma!” and “Let’s eat grandma!” Computers don't.

What is a Network?

Networks are a mostly hidden but critical part of the internet.

Public Key Cryptography

This cryptography method is based on the fact some tasks are relatively easy to do, but extremely difficult to undo.

Software Libraries

Programmers use libraries but instead of books they create and share code, often for free, to help solve common problems.

PRNG

Another mysterious four-letter acronym that helps secure information online.

How to Pick a Programming Language

When you pick a programming language to learn first, it helps to figure out what software you want to create.

2FA

This odd acronym offers security protection beyond your password. Here are a few examples of how 2FA works.

Fisher-Yates Shuffle

What sounds like a country western dance actually is an efficient way to sort large sets of data randomly.

Dogfooding

Eating dog food doesn't sound like much fun but it's an important part of creating software.

Computational Thinking

The ability to identify patterns, decompose large problems into small parts, develop algorithms to solve problems, and generalize to find solutions.

Graph Theory

The dots and lines used in graph theory can solve interesting and complicated problems.

The Cloud

If clouds are not digital, what is cloud computing?

What is VR? AR?

Virtual and augmented reality replace or add computing to our real world experience.

Discrete Math: Propositional Logic and Logic Circuits

Discrete math is an important computer science skill that introduces you to logic and logic circuits.

Invention Literacy

A thoughtful essay to inspire the start of a new school year.

Forks

Forks are used in software development to describe how projects and software work.

The Ant and The Grasshopper

A computational fairytale updated for the computer age, a grasshopper learns algorithms and planning ahead.

REST

REST is a standard way for software applications to work with each other to do things.

What is the Blockchain?

Blockchain software technology works as a distributed ledger to record what was done and when.

ASCII

ASCII is a set of letters, numbers, and characters computers use to communicate accurately.

Big-O Notation and the Wizards War

If you were a wizard, wouldn't you want to know how to scale your spells for maximum effect?

The Tragedy of the Commons

How we manage limited resources and share costs is an important question far beyond software development.