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



  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 the ACM/IEEE computing classification taxonomy, which we'll look at next.


  3. Where is the computer science literature?

    1. There are many online sites that archive and provide search engines.

    2. A good list is in the CSC 590 reference index at the 590 web site.

    3. Two of the most prominent sites are the ACM and IEEE Computer Society digital libraries.


  4. The ACM/IEEE classification taxonomy http://www.computer.org/portal/web/publications/acmtaxonomy

    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. Power Management new in last 2 years

      11. 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 / Software Engineering

      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 Technology and Systems

      1. General

      2. Models and Principles

      3. Database Management

      4. Information Storage and Retrieval

      5. Information Technology and Systems Applications

      6. Information Interfaces and Presentation (HCI)

      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, Modeling, and Visualization visualization added in last 2 years

      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. Internet Applications new in last 2 years

      10. Mobile Applications new in last 2 years

      11. 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


  5. 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, Special Topics
      X80: AI and Other
      X90: Thesis and independent study

    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.


  6. Types 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 may be lower than a journal

      1. 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.

      2. Since Computer Science is a particularly fast-moving discipline, conference publications in some areas may be as significant as journal publications, for example ACM's SIGGRAPH conference.

      3. In other academic disciplines, conference publications are generally viewed as second-class, below journal publications.

    3. Non-Refereed Conference (Workshop or Symposium) -- an OK place to publish some ideas; however, peer review is critically important for a publication to be considered a serious and reputable piece of work

    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 refereed publication.


  7. 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 in 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.


  8. 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.


  9. Rating the importance of Computer Science publications.

    1. As you work with your thesis advisor and other colleagues, you'll develop knowledge about the good sources in the literature for your research area.

    2. Active researchers in a field must have a clear idea of what pubs are "hot" and what's "not".

    3. A 2005 article from CACM non-subjectively assesses the influence of journals in the field of computing.

      1. It's an interesting read on a couple accounts.

      2. First, it lists what the authors found to be the top 17 most influential computing journals.

      3. It describes an interesting methodology to determine such influence in a non- subjective manner.

    4. A 2009 paper on the same subject is also linked on the 590/reference page.


  10. 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.

      1. We are going to use it in 590 to create a class-wide bibliographic database of all the articles read by everyone.

      2. A quick reference guide to BibTeX is in the 59 class directory reference/bibtex/btxdoc.pdf

      3. We'll further BibTeX use in coming lectures.




index | lectures | handouts | examples | reference