All Courses
Data Structures: An Active Learning Approach
edX
Course
Intermediate
Free to Audit
Certificate

Data Structures: An Active Learning Approach

The University of California, San Diego

Learn about high-performance data structures and supporting algorithms, as well as the fundamentals of theoretical time complexity analysis through an interactive online text.

6 hrs/week10 weeksEnglish12,286 enrolled
Free to Audit

About this Course

This interactive text used in this course was written with the intention of teaching Computer Science students about various data structures as well as the applications in which each data structure would be appropriate to use. It is currently beingtaught at the University of California, San Diego (UCSD), the University of San Diego (USD), and the University of Puerto Rico (UPR). Thiscoursework utilizes the Active Learning approach to instruction, meaning it has various activities embedded throughout to help stimulate your learning and improve your understanding of the materials we will cover. You will encounter "STOP and Think" questions that will help you reflect on the material, "Exercise Breaks" that will test your knowledge and understanding of the concepts discussed, and "Code Challenges" that will allow you to actually implement some of the algorithms we will cover. Currently, all code challenges are in C++ or Python, but the vast majority of the content is language-agnostic theory of complexity and algorithm analysis. In other words, even without C++ or Python knowledge, the key takeaways can still be obtained.

What You'll Learn

  • The algorithms behind fundamental data structures (dynamic arrays, linked structures, (un)balanced trees/tries, graph algorithms, hash tables/functions)
  • How to reason about appropriate data structures to solve problems, including their strengths and weaknesses
  • How to analyze algorithms theoretically (worst-case, average-case, and amortized)
  • The key distinctions and relations between "Abstract Data Types" and "Data Structures"
  • Basic information theory and data compression utilizing the data structures covered

Prerequisites

  • Reading and understanding pseudocode
  • Performing time-complexity analysis using Big-O notation
  • Working with basic probabilities
  • Following formal mathematical proofs
  • Programming in either C++ or Python

Instructors

N

Niema Moshiri

Ph. D. Student

L

Liz Izhikevich

M.S. Student, Computer Science and Engineering

Topics

C++ (Programming Language)
Python (Programming Language)
Computer Science
Algorithm Analysis
Data Structures
Time Complexity
Algorithms

Course Info

PlatformedX
LevelIntermediate
PacingUnknown
CertificateAvailable
PriceFree to Audit

Skills

سي بلس بلس
بايثون
علوم الحاسوب
تحليل الخوارزميات
هياكل البيانات
Time Complexity
Algorithms

Start Learning Now