1.4
ACM CS Classification and hopefully others will be added soon
Classification
ACM CS Classification
General Literature
General
Biographies/Autobiographies
Conference Proceedings
General Literary Works
e.g., fiction, plays
Introductory And Survey
Reference
e.g., dictionaries, encyclopedias, glossaries
Miscellaneous
Hardware
General
Control Structures And Microprogramming
General
Control Design Styles
Control Structure Performance Analysis And Design Aids
Microprogram Design Aids
Languages And Compilers
Optimization
Microcode Applications
Instruction Set Interpretation
Miscellaneous
Arithmetic And Logic Structures
General
Design Styles
Parallel
Pipeline
High-Speed Arithmetic
Algorithms
Cost/Performance
Miscellaneous
Memory Structures
General
Semiconductor Memories
Dram
Dynamic memory
Rom
Read-only memory
Sram
Static memory
Design Styles
Associative Memories
Cache Memories
Mass Storage
e.g., magnetic, optical, RAID
Primary Memory
Shared Memory
Virtual Memory
Miscellaneous
Input/Output And Data Communications
General
Data Communications Devices
Input/Output Devices
Channels And Controllers
Data Terminals And Printers
Image Display
Voice
Interconnections
Subsystems
Asynchronous/Synchronous Operation
Fiber Optics
Interfaces
Parallel I/O
Topology
e.g., bus, point-to-point
Miscellaneous
Register-Transfer-Level Implementation
General
Design
Arithmetic And Logic Units
Control Design
Data-Path Design
Memory Design
Styles
e.g., parallel, pipeline, special-purpose
Design Aids
Automatic Synthesis
Hardware Description Languages
Optimization
Simulation
Verification
Miscellaneous
Logic Design
General
Design Styles
Cellular Arrays And Automata
Combinational Logic
Logic Arrays
Parallel Circuits
Sequential Circuits
Design Aids
Automatic Synthesis
Hardware Description Languages
Optimization
Simulation
Switching Theory
Verification
Miscellaneous
Integrated Circuits
General
Types And Design Styles
Advanced Technologies
Algorithms Implemented In Hardware
Gate Arrays
Input/Output Circuits
Memory Technologies
Microprocessors And Microcomputers
Vlsi
very large scale integration
Design Aids
Graphics
Layout
Placement And Routing
Simulation
Verification
Miscellaneous
Performance And Reliability
General
Reliability Testing And Fault-Tolerance
Performance Analysis And Design Aids
Miscellaneous
Miscellaneous
Design Management
Computer Systems Organization
General
Hardware/Software Interfaces
Instruction Set Design
e.g., RISC, CISC, VLIW
Modeling Of Computer Architecture
System Architectures
Systems Specification Methodology
Processor Architectures
General
Single Data Stream Architectures
Risc/Cisc Vliw Architectures
Multiple Data Stream Architectures
Multiprocessors
Array And Vector Processors
Associative Processors
Connection Machines
Interconnection Architectures
e.g., common bus, multiport memory, crossbar switch
Mimd
Multiple-instruction-stream, multiple-data-stream processors
Simd
Single-instruction-stream, multiple-data-stream processors
Other Architecture Styles
Adaptable Architectures
Analog Computers
Cellular Architecture
e.g., mobile
Data-Flow Architectures
Heterogeneous Hybrid Systems
Neural Nets
Pipeline Processors
Parallel Architectures
Distributed Architectures
Mobile Processors
Miscellaneous
Computer-Communication Networks
General
Data Communications
Osi
Open Systems Interconnection reference model
Security And Protection
e.g., firewalls
Network Architecture And Design
Atm
Asynchronous Transfer Mode
Circuit-Switching Networks
Distributed Networks
Frame Relay Networks
Isdn
Integrated Services Digital Network
Network Communications
Network Topology
Packet-Switching Networks
Store And Forward Networks
Wireless Communication
Network Protocols
Applications
SMTP, FTP, etc.
Protocol Architecture
OSI model
Protocol Verification
Routing Protocols
Network Operations
Network Management
Network Monitoring
Public Networks
Distributed Systems
Client/Server
Distributed Applications
Distributed Databases
Network Operating Systems
Local And Wide-Area Networks
Access Schemes
Buses
Ethernet
e.g., CSMA/CD
High-Speed
e.g., FDDI, fiber channel, ATM
Internet
e.g., TCP/IP
Token Rings
Internetworking
Routers
Standards
e.g., TCP/IP
Miscellaneous
Special-Purpose And Application-Based Systems
Microprocessor/Microcomputer Applications
Process Control Systems
Real-Time And Embedded Systems
Signal Processing Systems
Smartcards
Performance Of Systems
Design Studies
Fault Tolerance
Measurement Techniques
Modeling Techniques
Performance Attributes
Reliability Availability And Serviceability
Computer System Implementation
General
Large And Medium Computers
Mainframe
Super Computers
very large
Microcomputers
Microprocessors
Personal Computers
Portable Devices
e.g., laptops, personal digital assistants
Workstations
Vlsi Systems
Servers
Miscellaneous
Miscellaneous
Software
General
Programming Techniques
E
General
Applicative Functional Programming
Automatic Programming
Concurrent Programming
Distributed Programming
Parallel Programming
Sequential Programming
Object-Oriented Programming
Logic Programming
Visual Programming
Miscellaneous
Software Engineering
General
Protection Mechanisms
Standards
Requirements/Specifications
Elicitation Methods
e.g., rapid prototyping, interviews, JAD
Languages
Methodologies
e.g., object-oriented, structured
Tools
Design Tools And Techniques
Computer-Aided Software Engineering
CASE
Decision Tables
Evolutionary Prototyping
Flow Charts
Modules And Interfaces
Object-Oriented Design Methods
Petri Nets
Software Libraries
State Diagrams
User Interfaces
Coding Tools And Techniques
Object-Oriented Programming
Pretty Printers
Program Editors
Standards
Structured Programming
Top-Down Programming
Software/Program Verification
Assertion Checkers
Class Invariants
Correctness Proofs
Formal Methods
Model Checking
Programming By Contract
Reliability
Statistical Methods
Validation
Testing And Debugging
Code Inspections And Walk-Throughs
Debugging Aids
Diagnostics
Distributed Debugging
Error Handling And Recovery
Monitors
Symbolic Execution
Testing Tools
e.g., data generators, coverage testing
Tracing
Programming Environments
Graphical Environments
Integrated Environments
Interactive Environments
Programmer Workbench
Distribution Maintenance And Enhancement
Documentation
Portability
Restructuring Reverse Engineering And Reengineering
Version Control
Metrics
Complexity Measures
Performance Measures
Process Metrics
Product Metrics
Management
Cost Estimation
Life Cycle
Productivity
Programming Teams
Software Configuration Management
Software Process Models
e.g., CMM, ISO, PSP
Software Quality Assurance
SQA
Time Estimation
Software Architectures
Data Abstraction
Domain-Specific Architectures
Information Hiding
Languages
e.g., description, interconnection, definition
Patterns
e.g., client/server, pipeline, blackboard
Interoperability
Data Mapping
Distributed Objects
Interface Definition Languages
Reusable Software
Domain Engineering
Reusable Libraries
Reuse Models
Miscellaneous
Programming Languages
General
Standards
Formal Definitions And Theory
Semantics
Syntax
Language Classifications
Applicative Functional Languages
Concurrent Distributed And Parallel Languages
Constraint And Logic Languages
Data-Flow Languages
Design Languages
Extensible Languages
Macro And Assembly Languages
Multiparadigm Languages
Object-Oriented Languages
Specialized Application Languages
Very High-Level Languages
Language Constructs And Features
Abstract Data Types
Classes And Objects
Concurrent Programming Structures
Constraints
Control Structures
Coroutines
Data Types And Structures
Dynamic Storage Management
Frameworks
Inheritance
Input/Output
Modules Packages
Patterns
Polymorphism
Procedures Functions And Subroutines
Recursion
Processors
Code Generation
Compilers
Debuggers
Incremental Compilers
Interpreters
Memory Management
garbage collection
Optimization
Parsing
Preprocessors
Retargetable Compilers
Run-Time Environments
Translator Writing Systems And Compiler Generators
Miscellaneous
Operating Systems
C
General
Process Management
Concurrency
Deadlocks
Multiprocessing/Multiprogramming/Multitasking
Mutual Exclusion
Scheduling
Synchronization
Threads
Storage Management
Allocation/Deallocation Strategies
Distributed Memories
Garbage Collection
Main Memory
Secondary Storage
Storage Hierarchies
Virtual Memory
File Systems Management
Access Methods
Directory Structures
Distributed File Systems
File Organization
Communications Management
Buffering
Input/Output
Message Sending
Network Communication
Reliability
Backup Procedures
Checkpoint/Restart
Fault-Tolerance
Verification
Security And Protection
Access Controls
Authentication
Cryptographic Controls
Information Flow Controls
Invasive Software
e.g., viruses, worms, Trojan horses
Organization And Design
Distributed Systems
Interactive Systems
Real-Time Systems And Embedded Systems
Performance
Measurements
Modeling And Prediction
Monitors
Operational Analysis
Queueing Theory
Simulation
Stochastic Analysis
Systems Programs And Utilities
Command And Control Languages
Window Managers
Miscellaneous
Miscellaneous
Data
General
Data Structures
Arrays
Distributed Data Structures
Graphs And Networks
Lists Stacks And Queues
Records
Trees
Data Storage Representations
Hash-Table Representations
Linked Representations
Object Representation
Data Encryption
Code Breaking
Public Key Cryptosystems
Standards
e.g., DES, PGP, RSA
Coding And Information Theory
Data Compaction And Compression
Error Control Codes
Formal Models Of Communication
Files
Backup/Recovery
Organization/Structure
Sorting/Searching
Miscellaneous
Theory Of Computation
General
Computation By Abstract Devices
General
Models Of Computation
Automata
e.g., finite, push-down, resource-bounded
Bounded-Action Devices
e.g., Turing machines, random access machines
Computability Theory
Relations Between Models
Self-Modifying Machines
e.g., neural networks
Unbounded-Action Devices
e.g., cellular automata, circuits, networks of machines
Modes Of Computation
Alternation And Nondeterminism
Interactive And Reactive Computation
Online Computation
Parallelism And Concurrency
Probabilistic Computation
Relativized Computation
Complexity Measures And Classes
Complexity Hierarchies
Reducibility And Completeness
Relations Among Complexity Classes
Relations Among Complexity Measures
Miscellaneous
Analysis Of Algorithms And Problem Complexity
General
Numerical Algorithms And Problems
Computation Of Transforms
e.g., fast Fourier transform
Computations In Finite Fields
Computations On Matrices
Computations On Polynomials
Number-Theoretic Computations
e.g., factoring, primality testing
Nonnumerical Algorithms And Problems
Complexity Of Proof Procedures
Computations On Discrete Structures
Geometrical Problems And Computations
Pattern Matching
Routing And Layout
Sequencing And Scheduling
Sorting And Searching
Tradeoffs Between Complexity Measures
Miscellaneous
Logics And Meanings Of Programs
General
Specifying And Verifying And Reasoning About Programs
Assertions
Invariants
Logics Of Programs
Mechanical Verification
Pre- And Post-Conditions
Specification Techniques
Semantics Of Programming Languages
Algebraic Approaches To Semantics
Denotational Semantics
Operational Semantics
Partial Evaluation
Process Models
Program Analysis
Studies Of Program Constructs
Control Primitives
Functional Constructs
Object-Oriented Constructs
Program And Recursion Schemes
Type Structure
Miscellaneous
Mathematical Logic And Formal Languages
General
Mathematical Logic
Computability Theory
Computational Logic
Lambda Calculus And Related Systems
Logic And Constraint Programming
Mechanical Theorem Proving
Modal Logic
Model Theory
Proof Theory
Recursive Function Theory
Set Theory
Temporal Logic
Grammars And Other Rewriting Systems
Decision Problems
Grammar Types
e.g., context-free, context-sensitive
Parallel Rewriting Systems
e.g., developmental systems, L-systems
Parsing
Thue Systems
Formal Languages
Algebraic Language Theory
Classes Defined By Grammars Or Automata
e.g., context-free languages, regular sets, recursive sets
Decision Problems
Operations On Languages
Miscellaneous
Miscellaneous
Mathematics Of Computing
General
Numerical Analysis
General
Computer Arithmetic
Conditioning
and ill-conditioning
Error Analysis
Interval Arithmetic
Multiple Precision Arithmetic
Numerical Algorithms
Parallel Algorithms
Stability
and instability
Interpolation
Extrapolation
Interpolation Formulas
Smoothing
Spline And Piecewise Polynomial Interpolation
Approximation
Approximation Of Surfaces And Contours
Chebyshev Approximation And Theory
Elementary Function Approximation
Fast Fourier Transforms
FFT
Least Squares Approximation
Linear Approximation
Minimax Approximation And Algorithms
Nonlinear Approximation
Rational Approximation
Special Function Approximations
Spline And Piecewise Polynomial Approximation
Wavelets And Fractals
Numerical Linear Algebra
Conditioning
Eigenvalues And Eigenvectors
direct and iterative methods
Error Analysis
Linear Systems
direct and iterative methods
Matrix Inversion
Singular Value Decomposition
Sparse Structured And Very Large Systems
direct and iterative methods
Quadrature And Numerical Differentiation
Adaptive And Iterative Quadrature
Automatic Differentiation
Error Analysis
Finite Difference Methods
Gaussian Quadrature
Iterative Methods
Multidimensional Multiple Quadrature
Roots Of Nonlinear Equations
Continuation Homotopy Methods
Convergence
Error Analysis
Iterative Methods
Polynomials Methods For
Systems Of Equations
Optimization
Constrained Optimization
Convex Programming
Global Optimization
Gradient Methods
Integer Programming
Least Squares Methods
Linear Programming
Nonlinear Programming
Quadratic Programming Methods
Simulated Annealing
Stochastic Programming
Unconstrained Optimization
Ordinary Differential Equations
Boundary Value Problems
Chaotic Systems
Convergence And Stability
Differential-Algebraic Equations
Error Analysis
Finite Difference Methods
Initial Value Problems
Multistep And Multivalue Methods
One-Step Methods
single step methods
Stiff Equations
Partial Differential Equations
Domain Decomposition Methods
Elliptic Equations
Finite Difference Methods
Finite Element Methods
Finite Volume Methods
Hyperbolic Equations
Inverse Problems
Iterative Solution Techniques
Method Of Lines
Multigrid And Multilevel Methods
Parabolic Equations
Spectral Methods
Integral Equations
Delay Equations
Fredholm Equations
Integro-Differential Equations
Volterra Equations
Applications
Miscellaneous
Discrete Mathematics
General
Combinatorics
Combinatorial Algorithms
Counting Problems
Generating Functions
Permutations And Combinations
Recurrences And Difference Equations
Graph Theory
Graph Algorithms
Graph Labeling
Hypergraphs
Network Problems
Path And Circuit Problems
Trees
Applications
Miscellaneous
Probability And Statistics
Contingency Table Analysis
Correlation And Regression Analysis
Distribution Functions
Experimental Design
Markov Processes
Multivariate Statistics
Nonparametric Statistics
Probabilistic Algorithms
including Monte Carlo
Queueing Theory
Random Number Generation
Reliability And Life Testing
Renewal Theory
Robust Regression
Statistical Computing
Statistical Software
Stochastic Processes
Survival Analysis
Time Series Analysis
Mathematical Software
Algorithm Design And Analysis
Certification And Testing
Documentation
Efficiency
Parallel And Vector Implementations
Reliability And Robustness
User Interfaces
Miscellaneous
Information Systems
General
Models And Principles
General
Systems And Information Theory
General Systems Theory
Information Theory
Value Of Information
User/Machine Systems
Human Factors
Human Information Processing
Software Psychology
Miscellaneous
Database Management