Poster Project: Computer Science Taxonomy



Started: July 2006

Description: A taxonomy of computer science. This taxonomy will categorize the various fields of computer science. It will be represented in a tree structure so it will be easy to navigate and see how fields are related. The ACM has created a taxonomy that is now several years old. It is necessary to upgrade this structure due to newly created fields and the redefining of fields and how they relate to others. We will be using several methods to create this taxonomy including clustering algorithms.

DEFINITION OF COMPUTER SCIENCE

NOTE: Examining the definition of computer science will affect the taxonomy.

Source: ACM Definition - “Computing as a discipline” Communications of the ACM, January 1989
  • The discipline of computing is the systematic study “computing” of algorithmic processes that describe and transform information, their theory, analysis, design, efficiency, implementation, and application. The fundamental question underlying all of computing is ‘What can be (efficiently) automated?’

Problems with the definition
  • Should “computing” be defined in a mathematical context (which will show us how to compute) or a mechanical context (which will tell us what can ce computed).

  • Should “computer” be defined as a real physical machine with weakenesses and limitations or defined as a theoretical machine that does not have practical limitations.

  • Is computer science a real science? Where most sciences focus of the study of the natural world, computer science focuses on the study of abstractions and artificial objects

  • Is computer science an experimental science or more mathematical?

  • The similarities and differences between computer science, computer engineering, and software engineering. Engineering uses the knowledge of physical science in order to design systems and products. Therefore, studying theories of computation is not considered apart of engineering. But because computers are becoming more ubiquitous, the scope of engineering is being affected. Software engineering which is the design and development of real-world software has become indistinguishable in many schools.


Alternative Nomenclature
Computer science can be considered a misnomer. Alternative terminology can be used:

  • Computing science
  • Computation science
  • Information science

BOOKS

Name:

LC Control Number:79057474

Type of Material:Book (Print, Microfilm, Electronics, etc.)

Brief Description: Taxonomy of computer science and engineering/ Robert L. Ashenhurst ...[et al.] ; compiled by AFIPS Taxonomy Committee.

Publisher: AFIPS Press, c1980: Arlington, Va.

Page Count: 462 p.; 29 cm.

IMPORTANT DOCUMENTS

Name:

ACM 1998 Taxonomy

Brief Description: Taxonomy of computer science used for the classification of documents.

Publisher: ACM.

Page Count: 72 p.

On-line Resources


Components
  • Some of these components may be used as the nodes in the taxonomy. It is important that each component contains correctly identified items.
  • BODIES OF KNOWLEDGE
    Discrete Structures
    Algorithms
    Computational Models
    Data Structures
    Problem solving methods suitable for implementation in Software or Hardware
    Computer architectures
    Language formalisms
    Information theory
    Machine/Computational intelligence
    User interfaces
    Robotics
    PROFESSIONS
    Computer engineers
    Computer scientists
    Researchers
    Hardware designers
    Software designers
    Computational scientists
    Network analysis
    Network engineers
    Software engineers
    Technical writers
    System analysts
    Educators
    Software developers
    HCI specialists
    Computer technicians
    System administrators
    Database analysts
    Computer programmers
    COMPUTER HARDWARE
    Storage devices
    Processors
    Input devices
    Output devices
    Robots
    Network devices
    Computational devices
    Arithmetic/logic devices
    Computer networks
    Super computer
    Clusters
    Communication devices
    Communication medium
    COMPUTER SOFTWARE
    Operating systems
    Database management systems
    Device drivers
    Information systems
    Expert systems
    Communication software
    Networks (LAN, WAN, MAN, GAN)
    Computer algebra systems
    Office productivity systems
    Compliers and interpreters
    Parsers
    Multimedia rendering
    Browsers
    Games

    Entity Relationship Diagrams (ERDs)
  • These are ERDs that can be used for the components of the taxonomy.

  • CAREER
    CareerId integer
    CareerType varchar(7)
    Description varchar(250)
    DomainCode varchar(250)
    TimelineStart varchar(20)
    TimelineEnd varchar(20)

    PEOPLE
    PeopleId integer
    LastName varchar(60)
    FirstName varchar(60)
    MiddleName varchar(30)
    DomainTypeCode varchar(7)
    MContributions varchar(50)

    TYPES
    TypeCode integer
    Description varchar(250)

    SOFTWARE
    SoftwareId integer
    SoftwareTypeCode varchar(7)
    DomainTypeCode varchar(7)
    Description varchar(250)
    PeopleId integer(fk)
    CareerId integer(fk)

    BODY OF KNOWLEDGE
    Bid integer
    BTypeCode varchar(7)
    Description varchar(250)
    DomainCode varchar(7)

    DOMAINS
    DomainCode integer
    Description varchar(250)