1
CS106B: Programming Abstractions (Stanford Univ.). Instructor: Professor Julie Zelenski.
749 years, 11 months
27
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. 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. (from see.stanford.edu)
Course Currilcum
- Lecture 01 – The CS106 Philosophy, Why take CS106B?, Introducing C++ Unlimited
- Lecture 02 – The Similarities between C++ and Java, Looking at an Example C++ Code Unlimited
- Lecture 03 – C++ Libraries, C++ Basics – Strings, Operators Unlimited
- Lecture 04 – C++ Console I/O, C++ File I/O, Stream Operations Unlimited
- Lecture 05 – Client Use of Classes and Templates Unlimited
- Lecture 06 – More Containers, Map Class, Set Class Unlimited
- Lecture 07 – Seeing Functions as Data: Specific Plot Functions, Client Callback Function Unlimited
- Lecture 08 – Solving Problems Recursively, Functional Recursion, Example of Recursion Unlimited
- Lecture 09 – Thinking Recursively, Fractal Code, Mondrian Art, Hanois Towers Unlimited
- Lecture 10 – Procedural Recursion, Permute Code, Recursive Backtracking Unlimited
- Lecture 11 – Backtracking Pseudocode, Looking for Patterns, Introduction to Pointers Unlimited
- Lecture 12 – Pointer Operations, Pointer Basics, Pointer and Dynamic Arrays, Recursive Data Unlimited
- Lecture 13 – Introduction to Linked List, Coding with Linked List, Discussing Recursive Data Unlimited
- Lecture 14 – Algorithm Analysis, Evaluating the Performance, Big-O Notation Unlimited
- Lecture 15 – Selection Sort, Insertion Sort, Merge Sort Unlimited
- Lecture 16 – Partitioning for Quicksort, Different Input Scenarios, Functional Templates Unlimited
- Lecture 17 – Sort Template with Callback, Class Division, Storage for Objects Unlimited
- Lecture 18 – Abstract Data Types, Creating the Vector Class, Private Data Members Unlimited
- Lecture 19 – Rules of Template Implementation, Explanation of the Working, Stack Class Unlimited
- Lecture 20 – Stack Implementations, Queue Implementation, Text Editor Case Study Unlimited
- Lecture 21 – Buffer: Vector vs Stack, Cursor Design, Linked List Insert/delete Unlimited
- Lecture 22 – Map as Vector, Trees in General, Binary Search Tree for Numbers Unlimited
- Lecture 23 – Pathfinder Demo, Graphs: Explanation, Graph Representation in C++ Unlimited
- Lecture 24 – Hashtable Idea, Hash Functions, Hash Table Performance Unlimited
- Lecture 25 – Lexicon Case Study, Lexicon as Sorted Vector, Lexicon as BST Unlimited
- Lecture 26 – General Review of the Course, Thinking About Design Unlimited
- Lecture 27 – Guest Lecturer: Keith Schwarz, About the C++ Language Unlimited