# Computer science

Learn select topics from computer science - algorithms (how we solve common problems in computer science and measure the efficiency of our solutions), cryptography (how we protect secret information), and information theory (how we encode and compress information).
Community Questions
Did you know? You can learn how to program on Khan Academy and create your own programs. Go to our computer programming subject to get started.

# Journey into cryptography

How have humans protected their secret messages through history? What has changed today?
All content in “Journey into cryptography”

## Ancient cryptography

Explore how we have hidden secret messages through history.

## Ciphers

Assess your understanding of the code breaking presented in the ancient cryptography lesson. This series of articles and exercises will prepare you for the upcoming challenge!

## Cryptography challenge 101

Ready to try your hand at real-world code breaking? This adventure contains a beginner, intermediate and super-advanced level. See how far you can go!

## Modern cryptography

A new problem emerges in the 20th century. What happens if Alice and Bob can never meet to share a key in the first place?

## Modular arithmetic

This is a system of arithmetic for integers. These lessons provide a foundation for the mathematics presented in the Modern Cryptography tutorial.

## Primality test

Why do primes make some problems fundamentally hard? To find out we need to explore primality tests in more detail.

## Randomized algorithms

Would access to coin flips speed up a primality test? How would this work?