C S 1333 Programming Structures and Abstractions

Catalog description

Organizing data to facilitate programming and computation. Use of pointers and dynamic memory allocation to represent stacks, queues, linked lists and trees. File processing. Continued practice in the use of high-level programming languages and the application of software engineering principles with examples from central areas of computing science. Discussion of intellectual property rights and privacy.

Prerequisites

C S 1323.

Audience

Freshman computer science majors and majors pursuing the computer engineering option or computer science option.

Frequency

Twice a year during fall and spring semesters.

Format

Lecture, two hours per week; laboratory, one hour per week.

Laboratory

Weekly software exercises, supervised; 8 to 10 programming assignments.

Recommended texts

  • Java Structures: Data Structures for the Principled Programmer , D. Bailey, 1st edition, McGraw-Hill, 1999.
  • Computers, Ethics, and Social Values, Deborah Johnson, 3rd edition, Prentice-Hall.

    Supplementary texts

    None.

    Typical schedule of topics

    1. Recursion
    2. Dynamic memory allocation
    3. Linked lists
    4. Stacks
    5. Queues
    6. Strings
    7. Trees
      1. Binary tree
      2. Tree traversal
      3. Search trees
      4. B-trees and B+-trees
    8. File organization
      1. Storage device characteristics
      2. Records and record access
      3. Sorting large data sets
      4. Indexed sequential access method
      5. Indexing

    Programming Structures and Abstractions / Course descriptions / OU School of Computer Science / 28 November 2000