CSC 590 Lecture Notes
The Computer Science Literature and
How to Reference It

(Original author: Gene Fisher.  Modified by Turner)



  1. What is "the literature".
    1. In all academic fields, authors frequently refer to "the literature" as the body of work produced by researchers and practitioners in the field.
    2. Even as relatively young as the field of computer science is, it has a reasonably vast literature.
    3. In these notes, we'll focus on the literature published by the two primary professional organizations in the field of computing.

  2. What is the mainstream computer science literature?
    1. The term "mainstream" is frequently used as a qualifier to computer science research and it's literature.
    2. Informally, it refers to research that is widely recognized as legitimate, and being pursued by important people at important places.
    3. A non-subjective way to evaluate if a computer science topic is "mainstream" is to see of it has a place in one of the ACM/IEEE computing classification taxonomy, which we'll look at next.

  3. The ACM (IEEE) classification taxonomy.
    1. General Literature
      1. General
      2. Introductory and Survey
      3. Reference
      4. Miscellaneous
    2. Hardware
      1. General
      2. Control Structures and Microprogramming
      3. Arithmetic and Logic Structures
      4. Memory Structures
      5. Input/Output and Data Communications
      6. Register-Transfer-Level Implementation
      7. Logic Design
      8. Integrated Circuits
      9. Performance and Reliability
      10. Miscellaneous
    3. Computer Systems Organization
      1. General
      2. Processor Architectures
      3. Computer-Communication Networks
      4. Special-Purpose and Application-Based Systems
      5. Performance of Systems
      6. Computer System Implementation
      7. Miscellaneous
    4. Software
      1. General
      2. Programming Techniques
      3. Software Engineering
      4. Programming Languages
      5. Operating Systems
      6. Miscellaneous
    5. Data
      1. General
      2. Data Structures
      3. Data Storage Representations
      4. Data Encryption
      5. Coding and Information Theory
      6. Files
      7. Miscellaneous
    6. Theory of Computation
      1. General
      2. Computation by Abstract Devices
      3. Analysis of Algorithms and Problem Complexity
      4. Logics and Meanings of Programs
      5. Mathematical Logic and Formal Languages
      6. Miscellaneous
    7. Mathematics of Computing
      1. General
      2. Numerical Analysis
      3. Discrete Mathematics
      4. Probability and Statistics
      5. Mathematical Software
      6. Miscellaneous
    8. Information Systems
      1. General
      2. Models and Principles
      3. Database Management
      4. Information Storage and Retrieval
      5. Information Systems Applications
      6. Information Interfaces and Presentation
      7. Miscellaneous
    9. Computing Methodologies
      1. General
      2. Symbolic and Algebraic Manipulation
      3. Artificial Intelligence
      4. Computer Graphics
      5. Image Processing and Computer Vision
      6. Pattern Recognition
      7. Simulation and Modeling
      8. Document and Text Processing
      9. Miscellaneous
    10. Computer Applications
      1. General
      2. Administrative Data Processing
      3. Physical Sciences and Engineering
      4. Life and Medical Sciences
      5. Social and Behavioral Sciences
      6. Arts and Humanities
      7. Computer-Aided Engineering
      8. Computers in Other Systems
      9. Miscellaneous
    11. Computing Milieux
      1. General
      2. The Computer Industry
      3. History of Computing
      4. Computers and Education
      5. Computers and Society
      6. Legal Aspects of Computing
      7. Management of Computing and Information Systems
      8. The Computing Profession
      9. Personal Computing
      10. Miscellaneous

  4. The Cal Poly taxonomy.
    1. You may not have noticed, but there is some underlying method to the madness of CSC course numbering by the department.
    2. It is embodied in the ten's digit of the course number.
    3. Here the Cal Poly CSC "taxonomy":
      X00: Basics (including SE and Milieux)
      X10: Theory
      X20: Architecture
      X30: Languages
      X40: Operating Systems
      X50: Database Systems
      X60: Communications and Networks
      X70: Graphics
      X80: AI and Other
    4. This generally reflects the emphases of Cal Poly CSC faculty
    5. It's interesting to see how our "top-level" categories fit into the ACM taxonomy.

  5. The "flavors" of research publication.
    1. Archival Journal -- the "top flight" publication venue, heavily refereed, typically long turn-around for review and acceptance.
    2. Refereed Conference (Workshop or Symposium) -- a good place to publish, but acceptance standards are typically lower that a journal; also with faster review times, conferences are the places where late- breaking results are normally published, with journal articles resulting if a more in-depth treatment is warranted.
    3. Non-Refereed Conference (Workshop or Symposium) -- an OK place to publish; however peer review is critically important to
    4. Technical Report -- a generally unrefereed publication that is put out by a university or other research-oriented institution, typically as the precursor to a publication in a refereed forum, or of a non-research piece of work such as a reference manual.
    5. Blog or Unrefereed Web Posting -- a generally unreliable form of publication, unless the author is a known commodity with a good history of referred publication.

  6. ACM publications.
    1. The Association of Computing Machinery is generally recognized as the top-tier publisher in the field of Computer Science.
    2. It publishes a wide range of archival journals, many the the "Transactions On ..." series.
    3. It also sponsors or co-sponsors a very wide range of refereed conferences, many in collaboration with IEEE (see below).
    4. Many of the conferences are sponsored by ACM "Special Interest Groups" (SIGs); most SIGs also publish a periodic newsletter, with most typically unrefereed or lightly refereed submissions.
    5. In class, we'll browse the ACM site a bit to look at the publications that are likely to be of particular interest in 590.

  7. IEEE publications.
    1. The Institute of Electrical and Electronic engineers is the top-tier professional organization for EE types.
    2. For computer science types, IEEE has a Computer Society which publishes a wide range of journals and conference proceedings.
    3. In class, we'll browse the IEEE CS site, to look at the publications that are likely to be of particular interest in 590.

  8. Rating the importance of Computer Science publications.
    1. Ask your advisor or other Cal Poly faculty to have them assess which publications they believe are the most important in their specific areas of interest.
    2. Generally, active researchers in the field have a reasonably clear idea of what pubs are "hot" and which ones are "not".

  9. Referencing the literature in bibliographies.
    1. In upcoming 590 assignments, not to mention your thesis, you will be creating bibliographies of works that you reference.
    2. There are many software tools to support the creation and formatting of bibliographies.
    3. One of the most widely used in Computer Science is BibTeX.