Computer Science

Algorithms, data structures, theory, and programming concepts.

A study reference, not a substitute for primary sources. Updated 2026-09-15.

Data Structures

Arrays and Linked Lists

Stacks and Queues

Trees

Heaps

Hash Tables

Graphs

Other Key Structures

Structure Access Search Insert Delete Space
Array O(1) O(n) O(n) O(n) O(n)
Linked list O(n) O(n) O(1) O(1)* O(n)
Hash table (avg) O(1) O(1) O(1) O(n)
BST (balanced) O(log n) O(log n) O(log n) O(log n) O(n)
Min/Max heap O(n) O(n) O(log n) O(log n) O(n)

*O(1) deletion given a pointer to the node.

Sorting and Searching

Sorting Algorithms

Algorithm Best Average Worst Space Stable?
Bubble sort O(n) O(n²) O(n²) O(1) Yes
Selection sort O(n²) O(n²) O(n²) O(1) No
Insertion sort O(n) O(n²) O(n²) O(1) Yes
Merge sort O(n log n) O(n log n) O(n log n) O(n) Yes
Quicksort O(n log n) O(n log n) O(n²) O(log n) No
Heap sort O(n log n) O(n log n) O(n log n) O(1) No
Counting sort O(n+k) O(n+k) O(n+k) O(k) Yes
Radix sort O(nk) O(nk) O(nk) O(n+k) Yes

Searching

String Algorithms

Algorithms

Recursion and Divide-and-Conquer

Dynamic Programming

Graph Algorithms

Complexity Theory

Big-O Notation

Complexity Classes

Computability and Automata

Programming Paradigms and Languages

Key Languages (Brief)

Software Engineering

Software engineering applies systematic methods to building, operating, and changing software under constraints of cost, schedule, quality, safety, and security. The IEEE Computer Society’s SWEBOK Guide V4.0 (2024) spans requirements, architecture, design, construction, testing, operations, maintenance, configuration management, management, process, models and methods, quality, security, professional practice, and economics.1

Computer Graphics

Computer Architecture

Computer architecture studies the interface between hardware and software and the organization of processors, memory, and input/output to meet goals for performance, energy, cost, reliability, and security. Historical machines appear in Computing History; operating-system memory management appears under Operating Systems.12

Operating Systems

Databases

Cryptography Fundamentals

Networking Basics

Human-Computer Interaction

Human-computer interaction (HCI) studies how people use, experience, and are affected by interactive systems, drawing on computer science, psychology, design, and the social sciences. The history of graphical interfaces is covered in Computing History.21

Key Figures and Turing Award Context

  1. IEEE Computer Society, SWEBOK Guide V4.0; ACM and IEEE Computer Society, CS2023 curricular guidelines

  2. Brian Randell, “Fifty Years of Software Engineering, or The View from Garmisch”

  3. csed.acm.org; ieeecs-media.computer.org 2

  4. Winston W. Royce, “Managing the Development of Large Software Systems,” IEEE WESCON, 1970

  5. Manifesto for Agile Software Development; History of the Agile Manifesto

  6. D. L. Parnas, “On the Criteria To Be Used in Decomposing Systems into Modules,” Communications of the ACM, 1972

  7. Ward Cunningham, “The WyCash Portfolio Management System,” OOPSLA ’92 experience report

  8. Frederick P. Brooks Jr., “No Silver Bullet: Essence and Accidents of Software Engineering,” UNC technical report TR86-020

  9. ESA, Ariane 501 Inquiry Board report; Inquiry Board report text

  10. IEEE Computer Society, Software Engineering Code of Ethics and Professional Practice

  11. cs.cornell.edu; cs.cornell.edu; graphics.cornell.edu; cs.cornell.edu 2 3

  12. ACM and IEEE Computer Society, CS2023 curricular guidelines, Architecture and Organization; MIT OpenCourseWare, 6.004 Computation Structures 2 3 4 5 6

  13. ocw.mit.edu; csed.acm.org 2

  14. John L. Hennessy and David A. Patterson, “A New Golden Age for Computer Architecture,” Communications of the ACM, 2019 2 3 4

  15. Meltdown and Spectre disclosure site

  16. M. J. Flynn, “Very High-Speed Computing Systems,” Proceedings of the IEEE, 1966

  17. RISC-V International, about RISC-V

  18. cs.princeton.edu

  19. nist.gov

  20. eprint.iacr.org; nist.gov

  21. ACM and IEEE Computer Society, CS2023 curricular guidelines, Human-Computer Interaction; CS2023 Human-Computer Interaction knowledge area 2 3 4

  22. csed.acm.org; w3.org

  23. Nielsen Norman Group, “Usability 101” 2

  24. P. M. Fitts, “The Information Capacity of the Human Motor System in Controlling the Amplitude of Movement,” 1954

  25. Interaction Design Foundation, affordances

  26. Nielsen Norman Group, “10 Usability Heuristics for User Interface Design”

  27. W3C, Web Content Accessibility Guidelines (WCAG) 2.2

  28. U.S. Federal Trade Commission, staff report on dark patterns, September 2022

  29. Doug Engelbart Institute, the 1968 demonstration

  30. cs.ox.ac.uk; cs.ox.ac.uk; cs.ox.ac.uk

  31. microsoft.com; cs.cmu.edu