Stanford / Engineering

Compare Map Implementations

By Julie Zelenski | Computer Science II: Programming Abstractions Lecture 24 of 27

GRADED BY 6 USERS grade it
get flash player

Lecture Description

Compare Map Implementations, Hashtable Idea, Hash Functions, Hash Collisions, Live Demo: Hashing, Live Coding: Hashing, Hashing Idea : Example in Real World, Hash Table Performance, Compare Map Implementations, Hashing Generic Types, Implementing Set

Course Description

This course is the natural successor to Programming Methodology and covers such advanced programming topics as recursion, algorithmic analysis, and data abstraction using the C++ programming language, which is similar to both C and Java. If you've taken the Computer Science AP exam and done well (scored 4 or 5) or earned a good grade in a college course, Programming Abstractions may be an appropriate course for you to start with, but often Programming Abstractions (Accelerated) is a better choice. Programming Abstractions assumes that you already have familiarity with good programming style and software engineering issues (at the level of Programming Methodology), and that you can use this understanding as a foundation on which to tackle new topics in programming and data abstraction.

Topics: Abstraction and its relation to programming. Software engineering principles of data abstraction and modularity. Object-oriented programming, fundamental data structures (such as stacks, queues, sets) and data-directed design. Recursion and recursive data structures (linked lists, trees, graphs). Introduction to time and space complexity analysis. Uses the programming language C++ covering its basic facilities.

Prerequisites: Solid performance in Programming Methodology and readiness to move on to advanced programming topics. A comparable introductory programming course (including high school AP courses) is often a reasonable substitute for our Programming Methodology.

Related Resources

Transcript   |  Code hash map

Course Index

  1. About the Introduction to Computer Science Series at Stanford
  2. Similarity between C++ & Java: - syntax - variable types - operators - control structures
  3. C++ Libraries - Standard Libraries
  4. C++ Console I/O
  5. Client Use of Templates
  6. More Containers
  7. Seeing Functions as Data: Specific Plot Functions
  8. Common Mistakes Stumbled Upon: 'I'terator
  9. Thinking Recursively
  10. Refresh: Permute Code
  11. Backtracking Pseudocode
  12. Pointer Movie
  13. Coding with Linked List
  14. Algorithm Analysis
  15. Selection Sort
  16. Partitioning for Quicksort
  17. Sort Template with Callback
  18. Abstract Data Types
  19. Rules of Template Implementation
  20. Live Coding: Recap of the Vector-based Implementation for Stack
  21. Buffer: Vector vs Stack
  22. Map as Vector
  23. Pathfinder Demo
  24. Compare Map Implementations
  25. Lexicon Case Study
  26. Final Showdown
  27. About the C++ Language, Quick History of C++, C++ Philosophy
Leave Feedback