• Tidak ada hasil yang ditemukan

All the activities concerned with the complete or partial automation of problem-solving strategies using some form of automatic system (usually known as a computer). Currently such systems are invariably implemented using electronic sig- nal processing, but this need not always be so (for example, early computer-like implementa- tions such as Babbage’s Analytical Engine were based upon mechanical properties, and future systems may be chemically or biologically based).

The term computer is usually restricted to sys- tems that operate using a stored ‘program’ or set of instructions describing the computations to be carried out. The system that actually executes the problem solving (or computation) is known as the computer or ‘hardware’ and the stored program (or programs) is collectively known as the ‘software’. Using the stored program ap- proach, the same hardware can be used to solve many different problems by loading and execut- ing different programs. Activities may be theory- based (for example examining the power, limits and costs of the process of computation), design- based (design of hardware, languages, applica- tions, interfaces) or efficiency-based (the effi- ciency of algorithms, representations or the efficient storage and retrieval of information).

Acceptance of the term ‘computer science’

The term ‘computer science’, whilst used quite generally, is not completely accepted. Opinions differ as to whether the subject is a science, or whether it is closer to an engineering discipline.

In reality, it is probably best described as a cross- discipline subject. Other terms in use include computer (or computing) engineering, computing and computer studies. On the continent of Europe, and increasingly in the UK, the term

‘informatics’ is often used.

98 COMPUTER SCIENCE

Broad aims and coverage

Computer science covers all activities associated with computation, from hardware design (that is the design of the computational engine) to the evaluation of the effectiveness of computer appli- cations in the field. The current content of the discipline can be broadly separated into ten subject areas. These are:

. Architectural methods.

. Operating systems.

. Numerical and symbolic computation.

. Programming languages.

. Algorithms and data structures.

. Software methodology and engineering.

. Databases, knowledge management and infor- mation retrieval.

. artificial intelligenceand robotics.

. Human–Computer Interaction (HCI).

. Graphics and visualization.

Three extensions to these subject areas – high- performance scientific computing, bio-informatics and quantum computing – are currently of in- creasing interest in the community.

Each of these subject areas can be understood from three viewpoints – theory, abstraction and design (ACM 1991). Theory is concerned with axioms and theorem proving (for example, com- putability and proving program correctness).

Abstraction is concerned with data collection and modelling, and the interpretation of results.

Design involves the engineering aspects of com- puter science including requirements analysis, design rationale and implementation, methodol- ogies, testing and analysis.

Subject areas in more detail

ARCHITECTURAL METHODS

This area focuses on the overall design of the essential components of computing systems – processors (serial or parallel), memory organiza- tions, communications software and hardware, systems distribution and software/hardware inter- faces. Key objectives include the design of sys- tems that are predictable, reliable, safe and efficient. Architectural research has increasingly focused on distributed systems and their inter- connection, and the transmission of complex media between systems. High-performance scien- tific computing, for example, involves the inter- connection of powerful remote computers using

high-speed communication lines.

OPERATING SYSTEMS

This area covers the development of control mechanisms (usually in software) that allow for the efficient use of multiple computing resources such as processor time, disk space, communica- tions facilities and memory, by concurrently executing programs. In recent times such control systems have been extended to cover distributed or ‘grid’ systems (that is, processors and memory distributed geographically, connected by high- speed communication lines).

NUMERICAL AND SYMBOLIC COMPUTATION

A highly mathematical area concerned with the efficient solution of equations using either sym- bolic (i.e. algebraic) or numeric (i.e. approxima- tion) techniques. Work in this area has resulted in highly reliable and efficient packages of mathe- matical routines for science and engineering research workers.

PROGRAMMING LANGUAGES

Programming languages are notations for in- structing virtual machines on how to execute algorithms. Many different types of program- ming language exist that are appropriate for solving particular problems. The four main classes of language are procedural (such as FORTRAN, PASCAL or BASIC), functional (such as LISP, ML and HASKELL), object- oriented (examples include SMALLTALK, EIF- FEL, JAVA and Cþþ) and logic programming (PROLOG).

ALGORITHMS AND DATA STRUCTURES

This area is concerned with the development of efficient methods for solving specific problems (algorithms) and how data is organized (and accessed) in computer memory or in secondary storage.

SOFTWARE METHODOLOGY AND ENGINEERING

This area is concerned with the specification, design and development of large software sys- tems. Techniques and approaches include re- quirements and systems analysis, good programming practice (step-wise refinement, structured programming), verification and valida- tion techniques for showing that programs actually do what they have been designed to do, COMPUTER SCIENCE 99

and testing techniques. Safety, security, reliability and dependability are key goals.

Databases, knowledge management and information retrieval

This area is primarily concerned with the organization of, and access to, data on second- ary storage (disks, tapes, floppy disks or CD drives). Database techniques attack the problems of storing and accessing large amounts of highly structured data in an efficient and flexible manner. Such large collections of data will usually be accessed by many terminals at local and remote locations, so that security, integrity and privacy are major issues. More recently, the storage and retrieval of multimedia data has become important. This involves not only new storage techniques but also new retrieval me- chanisms in which elements of the media them- selves are used as search strings. The development of the world wide web has also had a major impact in database and informa- tion retrievalresearch.

ARTIFICIAL INTELLIGENCE AND ROBOTICS

Artificial intelligence has two main goals – the simulation of human intelligent behaviour in computer systems, and the testing of possible models of human behaviour. Key aspects include knowledge representation, inference, deduction and pattern recognition. Early successes involved the creation of expert systems (systems storing representations of expert knowledge). Other techniques include neural networks and genetic algorithms. With the introduction of object- oriented programming and the internet, the development of software agents has become an important research area.

HUMAN–COMPUTER INTERACTION

The field of HCI is mainly concerned with the efficient transfer of information between persons and computers. It is the study of how human beings and computers interact. It involves the conception, design, implementation, and evalua- tion of the effects of user interfaces and tools on those who use them. A key design principle is user-centred design, where the needs, capabilities and limitations of the intended users are properly taken into account during the design process.

More recently, the implications of group working

and the effects of the organizational environment have also become a focus for research.

Recent developments

There used to be a clear distinction between hardware and software (that is, the machinery that carried out the computation and the set of instructions for that computation). Recently such distinctions have become blurred. First, there was the development of microprogramming that pro- vided a bridge between hardware and software, allowing computers to emulate other computers based on different hardware. Second, the devel- opment of programming in Silicon has resulted in a form of hardware programming (or ‘firm- ware’).

The object-oriented paradigm has been enthu- siastically adopted in many application areas and the language JAVA is now widely used, partly because it is platform independent, meaning that JAVA programs can be passed and executed across dissimilar computers. This makes it ideal for Web-based applications.

Another important development has been the adoption of software-agent technology. Such agents are autonomous, proactive and have some limited social awareness. Some problems can now be solved efficiently using collections of co- operating agents that, if built using languages such as JAVA, may be spread across dissimilar and remote computers.

Quantum computing (or quantum information processing) exploits quantum mechanical effects for computation and information transfer.

Although in its early stages, this research has already yielded cryptographical methods for un- conditionally secure information transfer.

References

ACM (1991) Computing Curricula, Report of the ACM/IEEE–CS Joint Task Force.

Further reading

Bacon, J. (1998) Concurrent Systems: Operating Sys- tems, Database and Distributed Systems, an Inte- grated Approach, 2ndedn, Addison-Wesley.

Date, C.J. (1999)Introduction to Database Systems, 7th edn, Addison-Wesley.

Russell, S.J. and Norvig, P. (1994) Artificial Intelli- gence, a Modern Approach, 1stedn, Prentice-Hall.

Schneider, F.B. and Rodd, M. (2001) International Review of UK Research in Computer Science, IEE.

100 COMPUTER SCIENCE

Silberschatz, A., Galvin, P.B. and Gagne, G. (2001) Operating Systems, 6thedn, John Wiley & Sons.

Sommerville, I. (2000)Software Engineering, 6th edn, Addison-Wesley.

SEE ALSO: information and communication technology

J.L. ALTY