Data Structures & Algorithms

Data Structures & Algorithms#


Contents#


Sections#


Resources#

Courses#

[ y ] PSU CMPSC 465

Carnegie Mellon

  • [ course ] CS 2112 (Fall 2021)

  • [ course ] CS 2112 (Fall 2020)

  • [ course ] 15-351 Algorithms and Advanced Data Structures

  • [ course ] COT 6405 Algorithms (Fall 2003)

[ course ] Syracuse University’s CIS 675 Design and Analysis of Algorithms (Spring 2019)

[ course ] University of Illinois Urbana-Champaign’s CS 476 Program Verification (Fall 2022)

YouTube#

Algorithms Lab Data Structures & Algorithms

  • [ y ] 02-23-2021 “Binary search and recursion”.

Coding with John

  • [ y ] 11-30-2021 “Quicksort Sort Algorithm in Java - Full Tutorial With Source”.

Jan Verschelde [ CS 401/MCS 401: Computer Algorithms I ]

  • [ y ] 06-13-2024 Jan Verschelde. “Implementing Algorithms by Selecting Data Structures, applied to the Gale-Shapley Algorithm”.

More

  • [ y ] 03-02-2021 CuriousWalk. “Quick Sort Algorithm”.

  • [ y ] 03-01-2024 DrOfEng. “Bubble Sort, Big O, O(N^2), Recurrence Relation - Discrete Mathematics”.

  • [ y ] 03-15-2024 ForrestKnight. “How Data Structures & Algorithms are Actually Used”.

  • [ y ] 10-16-2020 Keep On Coding. “Big O Notation - Code Examples”.

  • [ y ] 03-13-2014 jadavparesh808. “Analysis of Non recursive Algorithms”.

  • [ y ] 12-30-2019 Lex Fridman. “Donald Knuth: Algorithms, Complexity, and The Art of Computer Programming | Lex Fridman Podcast #62”.

  • [ y ] 08-22-2021 Nemean. “How Karatsuba’s algorithm gave us new ways to multiply”.

  • [ y ] 03-24-2020 Shaun Sullivan. “6.7 Loop Invariants”.

  • [ y ] 05-09-2023 strager. “Big O myths busted! (Time complexity is complicated)”.


Texts#

[ w ] 2022 Cormen, Thomas H. et al. Introduction to Algorithms. 4th Ed. MIT Press.

2006 Dasgupta, Sanjoy; Christos Papadimitriou; & Umesh Vazirani. Algorithms. McGraw-Hill Education.

[ h ] 2020 Skiena, Steven S. The Algorithm Design Manual. Springer: Texts in Computer Science.

---- Bentley, Jon. Programming Pearls. 2e. Addison-Wesley Professional.

[ h ][ g ] 2017 Downey, Allen B. Think Data Structures: Algorithms and Information Retrieval in Java. O’Reilly.

[ h ] 2013 Goodrich, Michael T.; Roberto Tamassia; & Michael H. Goldwasser. Data Structures and Algorithms in Python Wiley.

1989 R. Graham, D. Knuth, and O. Patashnik. Concrete Mathematics. Addison-Wesley.

2021 Heineman, George. Learning Algorithms: A Programmer’s Guide to Writing Better Code. O’Reilly.

2006 J. Kleinberg and E. Tardos. Algorithm Design. Addison Wesley.

2022 Kubica, Jeremy. Data Structures the Fun Way: An Amusing Adventure with Coffee-Filled Examples. No Starch Press.

2021 La Rocca, Marcello. Advanced Algorithms and Data Structures. Manning.

[ h ][ g ] Morin, Pat. Open Data Structures.

2019 Needham, Mark & Amy E. Hodler. Graph Algorithms: Practical Examples in Apache Spark & Neo4j. O’Reilly.

[ h ] 2011 Sedgewick, Robert & Kevin Wayne. Algorithms. 4th Ed. Addison-Wesley Professional.

2022 Sweigart, Al. The Recursive Book of Recursion: Ace the Coding Interview with Python and JavaScript. No Starch Press.

2022 Tahirovic, Emin; Dzejla Medjedovic; & Ines Dedovic. Algorithms and Data Structures for Massive Datasets. Manning.

2021 Tuckfield, Bradford. Dive Into Algorithms: A Pythonic Adventure for the Intrepid Beginner. No Starch Press.

2023 Zingaro, Dan. Algorithmic Thinking. 2e. No Starch Press.


Terms#

  • [ w ] Abstraction

  • [ w ] Algebraic Data Type

  • [ w ] Algorithm

  • [ w ] Analysis of Algorithms

  • [ w ] Asymptotic Analysis

  • [ w ] Asymptotic Computational Complexity

  • [ w ] Big O Notation

  • [ w ] Bit Field

  • [ w ] Collection

  • [ w ] Computational Complexity

  • [ w ] Computational Problem

  • [ w ] Container

  • [ w ] Counting Problem

  • [ w ] Divide and Conquer

  • [ w ] Dynamic Array

  • [ w ] First In First Out (FIFO)

  • [ w ] Function Object

  • [ w ] Function Pointer

  • [ w ] Greedy Algorithm

  • [ w ] In-Place Algorithm

  • [ w ] Iterator

  • [ w ] Lazy Evaluation

  • [ w ] Loop Fission

  • [ w ] Loop Fusion

  • [ w ] Loop Invariant

  • [ w ] Master Theorem

  • [ w ] Memoization

  • [ w ] Metaprogramming

  • [ w ] Method of Undetermined Coefficients

  • [ w ] Name-Value Pair

  • [ w ] Prefix Sum

  • [ w ] Pseudocode

  • [ w ] Recurrence Relation

  • [ w ] Recursion

  • [ w ] Sentinel Value

  • [ w ] Set

  • [ w ] Stirling’s Approximation

  • [ w ] Stream

  • [ w ] String

  • [ w ] Syntactic Sugar

  • [ w ] Template Metaprogramming

  • [ w ] Thunk

  • [ w ] Time Complexity

  • [ w ] Value Semantics

  • [ w ] Worst-Case Complexity