CIS 22C
Data Structures
Prerequisites: CIS 22B or equivalent
Advisory: Mathematics 212 or equivalent.
Course Description: Application of software engineering techniques to the design and development of large programs; data abstraction and structures and associated algorithms: stacks, queues, linked lists, trees, graphs, and hash tables; internal and external sorting; use of recursion; team project.
Text required: “Data Abstraction and Structures zyBook” an interactive web-based book. Watch a brief overview for new students using zyBooks on what this new kind of learning material is, and how it can help them better succeed: zyBook Orientation
Learning Management System: Canvas is the online Learning Management System used at De Anza College. Our Canvas
Student Guide provides you with instructions and videos on how to perform the most
common tasks in Canvas: Canvas Orientation
Student Learning Outcomes: By the end of the course, students will:
- Read, analyze and explain advanced data structures programs.
- Design solutions for advanced problems using appropriate design methodology incorporating advanced data structures programming constructs.
- Create and analyze efficiency of advanced level data structures algorithms, code, document, debug, and test advanced data structures programs using multiple source and header files.
Course objectives: Upon completion of the course, the student will:
- Create programs which implement the stack data structure.
- Create programs which implement the queue data structure.
- Create programs which implement complex linear lists.
- Create recursive algorithms and relate efficiency to uses of recursion.
- Create programs which implement the binary tree, binary search tree, AVL tree, priority queues, and binary heaps data structures.
- Create programs which implement hashed tables.
- Demonstrate knowledge of advanced sorting algorithms and discuss the usage and relative advantages of various sorts and their efficiency.
- Demonstrate knowledge of external sorting algorithms.
- Create programs which implement the graph data structure.
- Apply software engineering principles including structured programming and abstract data types.
- Design and implement a team project with multiple source and header files.