Oct 23, 2019
C SCI 152 - Data Structures with C++ and .NET 5 Credits
Discussion of strings; records; stacks; linked lists; queues; trees; graphs classes; templates and other data structures; file organization and manipulation; sorting; searching; program verification and algorithmic analysis; implementation of data structures in a structured, high-level programming language using top-down design, data abstraction and encapsulation. Based on ACM (Association for Computing Machinery) curriculum guidelines for Computer Science II.
Pre-requisite(s) C SCI 151
Designed to Serve For the computer science transfer student or the advanced student in data processing.
Active Date 2011-08-08
Grading System Decimal Grade
Class Limit 30
Contact Hours: Lecture 55 Lab 0 Worksite 0 Clinical 0 Other 0
Total Contact Hours 55
Degree Distributions: AA Science
I. Programming Techniques A. Top-down design 1. processing 2. data structures a. application level b. logical level c. implementation level B. Object orientation 1. data abstraction 2. information hiding C. Debugging - testing 1. top-down with stub 2. bottom up with drives 3. brute force path II. Derived Types A. Structures B. Unions C. Classes D. Class templates III. Stacks A. Logical level 1. structure 2. operations B. Stack operations 1. push/pop 2. tests for full/empty 3. initialize C. Implementations 1. array 2. record D. Application 1. infix expression translation 2. post fix/prefix expression evaluation 3. Recursion a. subprogram linkage b. local variable storage c. iterative solutions to recursive problems IV. Queues A. Logical properties B. Implementations C. Operations 1. tests for full/empty queues 2. enque 3. deque V. Linked Lists A. Logical properties 1. node structure a. singly/doubly linked b. circularly linked c. header/trailer nodes 2. serial access 3. external pointer B. Operations 1. addition, deletion of elements 2. searching, insertion of elements 3. creation, freeing of notes C. Implementations 1. as arrays 2. dynamically allocated D. Applications 1. sorted lists 2. spare matrices 3. implementations of stacks, queues VI. Tree A. Node structure 1. binary trees 2. non-binary 3. non-linked representations 4. graphs 5. heaps B. Tree operations 1. insertion, deletion 2. traversals 3. balancing C. Applications 1. searching 2. sorting 3. expression representation VII. Efficiency of Algorithms A. Searching B. Sorting VIII. Program Verification VIV. Software Engineering Considerations A. Life cycle maintenance B. Data encapsulation C. Project planning and management issues
Student Learning Outcomes
The student will demonstrate the principles of top-down design, data abstraction and information hiding in their program design and implementation..
The student will be create programs with the properties and implementations of basic data structures (strings, records, linked lists, queues, trees, heaps, graphs, stacks).
The student will analyze algorithms for efficiency using Big “O” notation.
The student will demonstrate the basic aspects of recursion, internal searching and sorting within their programs produced.
The student will design, code, debug, and test programs of moderate (500-1000 lines) complexity.
[Add to Portfolio]