About
Advanced memory management features of C and C++; the differences between imperative and object-oriented paradigms. The functional paradigm (using LISP) and concurrent programming (using C and C++). Brief survey of other modern languages such as Python, Objective C, and C#.
Prerequisites: Programming and problem solving at the Programming Abstractions level. Prospective students should know a reasonable amount of C++. You should be comfortable with arrays, pointers, references, classes, methods, dynamic memory allocation, recursion, linked lists, binary search trees, hashing, iterators, and function pointers. You should be able to write well-decomposed, easy-to-understand code, and understand the value that comes with good variable names, short function and method implementations, and thoughtful, articulate comments.
Course Homepage: [[http://see.stanford.edu/see/courseinfo.aspx?coll=2d712634-2bf1-4b55-9a3a-ca9d470755ee]]
Course features at Stanford Engineering Everywhere page: *Programming Paradigms *Lectures *Syllabus *Handouts *Assignments *Exams *Resources
Videos

Lecture 20: Car-Cdr Recursion Problem that Returns the Sum of Every Element in a...
Sep 7, 2010
·
2777 views

Lecture 13: Review of Compilation Process of a Simple Program Into a .O File
Sep 7, 2010
·
3019 views

Lecture 25: Rewriting RSG to Illustrate all Three Paradigms and Lambdas in Pytho...
Sep 7, 2010
·
2615 views

Lecture 19: Imperative/Procedural Paradigms (C) and Object-Oriented Paradigm(C++...
Sep 7, 2010
·
4164 views

Lecture 23: Scheme Memory Model - How Scheme Instructions Synthesize Linked List...
Sep 7, 2010
·
2910 views

Lecture 9 How a Code Snippet is Translated into Assembly Instructions
Sep 7, 2010
·
3042 views

Lecture 17: Review of the Dining Philosopher Problem
Sep 7, 2010
·
3592 views

Lecture 12: Preprocessing Commands - #Define as a Glorified Find and Replace
Sep 7, 2010
·
2609 views

Lecture 26: XML Processing and Python - Two Different XML Processing Models
Sep 7, 2010
·
3451 views

Lecture 6: Integer Stack Implementation - Constructor and Destructor
Sep 7, 2010
·
3603 views

Lecture 3: Converting Between Types of Different Sizes and Bit Representations U...
Sep 7, 2010
·
4565 views

Lecture 1: Programming Paradigms
Sep 7, 2010
·
13671 views

Lecture 8: Heap Management - How Information about Allocations are Stored in the...
Sep 7, 2010
·
3530 views

Lecture 24: Overarching Features of Python: Scripting Language
Sep 7, 2010
·
5248 views

Lecture 22: Writing a Recursive Power Set Function in Scheme
Sep 7, 2010
·
5049 views

Lecture 2: C/C++ Data Types - Interpretations
Sep 7, 2010
·
17853 views

Lecture 16: Review of Semaphore Syntax
Sep 7, 2010
·
3425 views

Lecture 18: Guest Lecturer
Sep 7, 2010
·
2481 views

Lecture 11: Moving from C Code Generation to C++ Code Generation: Basic Swap Exa...
Sep 7, 2010
·
3765 views

Lecture 15: Transitioning from Sequential Programming to Concurrent Programming ...
Sep 7, 2010
·
2701 views

Lecture 10: More Detail about Activation Records - Layout of Memory During a Fun...
Sep 7, 2010
·
2878 views

Lecture 21: Introduction to the Kawa Development Environment: Evaluation of Expr...
Sep 7, 2010
·
2488 views

Lecture 14: Example in Which Writing Past the End of Array Causes the Return Add...
Sep 7, 2010
·
2634 views