data structure, algorithms, ml, machine learning, ml, python, artificial intelligence, ai, computer science, data science, data analytics, technology training at bay area, algorithm, deep learning, supervised learning, unsupervised learning, database, logistic regression, polynomial regression, rnns
CSE590/MB590 Special Topics
  - Data Structures and Algorithms in Python

This course is designed to teach efficient use of data structures and how to design an algorithm to solve a practical problem. Students will learn the logical relationships between the data structures associated with the real problems and their physical representations. Topics include algorithms and algorithm analysis, data organization and the applications.
  • » 23 hours (8 weeks) in class lecturing plus dedicated mentoring sessions from our faculty of industry experts
  • » 1.5 semester credits for both certificate and master’s degree
  • » Access to high-quality live class recording
  • » Online live classroom available for all classes
  • » Lifetime learning resources for our students
  • ETTP Program $7200
Course Description

This course is designed to teach efficient use of data structures and how to design an algorithm to solve a practical problem. Students will learn the logical relationships between the data structures associated with the real problems and their physical representations. Topics include algorithms and algorithm analysis, data organization and the applications. Practical use of the arrays, stacks, queues, single and double linked lists, trees, graphs, and heaps will be covered in depth. The class-based data models with object-oriented design patterns will also be introduced.

CSTU does not have a student bookstore. Students are required to purchase textbooks required for their courses on the open market. In accordance with the current Higher Education Opportunity Act (HEOA) requirements, CSTU will provide the ISBN and retail price of our texts along with information on various purchasing options and buyback programs. The ISBN and price information are provided in the syllabus. Course materials can be purchased from any source, the CSTU website offers a convenient means of obtaining required course materials. CSTU cautions students about obtaining course materials from overseas sources because of the risk of delivery time and quality of the materials. Purchase decisions should not be based on the purchase price alone.

Measurable Course Objectives
  • Review the basics of Python programming language.
  • Highlight the object-oriented programming principles.
  • Provide in-depth exploration of various data structures and algorithms found in modern programming language libraries.
  • Demonstrate the usage of algorithms in real applications.
University-wide Student Learning Outcome

The University Student Learning Outcomes assessed and reinforced in this course include but are not limited to the following:

  • Become familiar with common data structures such as stacks, queues, lists, trees, and maps.
  • Be able to wisely use existing data structures and algorithms to solve problems.
  • Be able to analyze algorithmic performance.
Course Topics
Week 1
  • Introduction
  • Chapter 1 & 2
  • Python Primer
  • Object-Oriented Programming
  • HW1
Week 2
  • Chapter 3 & 4
  • Algorithm Analysis
  • Recursion
  • HW 2
Week 3
  • Chapter 5 & 6
  • Array-Based Sequences
  • Stacks, Queues, and Deques
  • HW3
Week 4
  • Chapter 7 & 8
  • Linked Lists
  • Trees
  • Mid-term Exam
Week 5
  • Chapter 9 & 10
  • Priority Queues
  • Maps, Hash Tables, and Skip Lists
  • HW4
Week 6
  • Chapter 11 & 12
  • Search Trees
  • Sorting and Selection
  • HW5
Week 7
  • Chapter 13 & 14
  • Text Processing
  • Graph Algorithms
  • HW6
Week 8
  • Chapter 15
  • Memory Management
  • B-Trees
  • Final Exam
About the Instructor

Jim Lai

Jim Lai is an adjunct professor at Foothill College where he has been teaching Computer Science courses since 2015. In the past he had worked as a principal software engineer at various cutting edge companies focusing on the design and implementation of video conferencing and networking software. He holds a Ph.D. of Electrical and Computer Engineering in Image Processing and Computer Vision.