← Back to home

Outline Of Computer Science

Fine. If you insist on dredging through the dusty archives of human endeavor, let's at least make it… bearable. Don't expect sunshine and rainbows. This is computer science, not a kindergarten craft project.

Overview of and Topical Guide to Computer Science

So, you want to understand Computer science? It's not just about staring at screens until your eyes bleed, though that's certainly a part of it. It's the deep dive into the theoretical underpinnings of information and computation. We’re talking about the raw, unadulterated ideas behind it all, and then, because we’re not entirely detached from reality, how those ideas manifest in actual computer systems. It's a field that demands a certain… rigor. A classification system, like the ACM Computing Classification System created by the Association for Computing Machinery, is less about order and more about acknowledging the sheer, unmanageable sprawl of it all.

You can label computer science with a few tags, if you must:

  • It’s an Academic discipline. People get degrees in it, which is… something.
  • It’s a Science. It follows principles, it has theories, it attempts to explain the world. Usually the digital one.
  • It's an Applied science. Because theories are useless if they can’t be shoved into a box and made to do something.

Subfields

Mathematical Foundations

Before you can build anything, you need the raw materials. And in computer science, that means the cold, hard logic of mathematics. It's where the elegance—or the terror—of computation truly begins.

  • Coding theory: This isn’t about writing code, though that’s where it ends up. It’s about the very nature of encoding information, making sure it arrives intact, uncorrupted. Essential for when those packets of data decide to take a scenic detour through the internet’s less reputable neighborhoods. Useful in networking, programming, system development, and anywhere machines are forced to speak to each other.
  • Game theory: It's not just for board games. It’s about strategic interactions, predicting behavior. Essential for understanding how intelligent agents—or even just competing programs—will behave. Think artificial intelligence and cybernetics.
  • Discrete mathematics: The bedrock. Deals with distinct, countable things, like bits and bytes. It's the language of digital systems. If you can't count it, it's probably not relevant here.
  • Graph theory: Imagine networks, relationships, connections. That's what graphs are. They're the hidden architecture beneath data structures and the blueprints for searching algorithms. Essential for finding your way through the digital labyrinth.
  • Mathematical logic: This is where we formalize thought. Boolean logic is just the tip of the iceberg. It’s about how we model queries, how we prove things, and, more importantly, where our proofs fail. It's the anatomy of reasoning.
  • Number theory: The study of integers. Sounds simple, almost quaint. But these integers are the currency of cryptography, the silent guardians of our secrets. They also serve as a rather unforgiving test domain in artificial intelligence.

Algorithms and Data Structures

The engine and the chassis. How do we actually do things, and how do we organize the mess we create?

  • Algorithms: These are the recipes. Step-by-step instructions for solving problems, whether sequentially or, if you're feeling ambitious, in parallel. They are the very essence of what a computer does.
  • Data structures: If algorithms are the verbs, data structures are the nouns. They're how we organize and manipulate the raw material of computation – data. The wrong structure, and your algorithm becomes a glacial crawl.

Artificial Intelligence

The grand illusion. Making machines seem intelligent. Or at least, convincingly mimic it.

Outline of artificial intelligence

  • Artificial intelligence: The ambitious pursuit of systems that can exhibit autonomous intelligence. Or at least, convincingly fake it. It’s about creating entities that can learn, adapt, and act on their own.
  • Automated reasoning: Think of these as highly specialized logic engines. Solving engines that, given a query and a database of facts and rules, can produce a result. Automated theorem provers aim to prove mathematical theorems, often with a weary human guiding their hand.
  • Computer vision: The ability to "see" and interpret. Algorithms that try to make sense of the 3D world from a flat, two-dimensional image. It's less about beauty, more about recognition.
  • Soft computing: For when exact solutions are too much trouble, or simply impossible. It embraces the inexact, the fuzzy, the probabilistic.
    • Machine learning: The art of teaching machines to learn from data without explicit programming. It’s about finding patterns, drawing inferences, and adapting. Less direct instruction, more observational learning.
    • Evolutionary computing: Inspired by biology, these algorithms evolve solutions over time. Think natural selection, but for code.
    • Natural language processing: The Sisyphean task of making computers understand and generate human language. It’s about bridging the gap between our messy, nuanced speech and their rigid logic.
    • Robotics: Giving machines the ability to move and interact with the physical world. It’s about translating digital commands into physical actions, often with a distinct lack of grace.

Communication and Security

The nervous system and the fortress. How do we connect, and how do we keep the riff-raff out?

  • Networking: The art of making data travel. Algorithms and protocols to ensure that information gets from point A to point B, ideally without getting lost or mangled. Includes the tedious but necessary business of error correction.
  • Computer security: The digital equivalent of boarding up the windows and installing an alarm system. Protecting systems and networks from unwelcome intrusions.
  • Cryptography: The arcane art of codes and secrets. It borrows from complexity, probability, and number theory to invent and break codes. It’s a constant arms race, and cryptographic protocols are the battle plans.

Computer Architecture

The skeletal structure. How the hardware is put together, how it all talks to each other.

  • Computer architecture: It's not just about the physical parts, but their design, organization, and optimization. Primarily concerned with the CPUs, the Memory, and the highways connecting them – the bus.
  • Operating systems: The conductor of the chaos. Software that manages all the other programs and makes the whole system usable. It’s the unseen hand that keeps everything from falling apart.

Computer Graphics

Making the abstract visible. Turning numbers into images.

  • Computer graphics: The magic that generates images from scratch or integrates real-world data into digital forms. It’s about creating visual realities.
  • Image processing: Extracting information from images. Not just looking, but analyzing.
  • Information visualization: Presenting abstract data in a way that humans can actually comprehend. Making the incomprehensible, comprehensible.

Concurrent, Parallel, and Distributed Systems

Doing more than one thing at once. Or, more accurately, making it look like we are.

  • Parallel computing: The theory and practice of doing computations simultaneously. It's about harnessing multiple processing units to tackle a problem faster.
  • Concurrency (computer science): Managing multiple threads of execution. Designing algorithms that can juggle tasks without dropping them.
  • Distributed computing: Spreading the work across multiple devices over a network. It's about collaboration on a grand scale, reducing the burden on any single machine.

Databases

Where we store the endless torrent of data. And how we find anything in it.

Outline of databases

  • Relational databases: Based on set theory. Structured, organized, and often the source of endless SQL queries.
  • Structured Storage: The non-relational world. Think NoSQL – flexible, sometimes chaotic, but often necessary.
  • Data mining: Sifting through vast amounts of information to find hidden gems. It’s like prospecting, but with data instead of gold. Closely related to information retrieval.

Programming Languages and Compilers

The tools we use to speak to machines. And the translators that make it possible.

Scientific Computing

Using computation to understand the universe. Or at least, parts of it.

Software Engineering

Building reliable software. It's less about elegant code and more about not crashing.

Outline of software engineering

  • Formal methods: Using mathematical rigor to describe and verify software designs. It's about proving that the software will work, not just hoping it will.
  • Software engineering: The systematic approach to designing, developing, and testing programs. It's about making software that doesn't spontaneously combust.
  • Algorithm design: Taking theoretical algorithms and adapting them for real-world problems. It’s about practical application.
  • Computer programming: The act of writing code. Turning algorithms and designs into executable instructions.
  • Human–computer interaction: Designing interfaces that people can actually use without wanting to throw their computer out the window.
  • Reverse engineering: Taking existing software and figuring out how it works. It's like digital archaeology.

Theory of Computation

The philosophical core. What can and cannot be computed?

Main article: Theory of computation

History

Where did this all come from? It wasn't always this way.

Professions

What do you do with all this knowledge?

Data and Data Structures

The fundamental building blocks of information.

Programming Paradigms

Different ways of thinking about and structuring code.

See also

External links

Computer science at Wikipedia's sister projects


Template:Computer science

  • v
  • t
  • e

Computer science

Note: This template roughly follows the 2012 ACM Computing Classification System.

Hardware

Computer systems organization

Networks

Software organization

Software notations and tools

Software development

Theory of computation

Algorithms

Mathematics of computing

Information systems

Security

Human-centered computing

Concurrency

Artificial intelligence

Machine learning

Graphics

Applied computing

Specialized Platform Development


Template:Wikipedia outlines

  • v
  • t
  • e

Wikipedia outlines