1

CS107: Programming Paradigms (Stanford Univ.). Taught by Professor Jerry Cain,

FREE
This course includes
Hours of videos

749 years, 11 months

Units & Quizzes

27

Unlimited Lifetime access
Access on mobile app
Certificate of Completion

this course introduces several programming languages, including C, Assembly, C++, Concurrent Programming, Scheme, and Python. The class aims to teach students how to write code for each of these individual languages and to understand the programming paradigms behind these languages. Topics: 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#. (from see.stanford.edu)

Course Currilcum

  • Lecture 01 – Introduction Unlimited
  • Lecture 02 – C/C++ Data Types – Interpretations, Sizes, Bits Unlimited
  • Lecture 03 – Converting Between Types of Different Sizes and Bit Representations Unlimited
  • Lecture 04 – Generic Swap Function, Swapping Pointers, Generic Linear Search Unlimited
  • Lecture 05 – Generic Linear Search, C Stack Unlimited
  • Lecture 06 – Stack Implementation Unlimited
  • Lecture 07 – Problems with Ownership of Memory Unlimited
  • Lecture 08 – Heap Management, Stack Segment Unlimited
  • Lecture 09 – How a Code Snippet is Translated into Assembly Instructions Unlimited
  • Lecture 10 – More Detail about Activation Records – Layout of Memory During a Function Call Unlimited
  • Lecture 11 – Moving from C Code Generation to C++ Code Generation: Basic Swap Example Unlimited
  • Lecture 12 – Preprocessing Commands, Preprocessing Macros Unlimited
  • Lecture 13 – Review of Compilation Process of a Simple Program Unlimited
  • Lecture 14 – Several code examples, Sequential Programming Vs. Concurrent Programming Unlimited
  • Lecture 15 – Transitioning from Sequential Programming to Concurrent Programming Unlimited
  • Lecture 16 – Review of Semaphore Syntax, Using Semaphores, Dining Philosopher Problem Unlimited
  • Lecture 17 – Review of the Dining Philosopher Problem, Practical Applications of Threading Unlimited
  • Lecture 18 – The Ice Cream Store Problem Unlimited
  • Lecture 19 – Introduction to the Functional Paradigm (Scheme) Unlimited
  • Lecture 20 – Scheme Programming Language: Recursive Flatten Function Unlimited
  • Lecture 21 – Scheme Programming Language: The Kawa Development Environment, Functions Unlimited
  • Lecture 22 – Scheme Programming Language: Several Detailed Code Examples Unlimited
  • Lecture 23 – Scheme Programming Language: Memory Model, Code Examples Unlimited
  • Lecture 24 – Overarching Features of Python: Scripting Language, Python Environment Unlimited
  • Lecture 25 – How Objects Are Implemented in Python, Python Dictionary Implementation Unlimited
  • Lecture 26 – XML Processing and Python – Two Different XML Processing Models Unlimited
  • Lecture 27 – Guest Lecturer: Sasha Rush, Haskell Programming Language Unlimited