CS107: Programming Paradigms (Stanford Univ.). Taught by Professor Jerry Cain,
September 25, 2023
English
English [CC]
Description
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 Curriculum
- 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
About the instructor
5
5
Instructor Rating
6
Reviews
4637
Courses
24183
Students
OpenCoursa
Accessible Education for Everyone
OpenCoursa is a free online learning platform dedicated to providing high-quality education to learners worldwide. With courses across a wide range of subjects, we empower individuals to gain new skills and knowledge at no cost. Our mission is to make education accessible to everyone, offering flexible learning opportunities for personal and professional growth.
We are an educational and skills marketplace to accommodate the needs of skills enhancement and free equal education across the globe to the millions. We are bringing courses and trainings every single day for our users. We welcome everyone woth all ages, all background to learn. There is so much available to learn and deliver to the people.
FREE
Hours of videos
749 years, 11 months
Units & Quizzes
Unlimited Lifetime access
Access on mobile app
Certificate of Completion
- For teams of 2 or more users
- 27,000+ fresh & in-demand courses
- Learning Engagement tools
- SSO and LMS Integrations