THE ACM COMPUTING CLASSIFICATION SYSTEM Copyright 1995 by Association for Computing Machinery, Inc. (ACM). Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage, the copyright notice, the title of publication and its date appear, and notice is given that copying is by permission of ACM, Inc. To copy otherwise, to republish, to post on servers, to implement in search and retrieval software, or to redistribute to lists, requires prior specific permission and/or a fee. Request permission to republish from: Publications Dept., ACM, Inc. Fax: +1 (212) 869-0481 or E-mail: permissions@acm.org. ______ A. General Literature A.0 GENERAL Biographies/autobiographies Conference proceedings General literary works (e.g., fiction, plays) A.1 INTRODUCTORY AND SURVEY A.2 REFERENCE (e.g., dictionaries, encyclopedias, glossaries) A.m MISCELLANEOUS B. Hardware B.0 GENERAL B.1 CONTROL STRUCTURES AND MICROPROGRAMMING (D.3.2) B.1.0 General B.1.1 Control Design Styles Hardwired control Microprogrammed logic arrays Writable control store B.1.2 Control Structure Performance Analysis and Design Aids Automatic synthesis Formal models Simulation B.1.3 Control Structure Reliability, Testing, and Fault-Tolerance Diagnostics Error-checking Redundant checking Test generation B.1.4 Microprogram Design Aids (D.2.2, D.2.4, D.3.2, D.3.4) Firmware engineering Languages and compilers Machine-independent microcode generation Optimization Verification B.1.5 Microcode Applications Direct data manipulation Firmware support of operating systems/instruction sets Instruction set interpretation Peripheral control Special-purpose B.1.m Miscellaneous B.2 ARITHMETIC AND LOGIC STRUCTURES B.2.0 General B.2.1 Design Styles (C.1.1, C.1.2) Calculator Parallel Pipeline B.2.2 Performance Analysis and Design Aids Simulation Verification Worst-case analysis B.2.3 Reliability, Testing, and Fault-Tolerance Diagnostics Error-checking Redundant design Test generation B.2.m Miscellaneous B.3 MEMORY STRUCTURES B.3.0 General B.3.1 Unassigned B.3.2 Design Styles (D.4.2) Associative memories Cache memories Interleaved memories Mass storage (e.g., magnetic, optical) Primary memory Sequential-access memory Shared memory Virtual memory B.3.3 Performance Analysis and Design Aids (C.4) Formal models Simulation Worst-case analysis B.3.4 Reliability, Testing, and Fault-Tolerance Diagnostics Error-checking Redundant design Test generation B.3.m Miscellaneous B.4 INPUT/OUTPUT AND DATA COMMUNICATIONS B.4.0 General B.4.1 Data Communications Devices Processors Receivers (e.g., voice, data, image) Transmitters B.4.2 Input/Output Devices Channels and controllers Data terminals and printers Image display Voice B.4.3 Interconnections (subsystems) Asynchronous/synchronous operation Fiber optics Interfaces Physical structures (e.g., backplanes, cables, chip carriers) Topology (e.g., bus, point-to-point) B.4.4 Performance Analysis and Design Aids Formal models Simulation Verification Worst-case analysis B.4.5 Reliability, Testing, and Fault-Tolerance Built-in tests Diagnostics Error-checking Hardware reliability Redundant design Test generation B.4.m Miscellaneous B.5 REGISTER-TRANSFER-LEVEL IMPLEMENTATION B.5.0 General B.5.1 Design Arithmetic and logic units Control design Data-path design Memory design Styles (e.g., parallel, pipelined, special-purpose) B.5.2 Design Aids Automatic synthesis Hardware description languages Optimization Simulation Verification B.5.3 Reliability and Testing Built-in tests Error-checking Redundant design Test generation Testability B.5.m Miscellaneous B.6 LOGIC DESIGN B.6.0 General B.6.1 Design Styles Cellular arrays and automata Combinational logic Logic arrays Memory control and access Memory used as logic Parallel circuits Sequential circuits B.6.2 Reliability and Testing Built-in tests Error-checking Redundant design Test generation Testability B.6.3 Design Aids Automatic synthesis Hardware description languages Optimization Simulation Switching theory Verification B.6.m Miscellaneous B.7 INTEGRATED CIRCUITS B.7.0 General B.7.1 Types and Design Styles Advanced technologies Algorithms implemented in hardware Gate arrays Input/Output circuits Memory technologies Microprocessors and microcomputers Standard cells VLSI (very large scale integration) B.7.2 Design Aids Graphics Layout Placement and routing Simulation Verification B.7.3 Reliability and Testing Built-in tests Error-checking Redundant design Test generation Testability B.7.m Miscellaneous B.m MISCELLANEOUS Design management C. Computer Systems Organization C.0 GENERAL Hardware/software interfaces Instruction set design (e.g., RISC, CISC) System architectures Systems specification methodology C.1 PROCESSOR ARCHITECTURES C.1.0 General C.1.1 Single Data Stream Architectures Multiple-instruction-stream, single-data-stream processors (MISD) Pipeline processors Single-instruction-stream, single-data-stream processors (SISD) Von Neumann architectures C.1.2 Multiple Data Stream Architectures (Multiprocessors) Array and vector processors Associative processors Connection machines Interconnection architectures (e.g., common bus, multiport memory, crossbar switch) Multiple-instruction-stream, multiple-data-stream processors (MIMD) Parallel processors Pipeline processors Single-instruction-stream, multiple-data-stream processors (SIMD) C.1.3 Other Architecture Styles Adaptable architectures Capability architectures Cellular architecture Data-flow architectures High-level language architectures Neural nets Stack-oriented processors C.1.m Miscellaneous Analog computers Hybrid systems C.2 COMPUTER-COMMUNICATION NETWORKS C.2.0 General Data communications Open System Interconnection reference model (OSI) Security and protection C.2.1 Network Architecture and Design Centralized networks Circuit switching networks Distributed networks ISDN (Integrated Services Digital Network) Network communications Network topology Packet networks Store and forward networks C.2.2 Network Protocols Protocol architecture Protocol verification C.2.3 Network Operations Network management Network monitoring Public networks C.2.4 Distributed Systems Distributed applications Distributed databases Network operating systems C.2.5 Local Networks Access schemes Buses Rings C.2.m Miscellaneous C.3 SPECIAL-PURPOSE AND APPLICATION-BASED SYSTEMS (J.7) Microprocessor/microcomputer applications Process control systems Real-time systems Signal processing systems C.4 PERFORMANCE OF SYSTEMS Design studies Measurement techniques Modeling techniques Performance attributes Reliability, availability, and serviceability C.5 COMPUTER SYSTEM IMPLEMENTATION C.5.0 General C.5.1 Large and Medium ("Mainframe") Computers Super (very large) computers C.5.2 Minicomputers C.5.3 Microcomputers Microprocessors Personal computers Workstations C.5.4 VLSI Systems C.5.m Miscellaneous C.m MISCELLANEOUS D. Software D.0 GENERAL D.1 PROGRAMMING TECHNIQUES (E) D.1.0 General D.1.1 Applicative (Functional) Programming D.1.2 Automatic Programming (I.2.2) D.1.3 Concurrent Programming Distributed programming Parallel programming D.1.4 Sequential Programming D.1.5 Object-oriented Programming D.1.6 Logic Programming D.1.7 Visual Programming D.1.m Miscellaneous D.2 SOFTWARE ENGINEERING (K.6.3) D.2.0 General (K.5.1) Protection mechanisms Standards D.2.1 Requirements/Specifications (D.3.1) Languages Methodologies Tools D.2.2 Tools and Techniques Computer-aided software engineering (CASE) Decision tables Flow charts Modules and interfaces Petri nets Programmer workbench Software libraries Structured programming Top-down programming User interfaces D.2.3 Coding Pretty printers Program editors Reentrant code Standards D.2.4 Program Verification (F.3.1) Assertion checkers Correctness proofs Reliability Validation D.2.5 Testing and Debugging Code inspections and walk-throughs Debugging aids Diagnostics Dumps Error handling and recovery Monitors Symbolic execution Test data generators Tracing D.2.6 Programming Environments Interactive D.2.7 Distribution and Maintenance Corrections Documentation Enhancement Extensibility Portability Restructuring Version control D.2.8 Metrics (D.4.8) Complexity measures Performance measures Software science D.2.9 Management (K.6.3, K.6.4) Copyrights Cost estimation Life cycle Productivity Programming teams Software configuration management Software quality assurance (SQA) Time estimation D.2.10 Design Methodologies Representation D.2.m Miscellaneous Rapid prototyping Reusable software D.3 PROGRAMMING LANGUAGES D.3.0 General Standards D.3.1 Formal Definitions and Theory (D.2.1, F.3.1-2, F.4.2-3) Semantics Syntax D.3.2 Language Classifications Applicative languages Concurrent, distributed, and parallel languages Data-flow languages Design languages Extensible languages Macro and assembly languages Microprogramming languages Nondeterministic languages Nonprocedural languages Object-oriented languages Specialized application languages Very high-level languages D.3.3 Language Constructs and Features (E.2) Abstract data types Concurrent programming structures Control structures Coroutines Data types and structures Dynamic storage management Input/Output Modules, packages Procedures, functions, and subroutines Recursion D.3.4 Processors Code generation Compilers Interpreters Optimization Parsing Preprocessors Run-time environments Translator writing systems and compiler generators D.3.m Miscellaneous D.4 OPERATING SYSTEMS (C) D.4.0 General D.4.1 Process Management Concurrency Deadlocks Multiprocessing/multiprogramming Mutual exclusion Scheduling Synchronization D.4.2 Storage Management Allocation/deallocation strategies Distributed memories Main memory Secondary storage Segmentation Storage hierarchies Swapping Virtual memory D.4.3 File Systems Management (E.5) Access methods Directory structures Distributed file systems File organization Maintenance D.4.4 Communications Management (C.2) Buffering Input/Output Message sending Network communication Terminal management D.4.5 Reliability Backup procedures Checkpoint/restart Fault-tolerance Verification D.4.6 Security and Protection (K.6.5) Access controls Authentication Cryptographic controls Information flow controls Invasive software (e.g., viruses, worms, Trojan horses) Security kernels Verification D.4.7 Organization and Design Batch processing systems Distributed systems Hierarchical design Interactive systems Real-time systems and embedded systems D.4.8 Performance (C.4, D.2.8, I.6) Measurements Modeling and prediction Monitors Operational analysis Queueing theory Simulation Stochastic analysis D.4.9 Systems Programs and Utilities Command and control languages Linkers Loaders Window managers D.4.m Miscellaneous D.m MISCELLANEOUS Software psychology E. Data E.0 GENERAL E.1 DATA STRUCTURES Arrays Graphs Lists Tables Trees E.2 DATA STORAGE REPRESENTATIONS Composite structures Contiguous representations Hash-table representations Linked representations Primitive data items E.3 DATA ENCRYPTION Data encryption standard (DES) Public key cryptosystems E.4 CODING AND INFORMATION THEORY (H.1.1) Data compaction and compression Error control codes Formal models of communication Nonsecret encoding schemes E.5 FILES (D.4.3, F.2.2, H.2) Backup/recovery Optimization Organization/structure Sorting/searching E.m MISCELLANEOUS F. Theory of Computation F.0 GENERAL F.1 COMPUTATION BY ABSTRACT DEVICES F.1.0 General F.1.1 Models of Computation (F.4.1) Automata (e.g., finite, push-down, resource-bounded) Bounded-action devices (e.g., Turing machines, random access machines) Computability theory Relations among models Self-modifying machines (e.g., neural networks) Unbounded-action devices (e.g., cellular automata, circuits, networks of machines) F.1.2 Modes of Computation Alternation and nondetermination Interactive computation Parallelism and concurrency Probabilistic computation Relations among modes Relativized computation F.1.3 Complexity Classes (F.2) Complexity hierarchies Machine-independent complexity Reducibility and completeness Relations among complexity classes Relations among complexity measures F.1.m Miscellaneous F.2 ANALYSIS OF ALGORITHMS AND PROBLEM COMPLEXITY (B.6-7, F.1.3) F.2.0 General F.2.1 Numerical Algorithms and Problems (G.1, G.4, I.1) 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) F.2.2 Nonnumerical Algorithms and Problems (E.2-5, G.2, H.2-3) Complexity of proof procedures Computations on discrete structures Geometrical problems and computations Pattern matching Routing and layout Sequencing and scheduling Sorting and searching F.2.3 Tradeoffs among Complexity Measures (F.1.3) F.2.m Miscellaneous F.3 LOGICS AND MEANINGS OF PROGRAMS F.3.0 General F.3.1 Specifying and Verifying and Reasoning about Programs (D.2.1, D.2.4, D.3.1, E.1) Assertions Invariants Logics of programs Mechanical verification Pre- and post-conditions Specification techniques F.3.2 Semantics of Programming Languages (D.3.1) Algebraic approaches to semantics Denotational semantics Operational semantics F.3.3 Studies of Program Constructs (D.3.2-3) Control primitives Functional constructs Program and recursion schemes Type structure F.3.m Miscellaneous F.4 MATHEMATICAL LOGIC AND FORMAL LANGUAGES F.4.0 General F.4.1 Mathematical Logic (F.1.1, I.2.2-3) Computability theory Computational logic Lambda calculus and related systems Logic programming Mechanical theorem proving Model theory Proof theory Recursive function theory F.4.2 Grammars and Other Rewriting Systems (D.3.1) Decision problems Grammar types (e.g., context-free, context-sensitive) Parallel rewriting systems (e.g., development systems, L-systems) Parsing Thue systems F.4.3 Formal Languages (D.3.1) Algebraic language theory Classes defined by grammars or automata (e.g., context-free languages, regular sets, recursive sets) Classes defined by resource-bounded automata Decision problems Operations on languages F.4.m Miscellaneous F.m MISCELLANEOUS G. Mathematics of Computing G.0 GENERAL G.1 NUMERICAL ANALYSIS G.1.0 General Computer arithmetic Condition (and ill-condition) Error analysis Numerical algorithms Parallel algorithms Stability (and instability) G.1.1 Interpolation Difference formulas Extrapolation Interpolation formulas Smoothing Spline and piecewise polynomial interpolation G.1.2 Approximation Chebyshev approximation and theory Elementary function approximation Least squares approximation Linear approximation Minimax approximation and algorithms Nonlinear approximation Rational approximation Spline and piecewise polynomial approximation G.1.3 Numerical Linear Algebra Conditioning Determinants Eigenvalues Error analysis Linear systems (direct and iterative methods) Matrix inversion Pseudoinverses Sparse and very large systems G.1.4 Quadrature and Numerical Differentiation Adaptive quadrature Equal interval integration Error analysis Finite difference methods Gaussian quadrature Iterative methods Multiple quadrature G.1.5 Roots of Nonlinear Equations Convergence Error analysis Iterative methods Polynomials, methods for Systems of equations G.1.6 Optimization Constrained optimization Gradient methods Integer programming Least squares methods Linear programming Nonlinear programming G.1.7 Ordinary Differential Equations Boundary value problems Convergence and stability Error analysis Initial value problems Multistep methods Single step methods Stiff equations G.1.8 Partial Differential Equations Difference methods Elliptic equations Finite element methods Hyperbolic equations Method of lines Parabolic equations G.1.9 Integral Equations Fredholm equations Integro-differential equations Volterra equations G.1.m Miscellaneous G.2 DISCRETE MATHEMATICS G.2.0 General G.2.1 Combinatorics (F.2.2) Combinatorial algorithms Counting problems Generating functions Permutations and combinations Recurrences and difference equations G.2.2 Graph Theory (F.2.2) Graph algorithms Network problems Path and circuit problems Trees G.2.m Miscellaneous G.3 PROBABILITY AND STATISTICS Probabilistic algorithms (including Monte Carlo) Random number generation Statistical computing Statistical software G.4 MATHEMATICAL SOFTWARE Algorithm analysis Certification and testing Efficiency Portability Reliability and robustness Verification G.m MISCELLANEOUS Queueing theory H. Information Systems H.0 GENERAL H.1 MODELS AND PRINCIPLES H.1.0 General H.1.1 Systems and Information Theory (E.4) General systems theory Information theory Value of information H.1.2 User/Machine Systems Human factors Human information processing H.1.m Miscellaneous H.2 DATABASE MANAGEMENT (E.5) H.2.0 General Security, integrity, and protection H.2.1 Logical Design Data models Normal forms Schema and subschema H.2.2 Physical Design Access methods Deadlock avoidance Recovery and restart H.2.3 Languages (D.3.2) Data description languages (DDL) Data manipulation languages (DML) Query languages Report writers H.2.4 Systems Concurrency Distributed systems Query processing Transaction processing H.2.5 Heterogeneous Databases Data translation Program translation H.2.6 Database Machines H.2.7 Database Administration Data dictionary/directory Logging and recovery H.2.8 Database Applications H.2.m Miscellaneous H.3 INFORMATION STORAGE AND RETRIEVAL H.3.0 General H.3.1 Content Analysis and Indexing Abstracting methods Dictionaries Indexing methods Linguistic processing Thesauruses H.3.2 Information Storage File organization Record classification H.3.3 Information Search and Retrieval Clustering Query formulation Retrieval models Search process Selection process H.3.4 Systems and Software Current awareness systems (selective dissemination of information--SDI) Information networks Question-answering (fact retrieval) systems H.3.5 Online Information Services Data bank sharing H.3.6 Library Automation Large text archives H.3.m Miscellaneous H.4 INFORMATION SYSTEMS APPLICATIONS H.4.0 General H.4.1 Office Automation (I.7) Equipment Spreadsheets Time management (e.g., calendars, schedules) Word processing H.4.2 Types of Systems Decision support (e.g., MIS) Logistics H.4.3 Communications Applications Bulletin boards Computer conferencing and teleconferencing Electronic mail Videotex H.4.m Miscellaneous H.5 INFORMATION INTERFACES AND PRESENTATION (I.7) H.5.0 General H.5.1 Multimedia Information Systems Animations Artificial realities Audio input/output Evaluation/methodology Hypertext navigation and maps Video (e.g., tape, disk, DVI) H.5.2 User Interfaces (D.2.2, H.1.2, I.3.6) Ergonomics Evaluation/methodology Input devices and strategies (e.g., mouse, touchscreen) Interaction styles (e.g., commands, menus, forms, direct manipulation) Screen design (e.g., text, graphics, color) Theory and methods Training, help, and documentation User interface management systems (UIMS) Windowing systems H.5.3 Group and Organization Interfaces Asynchronous interaction Evaluation/methodology Organizational design Synchronous interaction Theory and models H.m MISCELLANEOUS I. Computing Methodologies I.0 GENERAL I.1 ALGEBRAIC MANIPULATION I.1.0 General I.1.1 Expressions and Their Representation (E.1-2) Representations (general and polynomial) Simplification of expressions I.1.2 Algorithms (F.2.1-2) Algebraic algorithms Analysis of algorithms Nonalgebraic algorithms I.1.3 Languages and Systems (D.3.2-3, F.2.2) Evaluation strategies Nonprocedural languages Special-purpose algebraic systems Special-purpose hardware Substitution mechanisms I.1.4 Applications I.1.m Miscellaneous I.2 ARTIFICIAL INTELLIGENCE I.2.0 General Cognitive simulation Philosophical foundations I.2.1 Applications and Expert Systems (H.4,J) Cartography Games Industrial automation Law Medicine and science Natural language interfaces Office automation I.2.2 Automatic Programming (D.1.2, F.3.1) Automatic analysis of algorithms Program modification Program synthesis Program transformation Program verification I.2.3 Deduction and Theorem Proving Answer/reason extraction Deduction (e.g., natural, rule-based) Logic programming Mathematical induction Metatheory Nonmonotonic reasoning and belief revision Resolution Uncertainty, "fuzzy," and probabilistic reasoning I.2.4 Knowledge Representation Formalisms and Methods Frames and scripts Predicate logic Relation systems Representation languages Representations (procedural and rule-based) Semantic networks I.2.5 Programming Languages and Software (D.3.2) Expert system tools and techniques I.2.6 Learning (K.3.2) Analogies Concept learning Connectionism and neural nets Induction Knowledge acquisition Language acquisition Parameter learning I.2.7 Natural Language Processing Discourse Language generation Language models Language parsing and understanding Machine translation Speech recognition and synthesis Text analysis I.2.8 Problem Solving, Control Methods, and Search (F.2.2) Backtracking Dynamic programming Graph and tree search strategies Heuristic methods Plan execution, formation, generation I.2.9 Robotics Manipulators Propelling mechanisms Sensors I.2.10 Vision and Scene Understanding (I.4.8, I.5) Architecture and control structures Intensity, color, photometry and thresholding Modeling and recovery of physical attributes Motion Perceptual reasoning Representations, data structures, and transforms Shape Texture I.2.11 Distributed Artificial Intelligence Coherence and coordination Languages and structures I.2.m Miscellaneous I.3 COMPUTER GRAPHICS I.3.0 General I.3.1 Hardware Architecture (B.4.2) Graphics processors Hardcopy devices Input devices Parallel processing Raster display devices Storage devices Three-dimensional displays Vector display devices I.3.2 Graphics Systems (C.2.1, C.2.4, C.3) Distributed/network graphics Remote systems Stand-alone systems I.3.3 Picture/Image Generation Antialiasing Bitmap and framebuffer operations Digitizing and scanning Display algorithms Line and curve generation Viewing algorithms I.3.4 Graphics Utilities Application packages Device drivers Graphics editors Graphics packages Meta files Paint systems Picture description languages Software support Virtual device interfaces I.3.5 Computational Geometry and Object Modeling Boundary representations Constructive solid geometry (CSG) Curve, surface, solid, and object representations Geometric algorithms, languages, and systems Hierarchy and geometric transformations Modeling packages Object hierarchies Physically based modeling Splines I.3.6 Methodology and Techniques Device independence Ergonomics Graphics data structures and data types Interaction techniques Languages Standards I.3.7 Three-Dimensional Graphics and Realism Animation Color, shading, shadowing, and texture Fractals Hidden line/surface removal Radiosity Raytracing Virtual reality Visible line/surface algorithms I.3.8 Applications I.3.m Miscellaneous I.4 IMAGE PROCESSING I.4.0 General Image displays Image processing software I.4.1 Digitization Quantization Sampling Scanning I.4.2 Compression (Coding) (E.4) Approximate methods Exact coding I.4.3 Enhancement Filtering Geometric correction Grayscale manipulation Registration Sharpening and deblurring Smoothing I.4.4 Restoration Inverse filtering Kalman filtering Pseudoinverse restoration Wiener filtering I.4.5 Reconstruction Series expansion methods Summation methods Transform methods I.4.6 Segmentation Edge and feature detection Pixel classification Region growing, partitioning I.4.7 Feature Measurement Invariants Moments Projections Size and shape Texture I.4.8 Scene Analysis Depth cues Photometry Range data Sensor fusion Stereo Time-varying imagery I.4.9 Applications I.4.10 Image Representation Hierarchical Morphological Multidimensional Statistical Volumetric I.4.m Miscellaneous I.5 PATTERN RECOGNITION I.5.0 General I.5.1 Models Deterministic Fuzzy set Geometric Neural nets Statistical Structural I.5.2 Design Methodology Classifier design and evaluation Feature evaluation and selection Pattern analysis I.5.3 Clustering Algorithms Similarity measures I.5.4 Applications Computer vision Signal processing Text processing Waveform analysis I.5.5 Implementation (C.3) Interactive systems Special architectures I.5.m Miscellaneous I.6 SIMULATION AND MODELING (G.3) I.6.0 General I.6.1 Simulation Theory Model classification Systems theory Types of simulation (continuous and discrete)* I.6.2 Simulation Languages I.6.3 Applications I.6.4 Model Validation and Analysis I.6.5 Model Development Modeling methodologies I.6.6 Simulation Output Analysis I.6.7 Simulation Support Systems Environments I.6.8 Types of Simulation Animation Combined Continuous Discrete event Distributed Gaming Monte Carlo Parallel Visual I.6.m Miscellaneous I.7 TEXT PROCESSING (H.4-5) I.7.0 General I.7.1 Text Editing Languages Spelling I.7.2 Document Preparation Desktop publishing Format and notation Hypertext/hypermedia Languages and systems Multi/mixed media Photocomposition/typesetting Standards I.7.3 Index Generation I.7.m Miscellaneous I.m MISCELLANEOUS J. Computer Applications J.0 General J.1 ADMINISTRATIVE DATA PROCESSING Business Education Financial (e.g., EFTS) Government Law Manufacturing Marketing Military J.2 PHYSICAL SCIENCES AND ENGINEERING Aerospace Astronomy Chemistry Earth and atmospheric sciences Electronics Engineering Mathematics and statistics Physics J.3 LIFE AND MEDICAL SCIENCES Biology Health Medical information systems J.4 SOCIAL AND BEHAVIORAL SCIENCES Economics Psychology Sociology J.5 ARTS AND HUMANITIES Arts, fine and performing Language translation Linguistics Literature Music J.6 COMPUTER-AIDED ENGINEERING Computer-aided design (CAD) Computer-aided manufacturing (CAM) J.7 COMPUTERS IN OTHER SYSTEMS (C.3) Command and control Consumer products Industrial control Military Process control Publishing Real time J.m MISCELLANEOUS K. Computing Milieux K.0 GENERAL K.1 THE COMPUTER INDUSTRY Markets Standards Statistics Suppliers K.2 HISTORY OF COMPUTING Hardware People Software Systems Theory K.3 COMPUTERS AND EDUCATION K.3.0 General K.3.1 Computer Uses in Education Computer-assisted instruction (CAI) Computer-managed instruction (CMI) K.3.2 Computer and Information Science Education Computer science education Curriculum Information systems education Self-assessment K.3.m Miscellaneous Accreditation Computer literacy K.4 COMPUTERS AND SOCIETY K.4.0 General K.4.1 Public Policy Issues Human safety Privacy Regulation Transborder data flow K.4.2 Social Issues Abuse and crime involving computers Employment Handicapped persons/special needs K.4.3 Organizational Impacts K.4.m Miscellaneous K.5 LEGAL ASPECTS OF COMPUTING K.5.0 General K.5.1 Software Protection Copyrights Patents Proprietary rights Trade secrets K.5.2 Governmental Issues Regulation Taxation K.5.m Miscellaneous Contracts Hardware patents K.6 MANAGEMENT OF COMPUTING AND INFORMATION SYSTEMS K.6.0 General Economics K.6.1 Project and People Management Life cycle Management techniques (e.g., PERT/CPM) Staffing Systems analysis and design Systems development Training K.6.2 Installation Management Benchmarks Computer selection Computing equipment management Performance and usage measurement Pricing and resource allocation K.6.3 Software Management Software development Software maintenance Software selection K.6.4 System Management Centralization/decentralization Management audit Quality assurance K.6.5 Security and Protection (D.4.6, K.4.2) Authentication Insurance Invasive software (e.g., viruses, worms, Trojan horses) Physical security K.6.m Miscellaneous Insurance* Security* K.7 THE COMPUTING PROFESSION K.7.0 General K.7.1 Occupations K.7.2 Organizations K.7.3 Testing, Certification, and Licensing K.7.m Miscellaneous Codes of good practice Ethics K.8 PERSONAL COMPUTING Games* K.8.0 General Games K.8.1 Application Packages Data communications Database processing Graphics Spreadsheets Word processing K.8.2 Hardware K.8.3 Management/Maintenance K.m MISCELLANEOUS *Indicates that the classification is no longer be used as of January 1991, but that the item is still searchable for previously classified documents.