Computer Science

Anyone interested in working with computers will benefit from understanding computer science, the fundamentals of how computers work. Whether you're interested in a career in computer science or just want to understand them better, you can find learning resources here to match your goals. There are more ways to learn computer science than ever before - choose from educational games, online classes, videos, apps, books, or whatever fits your budget or learning style.

What is Computer Science?

Computer science is the study of computers and computational systems. It focuses on the design, implementation, and evaluation of software and hardware systems. It also investigates the theory and foundations of computer science.

CS is a relatively new field, and is often considered a branch of engineering. However, computer science deals with the theory of computation, algorithms, and software, whereas engineering focuses on the design and implementation of computing systems.

Computer science is a wide field that covers many different topics. These include programming languages, software engineering, computer architecture, artificial intelligence, databases, networking, and parallel computing.

Computer Science Resources

Coding Projects in Scratch

Coding Projects in Scratch

A beautifully illustrated Scratch programming guide with step-by-step coding projects for ages 8-14.

Girls Who Code: Learn to Code and Change the World

Girls Who Code: Learn to Code and Change the World

An inspiring guide combining coding instruction with stories of women in tech, for middle and high school students.

Lauren Ipsum: A Story about Computer Science and Other Improbable Things

Lauren Ipsum: A Story about Computer Science and Other Improbable Things

A children's adventure novel that teaches computer science concepts through story — no coding required.

Automate the Boring Stuff with Python, 2nd Edition

Automate the Boring Stuff with Python, 2nd Edition

A practical Python programming guide teaching automation of real-world tasks, for high school and adult beginners.

Coding for Kids: Scratch

Coding for Kids: Scratch

A step-by-step Scratch programming guide for kids ages 8-12 with 10 creative coding projects.

Python for Kids: A Playful Introduction to Programming

Python for Kids: A Playful Introduction to Programming

A fun, illustrated guide to Python programming for kids ages 10 and up, with games and puzzles.

JavaScript for Kids: A Playful Introduction to Programming

JavaScript for Kids: A Playful Introduction to Programming

A fun, illustrated guide to JavaScript programming for kids ages 10+, building games in the browser.

Hello World! Computer Programming for Kids and Other Beginners, 3rd Edition

Hello World! Computer Programming for Kids and Other Beginners, 3rd Edition

A father-son guide to Python programming for kids 12+ and complete beginners, now in its 3rd edition.

CircuitMess STEM Kits for Teens and Adults

CircuitMess STEM Kits for Teens & Adults

Code: The Hidden Language of Computer Hardware and Software

Code: The Hidden Language of Computer Hardware and Software

What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ing...

CircuitMess Chatter 2.0 DIY encrypted communicator kit

CircuitMess Chatter 2.0 DIY Encrypted Communicators

Build a matched pair of long-range radio messengers that send encrypted texts with no Wi-Fi or cell service, and learn how wireless communication actually works.

CircuitMess Bit 2.0 DIY retro game console kit

CircuitMess Bit 2.0 DIY Retro Game Console Kit

A solder-free kit that builds a working handheld retro game console, then teaches Python coding by letting students write their own games for it.