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 General Logical Design Data Models Normal Forms Schema And Subschema Physical Design Access Methods Deadlock Avoidance Recovery And Restart Languages Data Description Languages DDL Data Manipulation Languages DML Database Persistent Programming Languages Query Languages Report Writers Systems Concurrency Distributed Databases Multimedia Databases Object-Oriented Databases Parallel Databases Query Processing Relational Databases Rule-Based Databases Textual Databases Transaction Processing Heterogeneous Databases Database Machines Database Administration Data Dictionary/Directory Data Warehouse And Repository Logging And Recovery Security Integrity And Protection Database Applications Data Mining Image Databases Scientific Databases Spatial Databases And Gis Statistical Databases Miscellaneous Information Storage And Retrieval General Content Analysis And Indexing Abstracting Methods Dictionaries Indexing Methods Linguistic Processing Thesauruses Information Storage File Organization Information Search And Retrieval Clustering Information Filtering Query Formulation Relevance Feedback Retrieval Models Search Process Selection Process Systems And Software Distributed Systems Information Networks Performance Evaluation efficiency and effectiveness User Profiles And Alert Services Online Information Services Commercial Services Data Sharing Web-Based Services Library Automation Large Text Archives Digital Libraries Collection Dissemination Standards Systems Issues User Issues Miscellaneous Information Systems Applications General Office Automation Desktop Publishing Groupware Spreadsheets Time Management e.g., calendars, schedules Word Processing Workflow Management Types Of Systems Decision Support e.g., MIS Logistics Communications Applications Bulletin Boards Computer Conferencing Teleconferencing And Videoconferencing Electronic Mail Information Browsers Videotex Miscellaneous Information Interfaces And Presentation e.g., HCI General Multimedia Information Systems Animations Artificial Augmented And Virtual Realities Audio Input/Output Evaluation/Methodology Video e.g., tape, disk, DVI User Interfaces Auditory Non-Speech Feedback Benchmarking Ergonomics Evaluation/Methodology Graphical User Interfaces GUI Haptic I/O Input Devices And Strategies e.g., mouse, touchscreen Interaction Styles e.g., commands, menus, forms, direct manipulation Natural Language Prototyping Screen Design e.g., text, graphics, color Standardization Style Guides Theory And Methods Training Help And Documentation User-Centered Design User Interface Management Systems UIMS Voice I/O Windowing Systems Group And Organization Interfaces Asynchronous Interaction Collaborative Computing Computer-Supported Cooperative Work Evaluation/Methodology Organizational Design Synchronous Interaction Theory And Models Web-Based Interaction Hypertext/Hypermedia Architectures Navigation Theory User Issues Sound And Music Computing Methodologies And Techniques Modeling Signal Analysis Synthesis And Processing Systems Miscellaneous Miscellaneous Computing Methodologies General Symbolic And Algebraic Manipulation General Expressions And Their Representation Representations general and polynomial Simplification Of Expressions Algorithms Algebraic Algorithms Analysis Of Algorithms Nonalgebraic Algorithms Languages And Systems Evaluation Strategies Special-Purpose Algebraic Systems Applications Miscellaneous Artificial Intelligence General Cognitive Simulation Philosophical Foundations Applications And Expert Systems Cartography Games Industrial Automation Law Medicine And Science Natural Language Interfaces Office Automation Automatic Programming Automatic Analysis Of Algorithms Program Modification Program Synthesis Program Transformation Program Verification Deduction And Theorem Proving Answer/Reason Extraction Deduction e.g., natural, rule-based Inference Engines Logic Programming Mathematical Induction Nonmonotonic Reasoning And Belief Revision Resolution Uncertainty ``Fuzzy'' And Probabilistic Reasoning Knowledge Representation Formalisms And Methods Frames And Scripts Modal Logic Predicate Logic Relation Systems Representation Languages Representations procedural and rule-based Semantic Networks Temporal Logic Programming Languages And Software Expert System Tools And Techniques Learning Analogies Concept Learning Connectionism And Neural Nets Induction Knowledge Acquisition Language Acquisition Parameter Learning Natural Language Processing Discourse Language Generation Language Models Language Parsing And Understanding Machine Translation Speech Recognition And Synthesis Text Analysis Problem Solving Control Methods And Search Backtracking Control Theory Dynamic Programming Graph And Tree Search Strategies Heuristic Methods Plan Execution Formation And Generation Scheduling Robotics Autonomous Vehicles Commercial Robots And Applications Kinematics And Dynamics Manipulators Operator Interfaces Propelling Mechanisms Sensors Workcell Organization And Planning Vision And Scene Understanding 3d/Stereo Scene Analysis Intensity Color Photometry And Thresholding Modeling And Recovery Of Physical Attributes Motion Perceptual Reasoning Representations Data Structures And Transforms Shape Texture Video Analysis Distributed Artificial Intelligence Coherence And Coordination Intelligent Agents Languages And Structures Multiagent Systems Miscellaneous Computer Graphics General Hardware Architecture Graphics Processors Input Devices Parallel Processing Raster Display Devices Graphics Systems Distributed/Network Graphics Picture/Image Generation Bitmap And Framebuffer Operations Digitizing And Scanning Display Algorithms Line And Curve Generation Viewing Algorithms Graphics Utilities Application Packages Graphics Editors Graphics Packages Paint Systems Software Support Virtual Device Interfaces Computational Geometry And Object Modeling Boundary Representations Curve Surface Solid And Object Representations Geometric Algorithms Languages And Systems Hierarchy And Geometric Transformations Modeling Packages Object Hierarchies Physically Based Modeling Splines Methodology And Techniques Ergonomics Graphics Data Structures And Data Types Interaction Techniques Languages Standards Three-Dimensional Graphics And Realism Animation Color Shading Shadowing And Texture Fractals Hidden Line/Surface Removal Radiosity Raytracing Virtual Reality Visible Line/Surface Algorithms Applications Miscellaneous Image Processing And Computer Vision General Image Displays Image Processing Software Digitization And Image Capture Camera Calibration Imaging Geometry Quantization Radiometry Reflectance Sampling Scanning Compression Coding Approximate Methods Enhancement Filtering Geometric Correction Grayscale Manipulation Registration Smoothing Restoration Kalman Filtering Reconstruction Series Expansion Methods Transform Methods Segmentation Edge And Feature Detection Pixel Classification Region Growing Partitioning Relaxation Feature Measurement Feature Representation Invariants Moments Projections Size And Shape Texture Scene Analysis Color Depth Cues Motion Object Recognition Photometry Range Data Sensor Fusion Shading Shape Stereo Surface Fitting Time-Varying Imagery Tracking Applications Image Representation Hierarchical Morphological Multidimensional Statistical Volumetric Miscellaneous Pattern Recognition General Models Fuzzy Set Geometric Neural Nets Statistical Structural Design Methodology Classifier Design And Evaluation Feature Evaluation And Selection Pattern Analysis Clustering Algorithms Similarity Measures Applications Computer Vision Signal Processing Text Processing Waveform Analysis Implementation Interactive Systems Special Architectures Miscellaneous Simulation And Modeling General Simulation Theory Model Classification Systems Theory Simulation Languages Applications Model Validation And Analysis Model Development Modeling Methodologies Simulation Output Analysis Simulation Support Systems Environments Types Of Simulation Animation Combined Continuous Discrete Event Distributed Gaming Monte Carlo Parallel Visual Miscellaneous Document And Text Processing General Document And Text Editing Document Management Version Control Document Preparation Desktop Publishing Format And Notation Hypertext/Hypermedia Index Generation Languages And Systems Markup Languages Multi/Mixed Media Photocomposition/Typesetting Scripting Languages Standards Electronic Publishing Document Capture Document Analysis Graphics Recognition And Interpretation Optical Character Recognition OCR Scanning Miscellaneous Miscellaneous Computer Applications General Administrative Data Processing Business Education Financial e.g., EFTS Government Law Manufacturing Marketing Military Physical Sciences And Engineering Aerospace Archaeology Astronomy Chemistry Earth And Atmospheric Sciences Electronics Engineering Mathematics And Statistics Physics Life And Medical Sciences Biology And Genetics Health Medical Information Systems Social And Behavioral Sciences Economics Psychology Sociology Arts And Humanities Architecture Fine Arts Language Translation Linguistics Literature Performing Arts e.g., dance, music Computer-Aided Engineering Computer-Aided Design CAD Computer-Aided Manufacturing CAM Computers In Other Systems Command And Control Consumer Products Industrial Control Military Process Control Publishing Real Time Miscellaneous Computing Milieux General The Computer Industry Markets Standards Statistics Suppliers History Of Computing Hardware People Software Systems Theory Computers And Education General Computer Uses In Education Collaborative Learning Computer-Assisted Instruction CAI Computer-Managed Instruction CMI Distance Learning Computer And Information Science Education Accreditation Computer Science Education Curriculum Information Systems Education Literacy Self-Assessment Miscellaneous Computers And Society General Public Policy Issues Abuse And Crime Involving Computers Computer-Related Health Issues Ethics Human Safety Intellectual Property Rights Privacy Regulation Transborder Data Flow Use/Abuse Of Power Social Issues Assistive Technologies For Persons With Disabilities Employment Organizational Impacts Automation Computer-Supported Collaborative Work Employment Reengineering Electronic Commerce Cybercash Digital Cash Distributed Commercial Transactions Electronic Data Interchange EDI Intellectual Property Payment Schemes Security Miscellaneous Legal Aspects Of Computing General Hardware/Software Protection Copyrights Licensing Patents Proprietary Rights Governmental Issues Censorship Regulation Taxation Miscellaneous Management Of Computing And Information Systems General Economics Project And People Management Life Cycle Management Techniques e.g., PERT/CPM Staffing Strategic Information Systems Planning Systems Analysis And Design Systems Development Training Installation Management Benchmarks Computer Selection Computing Equipment Management Performance And Usage Measurement Pricing And Resource Allocation Software Management Software Development Software Maintenance Software Process Software Selection System Management Centralization/Decentralization Management Audit Quality Assurance Security And Protection Authentication Invasive Software e.g., viruses, worms, Trojan horses Unauthorized Access e.g., hacking, phreaking Miscellaneous The Computing Profession General Occupations Organizations Testing Certification And Licensing Professional Ethics Codes Of Ethics Codes Of Good Practice Ethical Dilemmas Miscellaneous Personal Computing General Games Application Packages Data Communications Database Processing Freeware/Shareware Graphics Spreadsheets Word Processing Hardware Management/Maintenance Miscellaneous Miscellaneous