Mar 29, 2024  
2022-2023 Catalog 
    
2022-2023 Catalog [ARCHIVED CATALOG]

CS 132 - Computer Science II


Credit Hours: 4

A continuation of CS 121. Further study of the organized design, development and testing of computer programs. Emphasis will be on recursion and on the design and application of the important abstract data types/structures of computer science: stacks, queues, singly and doubly linked lists and trees. Several programming projects using these data structures will be required.

Course Outcomes
Upon completion of this course, the student will be able to:
 

  • identify problems where the use of arrays to store data is appropriate, and define and use data types using arrays;
  • identify problems where the use of ADT/class is appropriate;
  • identify problems where the use of structures to store data is appropriate and define and use data types using structures;
  • define a stack and its associated operations and implement it in a program;
  • define a queue and its associated operations and implement it in a program;
  • convert expressions between infix, prefix, and postfix notation;
  • compare and differentiate between a recursively-defined function and an iteratively defined function;
  • write, debug, and execute programs involving recursion;
  • use pointers to implement new data types using dynamic storage;
  • define and use linked lists, circular lists, and doubly linked lists;
  • define a binary tree structure and its associated operations and implement it in a program;
  • write and use generic programming from both user created templated ADT’s (classes, lists, queues, stacks, trees, etc.) and the Standard Template Library (STL);
  • compare and analyze more advanced sorting algorithms: quick merge sort, heap sort, and tree sort;
  • compare and analyze searching techniques: linear, binary, and tree;
  • develop several implementations for a new data type, and be able to compare them in terms of space, time and ease of use;
  • write careful and correct documentation for a program, explaining to a user or another programmer what the program does and how it does it; and
  • technology objectives: Students will be able to demonstrate “hands on ” proficiency in using current hardware, software tools and languages to accomplish all of the above course objectives.


Prerequisites: CS 121
F/S (N)