About
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.
Course Homepage: [[http://see.stanford.edu/see/courseInfo.aspx?coll=11f4f422-5670-4b4c-889c-008262e09e4e]]
Course features at Stanford Engineering Everywhere page: *Programming Abstractions *Lectures *Syllabus *Handouts *Assignments *Exams
Related categories
Uploaded videos:
Lecture 1: About the CS106 Series at Stanford
Nov 15, 2010
·
10792 Views
Lecture 2: Similarity between C++ & Java: - syntax - variable types - operators ...
Nov 15, 2010
·
6499 Views
Lecture 3: C++ Libraries - Standard Libraries
Nov 15, 2010
·
6512 Views
Lecture 4: C++ Console I/O
Nov 15, 2010
·
4185 Views
Lecture 5: Client Use of Templates
Nov 15, 2010
·
2883 Views
Lecture 6: More Containers
Nov 15, 2010
·
2559 Views
Lecture 7: Seeing Functions as Data: Specific Plot Functions
Nov 15, 2010
·
2715 Views
Lecture 8: Common Mistakes Stumbled Upon: 'I'terator
Nov 15, 2010
·
2887 Views
Lecture 9: Thinking Recursively
Nov 15, 2010
·
3276 Views
Lecture 10: Refresh: Permute Code
Nov 15, 2010
·
2653 Views
Lecture 11: Backtracking Pseudocode
Nov 15, 2010
·
3612 Views
Lecture 12: Pointer Movie
Nov 15, 2010
·
2681 Views
Lecture 13: Coding with Linked List
Nov 15, 2010
·
4871 Views
Lecture 14: Algorithm Analysis
Nov 15, 2010
·
5640 Views
Lecture 15: Selection Sort
Nov 15, 2010
·
2885 Views
Lecture 16: Partitioning for Quicksort
Nov 15, 2010
·
2381 Views
Lecture 17: Sort Template with Callback
Nov 15, 2010
·
2268 Views
Lecture 18: Abstract Data Types
Nov 15, 2010
·
2432 Views
Lecture 19: Rules of Template Implementation
Nov 15, 2010
·
2172 Views
Lecture 20: Live Coding: Recap of the Vector-based Implementation for Stack
Sep 01, 2010
·
2507 Views
Lecture 21: Buffer: Vector vs Stack
Nov 15, 2010
·
2576 Views
Lecture 22: Map as Vector
Nov 15, 2010
·
2146 Views
Lecture 23: Pathfinder Demo
Nov 15, 2010
·
2338 Views
Lecture 24: Compare Map Implementations
Nov 15, 2010
·
2327 Views
Lecture 25: Lexicon Case Study
Nov 15, 2010
·
2301 Views
Lecture 26: Final Showdown
Nov 15, 2010
·
2040 Views
Lecture 27: C++ Programming Language
Nov 15, 2010
·
29765 Views