---
title: Introduction to Computer Science
description: This subject introduces the fundamental concepts of computing and programming. You will understand computational thinking, basic software development, algorithm design, and how computers process information, establishing a foundation for further technical study in the field.
category: programming-tech
subcategory: computer-science
difficulty: beginner, intermediate, advanced
url: /subject/introduction-to-computer-science
---

# Introduction to Computer Science

This subject introduces the fundamental concepts of computing and programming. You will understand computational thinking, basic software development, algorithm design, and how computers process information, establishing a foundation for further technical study in the field.

## Available Resources

2 Books • 4 Courses • 4 Websites

## Courses

### 1. Structure and Interpretation of Computer Programs (MIT 6.001)

**Author:** Eric Grimson, Peter Szolovits, Trevor Darrell

The original course behind SICP: procedural and data abstraction, higher-order procedures, recursion, state and mutation, object-oriented design and building interpreters in Scheme. 20 lecture videos, notes, programming projects and exams with solutions teach learners to analyze and construct computational systems.

**Difficulty:** Beginner | **Price:** Free

**Link:** https://ocw.mit.edu/courses/6-001-structure-and-interpretation-of-computer-programs-spring-2005/

**Tags:** sicp, scheme, functional-programming, abstraction, interpreters

### 2. CS61A: Structure and Interpretation of Computer Programs

Learn fundamental programming concepts with CS61A, an intro-level CS course from Pamela Fox et al. Explore structure & interpretation of programs!

**Difficulty:** Beginner | **Price:** Free

**Link:** https://cs61a.org/

**Tags:** cs61a, python, recursion, abstraction, interpreters

### 3. Introduction to Computer Science and Programming Using Python (MITx 6.00.1x)

**Author:** Eric Grimson, John Guttag, Ana Bell

Self-paced introduction to programming and computational thinking in Python: branching, iteration, functions, recursion, objects, testing and debugging, and algorithmic complexity with simple search and sort. Video lectures and auto-graded exercises and problem sets teach learners to write small programs that solve problems.

**Difficulty:** Beginner | **Price:** Free

**Link:** https://www.edx.org/learn/computer-science/massachusetts-institute-of-technology-introduction-to-computer-science-and-programming-using-python

**Tags:** python, intro-programming, computational-thinking, recursion, algorithmic-complexity

### 4. CS50's Introduction to Computer Science

An introduction to the intellectual enterprises of computer science and the art of programming.

**Difficulty:** Beginner | **Language:** English | **Price:** Free

**Link:** https://www.edx.org/learn/computer-science/harvard-university-cs50-s-introduction-to-computer-science

**Tags:** courses, technology-computer-science, programming-fundamentals

## Websites

### 1. CS Unplugged

Free collection of classroom activities from the University of Canterbury that teach computer science ideas such as binary numbers, sorting, searching, error detection and algorithms through games and puzzles without computers. Builds intuition for core concepts before any programming.

**Difficulty:** Beginner | **Price:** Free

**Link:** https://www.csunplugged.org/en/

**Tags:** computational-thinking, cs-education, binary-numbers, algorithms, unplugged-activities

### 2. Teach Yourself Computer Science

Oz Nova and Myles Byrne's opinionated syllabus for self-taught engineers, naming one best book and video course for each of nine core subjects. Gives a defensible study order and rough hour budgets per topic.

**Difficulty:** Beginner | **Price:** Free

**Link:** https://teachyourselfcs.com/

**Tags:** cs-curriculum, self-study, algorithms, operating-systems, distributed-systems

### 3. NandGame

A browser puzzle that starts with a single NAND gate and has you compose latches, adders, an ALU, memory, and finally a working CPU with its own assembler and instruction set.

**Difficulty:** Beginner | **Price:** Free

**Link:** https://nandgame.com/

**Tags:** digital-logic, logic-gates, cpu-design, alu, interactive

### 4. cs50.harvard.edu

Official site for Harvard's CS50, the introductory computer science course. It provides lecture videos, slides, problem sets, labs, and projects, plus course materials, sections, and additional resources to learn CS.

**Difficulty:** Intermediate | **Language:** English | **Price:** Free

**Link:** https://cs50.harvard.edu/x/

**Tags:** websites, technology-computer-science, computer-sciences

## Youtubes

### 1. Computerphile

YouTube channel of short explainer videos on computer science, featuring academics mainly from the University of Nottingham. Covers algorithms, cryptography, security, data compression, machine learning and programming languages, giving viewers intuitive grounding in core ideas before formal study.

**Difficulty:** Beginner | **Language:** English | **Price:** Free

**Link:** https://youtube.com/@computerphile

**Tags:** computer-science, algorithms, cryptography, computer-security, programming-languages

## Books

### 1. Computer Science: An Overview

**Author:** J. Glenn Brookshear

Language-independent survey of computer science, 5th edition (1996), spanning data storage and machine architecture, operating systems and networks, algorithms, programming languages, software engineering, data structures, databases, artificial intelligence and theory of computation. Gives beginners a broad map of the discipline.

**Difficulty:** Intermediate | **Language:** English | **Price:** Paid

**Link:** https://www.amazon.com/dp/0805346325?tag=edmonddante07-20

**Tags:** books, technology-computer-science, computer-sciences

### 2. Structure and Interpretation of Computer Programs

**Author:** Harold Abelson, Gerald Jay Sussman, Julie Sussman

MIT's classic introductory programming text, using Scheme to teach procedural and data abstraction, higher-order functions, modularity and state, and metalinguistic abstraction through building interpreters and a register-machine compiler. Readers learn to design programs as layered abstractions.

**Difficulty:** Intermediate | **Language:** English | **Price:** Paid

**Link:** https://www.amazon.com/dp/0262692201?tag=edmonddante07-20

**Tags:** books, technology-computer-science, computer-sciences

---

*This content is part of Dantes.io - Your Treasure Map to Knowledge*

*Curated by humans at Dantes.io. Personal study use welcome; republishing this curation requires permission (team@dantes.io).*

View this page online: https://dantes.io/subject/introduction-to-computer-science