Learn about high-performance data structures and supporting algorithms, as well as the fundamentals of theoretical time complexity analysis through an interactive online text.
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
University courses you can audit for free, with lectures, readings and practice quizzes.
A verified certificate from the university if you pay for it.
From University of California San Diego, a well-regarded name.
Self-paced: start any time.
Disadvantages
Graded assignments and the certificate need the paid track.
Audit access can expire a few weeks after the course ends.
Learning is free, but the certificate costs money.
Some parts (graded work, certificate) are paid.
Some points apply to every course of this kind; see how we rank.
Free to audit
Free: Choose "Audit this course" when you enrol: lectures, readings and practice are free.
Paid: Graded assignments and the verified certificate (Certificate $50). Audit access may end after the course closes.
Before you start
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
Taught by
Niema MoshiriPh. D. Student
Liz IzhikevichM.S. Student, Computer Science and Engineering
This is CS50P, CS50's Introduction to Programming with Python. Register for free at https://cs50.edx.org/python. Slides and source code at https://cs50.harvard.edu/python. Playlist at https://www.youtube.com/playlist?list=PLhQjrBD2T3817j24-GogXmWqO5Q5vYy0V. An introduction to programming using a la…
Instructor: Ana Bell View the complete course: https://ocw.mit.edu/courses/6-100l-introduction-to-cs-and-programming-using-python-fall-2022/ *Note: Lectures 6, 10 have been updated! This subject is aimed at students with little to no programming experience. It aims to provide students with an under…
This is CS50W, CS50's Web Programming with Python and JavaScript. Register for free at https://cs50.edx.org/web. Slides and source code at https://cs50.harvard.edu/web. This course picks up where Harvard University’s CS50 leaves off, diving more deeply into the design and implementation of web apps…
This course explores the concepts and algorithms at the foundation of modern artificial intelligence, diving into the ideas that give rise to technologies like game-playing engines, handwriting recognition, and machine translation. Through hands-on projects, students gain exposure to the theory beh…
This course explores the concepts and algorithms at the foundation of modern artificial intelligence, diving into the ideas that give rise to technologies like game-playing engines, handwriting recognition, and machine translation. Through hands-on projects, students gain exposure to the theory beh…
Learning objectives This course picks up where Harvard University's CS50 leaves off, diving more deeply into the design and implementation of web apps with Python, JavaScript, and SQL using frameworks like Flask, Django, and Bootstrap. Topics include database design, scalability, security, and user…