OpenCourse: Programming Abstractions / Stanford

2009年9月1日

Stanford School of Engineering - Stanford Engineering Everywhere

「Programming Abstractions」コースはスタンフォード大学が公開している講座です。「Programming Methodology」コースの上級版にあたります。C++言語を用いて、再帰的呼び出し、解析アルゴリズム、抽象化、スタックやキューなどの基本的なデータ構造などを学習します。

コースの詳しい内容やハンドアウトなどの関連資料は、「Stanford School of Engineering - Stanford Engineering Everywhere」のページから参照できます。

Lecture 1 | Programming Abstractions Lecture 1 | Programming Abstractions - YouTube
About the CS106 Series at Stanford
Lecture 2 | Programming Abstractions Lecture 2 | Programming Abstractions - YouTube
Similarity between C++ & Java: - syntax - variable types - operators - control structures
Lecture 3 | Programming Abstractions Lecture 3 | Programming Abstractions - YouTube
C++ Libraries - Standard Libraries
Lecture 4 | Programming Abstractions Lecture 4 | Programming Abstractions - YouTube
C++ Console I/O, C++ File I/O, Stream Operations
Lecture 5 | Programming Abstractions Lecture 5 | Programming Abstractions - YouTube
Client Use of Templates, Vector Class, Vector Client Interface
Lecture 6 | Programming Abstractions Lecture 6 | Programming Abstractions - YouTube
More Containers, Map Class, Uses of Map, Map Client Interface
Lecture 7 | Programming Abstractions Lecture 7 | Programming Abstractions - YouTube
Seeing Functions as Data: Specific Plot Functions, Generic Plot Function, Back to the Set
Lecture 8 | Programming Abstractions Lecture 8 | Programming Abstractions - YouTube
Common Mistakes Stumbled Upon: 'I'terator, Common Mistakes Stumbled Upon: Concatenating Strings, Solving Problems Recursively, Functional Recursion
Lecture 9 | Programming Abstractions Lecture 9 | Programming Abstractions - YouTube
Thinking Recursively, Procedural vs Functional - Recursion, Fractal Code
Lecture 10 | Programming Abstractions Lecture 10 | Programming Abstractions - YouTube
Refresh: Permute Code, Tree of Recursive Calls
Lecture 11 | Programming Abstractions Lecture 11 | Programming Abstractions - YouTube
Backtracking Pseudocode, Sudoku Solver, Sudoku Code, Cryptarithmetic, Dumb Solver, Smarter Solver, Looking for Patterns
Lecture 12 | Programming Abstractions Lecture 12 | Programming Abstractions - YouTube
Pointer Movie, Pointer Operations: Code & Pointer Memory Diagrams, Pointer Basics, Pointer and Dynamic Arrays, Use of Pointers
Lecture 13 | Programming Abstractions Lecture 13 | Programming Abstractions - YouTube
Coding with Linked List, Printing the List, Using Recursion to Print List, De-allocating the Memory Used for the Linked List
Lecture 14 | Programming Abstractions Lecture 14 | Programming Abstractions - YouTube
Algorithm Analysis, Evaluating the Performance, Analysis of Codes: Statement Counts
Lecture 15 | Programming Abstractions Lecture 15 | Programming Abstractions - YouTube
Selection Sort, Live Demo: Working/execution of the Code, Selection Sort Analysis, Insertion Sort Algorithm
Lecture 16 | Programming Abstractions Lecture 16 | Programming Abstractions - YouTube
Partitioning for Quicksort, Quicksort Code Working/execution, Quicksort Code
Lecture 17 | Programming Abstractions Lecture 17 | Programming Abstractions - YouTube
Sort Template with Callback, Supplying the Callback Function, One Last Convenience: Default Callback Function, Why Object Oriented Programming
Lecture 18 | Programming Abstractions Lecture 18 | Programming Abstractions - YouTube
Abstract Data Types, Wall of Abstraction, Why ADTs?
Lecture 19 | Programming Abstractions Lecture 19 | Programming Abstractions - YouTube
Rules of Template Implementation, Explanation of the Working, Not Allow Member Wise Copy, InsertAt Function
Lecture 20 | Programming Abstractions Lecture 20 | Programming Abstractions - YouTube
Live Coding: Recap of the Vector-based Implementation for Stack, Linked List Implementation for Stack, Live Coding: Linked List Implementation for Stack, Analyzing Push/pop Functions, Queue Implementation
Lecture 21 | Programming Abstractions Lecture 21 | Programming Abstractions - YouTube
Buffer: Vector vs Stack, Buffer as Linked List, Cursor Design, Use of Dummy Cell, Linked List Insert/delete, Linked List Cursor Movement
Lecture 22 | Programming Abstractions Lecture 22 | Programming Abstractions - YouTube
Map as Vector, A different Strategy: Binary Search Tree, Trees in General, Binary Search Tree for Numbers, Operating on Trees, Tree Traversals at Work
Lecture 23 | Programming Abstractions Lecture 23 | Programming Abstractions - YouTube
Pathfinder Demo, Graphs: Examples, Graphs: Explanation, Implementation Strategies, Graph Representation in C++, Nodes and Arcs in C++, Graph Traversals
Lecture 24 | Programming Abstractions Lecture 24 | Programming Abstractions - YouTube
Compare Map Implementations, Hashtable Idea, Hash Functions, Hash Collisions
Lecture 25 | Programming Abstractions Lecture 25 | Programming Abstractions - YouTube
Lexicon Case Study, Lexicon as Sorted Vector, Lexicon as BST, Lexicon as Hash Table, Summary so Far, Noticing Patterns/repetitions in the Words
Lecture 26 | Programming Abstractions Lecture 26 | Programming Abstractions - YouTube
Final Showdown, Thinking About Design, Runtime Performance, Memory Used, Code Complexity, Making Tradeoffs, Array vs Vector, Stack/Queue vs Vector
Lecture 27 | Programming Abstractions Lecture 27 | Programming Abstractions - YouTube
Guest Lecturer: Keith Schwarz, About the C++ Language, Quick History of C++, C++ Philosophy, C++ Without genlib.h, A Working genlib.h Replacement

関連記事 on Publickey

あわせて読みたい

働き方 OpenCourse




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本