Computer Science Components
Algorithms and Data Structures This area addresses specific classes of problems and their efficient solutions. The performance characteristics of algorithms and the organization of data relative to different access requirements are major components. Architecture Methods of organizing efficient, reliable computing systems are the central focus of this area. It includes implementation of processors, memory, communications, and software interfaces, as well as the design and control of large and reliable computational systems. Artificial Intelligence and Robotics The basic models of behavior and the building of (virtual or actual) machines to simulate animal and human behavior are included here; addresses inference, deduction, pattern recognition, and knowledge representation. Databases and Information Retrieval This area is concerned with organizing information and designing algorithms for the efficient access and update of stored information. Security and protection of information in a shared environment and the characteristics of external storage devices are included. Software Methodology and Engineering This area addresses specification and production of large software systems, principles of programming and software development, verification, and validation.
|
Human-Computer Communication The central focus of this area is the efficient transfer of information between humans and machines. It includes graphics and human factors that affect efficient interactions. Numerical Methods General methods for efficiently and accurately using computers to solve equations from mathematical models are central to this area. The effectiveness and efficiency of various approaches to the solution of equations, and the development of high-quality mathematical software are included. Operating Systems This area deals with control mechanisms that allow multiple resources to be efficiently coordinated during the execution of programs. Effective strategies for resource control, and effective organization to support distributed computation are included. Programming Languages The fundamental questions addressed in this area involve notations for defining virtual machines that execute algorithms, the efficient translation from high-level languages to machine codes, and the various extension mechanisms that can be provided. Social and Professional Context This area is concerned with the cultural, social, legal, and ethical issues related to computing. It includes legal issues related to use of the Internet. |