---
title: Computer Science
description: The discipline of computation: architecture, algorithms, databases, and AI foundations.
category: programming-tech
url: /subcategory/programming-tech/computer-science
---

# Computer Science

The discipline of computation: architecture, algorithms, databases, and AI foundations.

## Available Subjects

### Algorithms

Algorithms are step-by-step procedures used to solve computational problems and process data. Learners will understand sorting, searching, graph traversal, and how to analyze time and space complexity using Big O notation to write efficient code.

**Difficulty:** Beginner, Intermediate, Advanced

**Resources:** 1 videos, 6 books, 4 courses, 5 websites

[Learn Algorithms](/subject/algorithms)

### Compilers & Interpreters

Compilers translate source code into runnable programs. You will learn lexing, parsing, type checking, intermediate representations, optimisation and code generation by building a language from scratch.

**Difficulty:** Beginner, Intermediate, Advanced

**Resources:** 3 books, 3 courses, 1 websites

[Learn Compilers & Interpreters](/subject/compilers-and-interpreters)

### Computer Architecture

Computer architecture explores the design and organization of computer systems, focusing on instruction sets, processors, memory hierarchies, and I/O interfaces. Learners will understand how hardware components interact to execute software instructions efficiently.

**Difficulty:** Beginner, Intermediate, Advanced

**Resources:** 4 books, 2 courses, 5 websites

[Learn Computer Architecture](/subject/computer-architecture)

### Computer Graphics

Computer graphics renders 2D and 3D images in real time or offline. You will learn the rasterisation pipeline, shaders, linear algebra for graphics, lighting models and ray tracing, using OpenGL, WebGL or Vulkan.

**Difficulty:** Beginner, Intermediate, Advanced

**Resources:** 4 books, 2 websites

[Learn Computer Graphics](/subject/computer-graphics)

### Data Structures

Data structures are specialized formats for organizing, processing, and storing data in a computer. Learners will understand arrays, linked lists, stacks, queues, trees, and graphs, and how to select the optimal structure for efficient data retrieval.

**Difficulty:** Beginner, Intermediate, Advanced

**Resources:** 1 videos, 3 books, 1 courses, 3 websites

[Learn Data Structures](/subject/data-structures)

### Data Structures & Algorithms

This topic combines data organization methods with step-by-step computational procedures. You will understand how to select appropriate data structures, design efficient algorithms, and analyze their time and space complexity to solve complex programming problems effectively.

**Difficulty:** Beginner, Intermediate, Advanced

**Resources:** 3 books, 1 websites

[Learn Data Structures & Algorithms](/subject/data-structures-and-algorithms)

### Databases

Databases are structured systems for storing, managing, and retrieving data. You will understand relational and non-relational database models, write SQL queries, design schemas, and manage data integrity and transactions for modern software applications.

**Difficulty:** Beginner, Intermediate, Advanced

**Resources:** 2 books, 1 courses, 5 websites

[Learn Databases](/subject/databases)

### Functional Programming & Haskell

Functional programming builds software from pure functions and immutable data; Haskell is its purest mainstream language. You will learn types, higher-order functions, monads and how FP ideas transfer to any language.

**Difficulty:** Beginner, Intermediate, Advanced

**Resources:** 3 books, 2 courses, 2 websites

[Learn Functional Programming & Haskell](/subject/haskell-functional-programming)

### GPU Programming & CUDA

GPU programming runs computations across thousands of parallel cores. You will learn the CUDA programming model, the GPU memory hierarchy, writing kernels, parallel patterns such as reduction and convolution, and how GPUs accelerate machine learning and scientific computing.

**Difficulty:** Beginner, Intermediate, Advanced

**Resources:** 1 books, 4 websites

[Learn GPU Programming & CUDA](/subject/gpu-programming-and-cuda)

### Generative Art & Creative Coding

Creative coding makes art with algorithms. You will learn p5.js and Processing, randomness and noise, generative systems, shaders and how to exhibit or sell generative work.

**Difficulty:** Beginner, Intermediate, Advanced

**Resources:** 2 books, 1 courses, 3 websites

[Learn Generative Art & Creative Coding](/subject/generative-art-and-creative-coding)

### Introduction to CS

This introductory field covers the core principles of computing, programming, and systems. You will understand how to write simple programs, analyze basic algorithms, and grasp how hardware and software interact to solve real-world computational problems.

**Difficulty:** Beginner, Intermediate, Advanced

**Resources:** 2 books, 2 courses, 2 websites

[Learn Introduction to CS](/subject/introduction-to-cs)

### 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.

**Difficulty:** Beginner, Intermediate, Advanced

**Resources:** 2 books, 1 courses, 1 websites

[Learn Introduction to Computer Science](/subject/introduction-to-computer-science)

### Machine Learning

This discipline focuses on developing algorithms that allow computers to learn from and make predictions on data without explicit programming. Learners will understand how to apply supervised, unsupervised, and evaluation techniques to solve predictive problems.

**Difficulty:** Beginner, Intermediate, Advanced

**Resources:** 1 books, 6 courses, 6 websites

[Learn Machine Learning](/subject/machine-learning)

### Networks & Security

This field covers how computers communicate and how to protect those communications. You will understand network protocols, routing, and architecture, alongside security principles like encryption, firewalls, and defense mechanisms against network-based threats.

**Difficulty:** Beginner, Intermediate, Advanced

**Resources:** 2 books, 4 courses, 1 websites

[Learn Networks & Security](/subject/networks-and-security)

### Operating Systems

Operating systems manage computer hardware and provide services for execution of software. You will understand process scheduling, memory management, file systems, and concurrency, enabling you to write software that interacts efficiently with the underlying system.

**Difficulty:** Beginner, Intermediate, Advanced

**Resources:** 3 books, 3 courses, 2 websites

[Learn Operating Systems](/subject/operating-systems)

### Programming Fundamentals

This topic covers the essential building blocks of writing computer code. You will understand variables, control flow, loops, functions, and basic data types, enabling you to write simple programs and transition to any specific programming language.

**Difficulty:** Beginner, Intermediate, Advanced

**Resources:** 1 videos, 4 books, 3 websites

[Learn Programming Fundamentals](/subject/programming-fundamentals)

### Software Engineering

Software engineering applies systematic engineering principles to software development. You will understand software lifecycles, design patterns, testing methodologies, version control, and project management practices required to build reliable, scalable, and maintainable software systems.

**Difficulty:** Beginner, Intermediate, Advanced

**Resources:** 1 videos, 2 books, 1 courses, 2 websites

[Learn Software Engineering](/subject/software-engineering)

### Theory of Computation

This mathematical branch of computer science explores what can be computed and how efficiently. You will understand automata theory, formal languages, computability, and complexity classes, helping you grasp the fundamental limits of computers and algorithms.

**Difficulty:** Beginner, Intermediate, Advanced

**Resources:** 3 books, 1 courses, 4 websites

[Learn Theory of Computation](/subject/theory-of-computation)

---

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

View this page online: https://dantes.io/subcategory/programming-tech/computer-science