Computer Science

ECS 32B Introduction to Data Structures

ECS 32B Introduction to Data Structures (4 units)

Format

Lecture: 3 hours

Discussion: 1 hour

Catalog Description:

Design and analysis of data structures using Python; trees, heaps, searching, sorting, and graphs.

Prerequisite:

ECS 010 C- or better or ECS 030 C- or better or ECS 032A C- or better or ECS 036A C- or better

Credit restrictions/cross listings:

No credit to students who completed previous ECS 36C or ECS 60 or higher.

Goals:

Students will:

  • learn to think clearly about and solve complex and poorly-defined programming tasks
  • be able to (a) find appropriate abstractions to solve a complex problem, (b) choose appropriate data structures and algorithms, (c) analyze simple algorithms and discuss tradeoffs among data structures, (d) get it all working

Summary of Course Content:

  • Recursion
  • Theory: Complexity, algorithm analysis
  • Abstract Data Types
  • Stacks, queues, lists, trees, balanced binary search trees, priority queues, graphs
  • Analysis of Sorting Algorithms
  • Insertion sort, merge sort, heapsort, bucket sort, and radix sort

Illlustrative Reading:

Fundamentals of Python: Data Structures by Kenneth Lambert

  1. A Quick Course in Basic Python. 2. Basic Algorithms: Searching and Sorting. 3. Basic Data Structures: Arrays and Linked Structures. 4. Object-Oriented Design: Interfaces, Implementations, Polymorphism, and Inheritance. 5. An Overview of Collections. 6. Stacks and Queues. 7. Abstract Collections. 8. Lists. 9. Trees. 10. Sets and Dictionaries. 11. Graphs

Problem Solving with Algorithms and Data Structures Using Python, 2nd Edition by Bradley N. Miller, David L. Ranum

http://interactivepython.org/courselib/static/pythonds/index.html

  1. Review of Basic Python, 2. Analysis, 3. Basic Data Structures, 4. Recursion, 5. Sorting and Searching, 6. Trees and Tree Algorithms, 7. Graphs and Graph Algorithms

 

Data Structures and Algorithms with Python (Undergraduate Topics in Computer Science) by Kent D. Lee and Steve Hubbard

  1. Python Programming 101, 2. Computational Complexity, 3. Recursion, 4. Sequences (Sorts), 5 Sets and Maps, 6. Trees, 7. Graphs, 8. Membership Structures, 9. Heaps, 10. Balanced Binary Search Trees, 11. B-Trees, 12. Heuristic Search

 

GE3

Science & Engineering

ABET Category Count

 

Overlap

This course is a Non-Major version of ECS 36C and will overlap significantly in concepts. 

Instructors

Staff

Outcomes

 

History:

Added 9.4.2018 (CSUGA)

border