Skip to content

Latest commit

 

History

History
30 lines (24 loc) · 2.03 KB

README.md

File metadata and controls

30 lines (24 loc) · 2.03 KB

CS107: Programming Paradigms

CS107 - Programming Paradigms from Stanford Engineering Everywhere

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.

View notes on Github Pages

Contents

  1. Programming Paradigms
  2. C Programming
  3. C Pointer
  4. Generic Pointer
  5. Generic Data Structure
  6. Generic Function
  7. Memory Management
  8. Stack and Heap
  9. Assembly Language
  10. Activation Record and Return Value
  11. C++ and C, Reference and Pointer
  12. Preprocessor and Macro
  13. Compile and Linking
  14. More Assembly
  15. Tick Agent: Going to concurrency.
  16. Semaphore: More examples.
  17. Dining Philosophers: More examples.
  18. IceCream Store Simulation: The most complicated example.