Zamil's CSE Directory

introduction to computer science

The Map of Computer Science

An overview of the major fields inside Computer Science and how they connect.

#intro#computer-science#overview
intro, computer-science, overview guides

Computer Science is a very large field. New students often hear terms like programming, databases, networking, or operating systems without understanding how they all fit together.

Before diving into any specific topic, it helps to first see the map of the field.

This chapter provides a high-level overview of the major areas in Computer Science and how they relate to each other. Think of it as a tour of the landscape before exploring each region in detail.

The Computer Science Tree

At a high level, Computer Science can be visualized like this:

graph TD
  CS[Computer Science]

  CS --> P[Programming]
  CS --> DSA[Algorithms & Data Structures]
  CS --> SYS[Computer Systems]
  CS --> NET[Networking]
  CS --> DATA[Data Systems]
  CS --> SE[Software Engineering]
  CS --> SEC[Security]
  CS --> AI[Artificial Intelligence]
  CS --> SPEC[Specialized Fields]

  SYS --> ARCH[Computer Architecture]
  SYS --> OS[Operating Systems]
  SYS --> DIST[Distributed Systems]

  DATA --> DB[Databases]
  DATA --> DE[Data Engineering]

Each of these branches represents an important part of the field. Some focus on how computers work internally, while others focus on building large software systems.

In the following sections we will briefly explore each one.


Programming

Programming is the process of writing instructions that tell a computer what to do.

These instructions are written in programming languages such as:

  • C
  • Python
  • JavaScript
  • Java
  • Go

Programs can range from simple scripts to extremely large systems like operating systems or cloud platforms.

Programming is often the entry point into Computer Science because it allows you to directly interact with computers and build software.

→ Continue to the Programming Guide

→ Related resources: Programming Languages & Development Resources


Algorithms & Data Structures

Algorithms are step-by-step methods for solving problems.

Data structures are ways of organizing data so that programs can process it efficiently.

For example:

  • A search engine must quickly find relevant results among billions of pages.
  • A social network must manage millions of relationships between users.
  • A navigation app must compute the fastest route through a road network.

Efficient algorithms and data structures make these systems possible.

This area of study focuses on performance, efficiency, and problem-solving techniques.

→ Continue to the Data Structures & Algorithms Guide

→ Related resources: Algorithms & Data Structures Resources


Computer Systems

Computer Systems study how computers actually run programs.

While programming focuses on writing instructions, systems research focuses on how those instructions are executed by the machine.

This includes:

  • how CPUs process instructions
  • how memory is managed
  • how multiple programs run simultaneously
  • how large systems coordinate many machines

Major subfields include:

SubfieldFocus
Computer ArchitectureHow CPUs and hardware components are designed
Operating SystemsSoftware that manages hardware and runs programs
Distributed SystemsSystems that run across many machines

Understanding systems helps explain what happens behind the scenes when software runs.

Computer Systems Guide (coming soon)

→ Related resources: Computer Systems Resources


Networking

Networking focuses on how computers communicate with each other.

The internet is essentially a global network connecting billions of devices.

Networking covers topics such as:

  • IP addresses
  • routing
  • communication protocols
  • data transmission across networks

Whenever you:

  • load a website
  • send a message
  • stream a video

networking technologies are working in the background.

Modern software systems rely heavily on reliable and efficient networking.

→ Continue to the Networking Guide

→ Related resources: Networking Resources


Data Systems

Modern software applications generate and process enormous amounts of data.

Data systems focus on how that data is stored, retrieved, and processed efficiently.

Two important areas are:

AreaDescription
DatabasesSystems that store structured data and allow efficient queries
Data EngineeringSystems that process and move large datasets

Examples of real-world data systems include:

  • banking systems
  • social media platforms
  • analytics pipelines
  • recommendation engines

Without robust data systems, modern applications would not be possible.

Database Guide (coming soon)

→ Related resources: Databases & Data Systems Resources


Software Engineering

Software engineering focuses on how large software systems are designed and built.

Writing code is only part of the process. Engineers must also consider:

  • system design
  • maintainability
  • testing
  • collaboration
  • deployment

Large projects often involve teams of many developers working together for years.

Software engineering practices help ensure that these systems remain reliable, maintainable, and scalable.

Software Engineering Guide (coming soon)

→ Related resources: Software Engineering Resources


Security

Security focuses on protecting computer systems and data from threats.

These threats may include:

  • unauthorized access
  • data breaches
  • malicious software
  • network attacks

Security professionals design systems that protect sensitive information and remain resilient against attacks.

Security is relevant in nearly every field of computing, from web applications to operating systems.

Security Guide (coming soon)


Artificial Intelligence

Artificial Intelligence focuses on building systems that can perform tasks that typically require human intelligence.

Examples include:

  • language translation
  • image recognition
  • recommendation systems
  • autonomous vehicles

Modern AI systems often rely on large datasets and powerful computing infrastructure.

AI combines ideas from algorithms, statistics, data engineering, and large-scale computing.

Artificial Intelligence Guide (coming soon)


Specialized Fields

Beyond the core areas above, Computer Science also includes many specialized domains.

Some examples include:

FieldDescription
GraphicsRendering images, animation, and visual simulations
Embedded SystemsSoftware running on specialized hardware devices
CompilersTools that translate programming languages into machine instructions
Cloud ComputingLarge-scale infrastructure that powers modern internet services

These fields often combine concepts from several areas of computer science.


How These Fields Connect

Although these areas are presented separately, real-world systems combine many of them together.

For example, a typical web application might involve:

graph TD
  A[User Browser]
  A --> B[Web Server]
  B --> C[Application Logic]
  C --> D[Database]
  B --> E[Internet Infrastructure]

Behind the scenes this system depends on:

  • Programming to implement the application
  • Networking to communicate across the internet
  • Databases to store information
  • Operating Systems to run the software
  • Security to protect user data

Understanding the connections between these fields is one of the keys to mastering Computer Science.


Where to Start

If you are completely new to Computer Science, a good learning path is:

graph TD
  A[Intro Guide]
  A --> B[Programming]
  B --> C[Data Structures]
  C --> D[Databases]
  C --> E[Networking]
  D --> F[Operating Systems]
  E --> F

This sequence introduces concepts gradually while building a strong foundation.

As you progress through the guides on this site, this map will help you understand where each topic fits in the bigger picture.

In the next chapter, we will begin exploring what computers actually do and how software interacts with hardware.