GRADED BY 10 USERS grade it
get flash player

Lecture Description

Selection Sort, Live Demo: Working/execution of the Code, Selection Sort Analysis, Insertion Sort Algorithm, Live Demo: Working/execution of Insertion Sort, Insertion Sort Analysis, Insertion vs Selection, Quadratic Growth of the Algorithm, Merge Sort, Merge Sort: Working/execution Demo, Merge Sort Code Explanation, Merge Sort Analysis, Quadratic vs Linear Arithmetic, Sort 'Race', Quick Sort Idea

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

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