Lectures
- 1. Introduction
- 2. C and C++ Data Types
- 3. Structs, Arrays, Pointers
- 4. Generics, Swapping Pointers, Generic Linear Search
- 5. Comparison Function, C Data Structures
- 6. Stack Implementation
- 7. Stack Implementation (cont)
- 8. Heap Management
- 9. Assembly Instructions
- 10. Activation Records
- 11. C++ Code Generation
- 12. Preprocessing Commands
- 13. Compilation Process
- 14. Sequential Programming Vs. Concurrent Programming
- 15. Concurrent Programming, Semaphore
- 16. Semaphore Usage
- 17. Dining Philosopher Problem, Threading
- 18. Ice Cream Store Problem
- 19. Functional paradigm, Scheme programming language
- 20. Scheme, Flatten Function
- 21. Kawa Development Environment, Mapping Functions
- 22. Lambda Mapping Function, Permutation Function
- 23. Scheme Memory Model
- 24. Python
- 25. Python dictionary
- 26. XML and Python
- 27. Haskell programming language
Programming Paradigms
Course Summary
This course is based on CS107 Programming Paradigms made available by Stanford University: Stanford Engineering Everywhere under the Creative Commons Attribution 3.0 license.
This course covers 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++). There will also be brief surveys of other modern languages such as Python, Objective C, and C#.
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.
Reading Material
Not available.Course Material
1. Programming AssignmentsAssignment | Instructions | Starter Code | FAQ's | Distributed |
1. RSG | 04-Assignment-1-RSG.pdf | 1-rsg.zip 1-rsg-data.zip |
Lecture 2 | |
2. Six Degrees | 09-Assignment-2-Six-Degrees.pdf | 2-six-degrees.zip 2-six-degrees-data.zip |
09b-Assignment-2-Six-Degrees-FAQs.pdf | Lecture4 |
3. vector and hashset | 11-Assignment-3-Vector.pdf | 3-vector-hashset.zip 3-vector-hashset-data.zip |
11b-Assignment-3-Vector-FAQs.pdf | Lecture 7 |
4. RSS | 17-Assignment-4-RSS.pdf | 4-rss-news-search.zip 4-rss-news-search-data.zip 4-rss-news-search-expat.zip 4-rss-news-search-lib.zip |
17b-Assignment-4-RSS-FAQs.pdf | Lecture 10 |
5. Raw Memory | 19-Assignment-5-Raw-Memory.pdf | 5-raw-memory.zip | 19S-Assignment-5-Solution.pdf | Lecture 12 |
6. RSS Revisited | 27-Assignment-6-RSS-Revisited.pdf | 6-rss-news-search.zip 6-rss-news-search-lib.zip |
27b-Assignment-6-RSS-Revisited-FAQs.pdf | Lecture 17 |
7. Where am I? | 34-Assignment-7-Where-Am-I.pdf | 7-where-am-i.zip | 34b-Assignment-7-Where-Am-I-FAQs.pdf | Lecture 21 |
8. Python | 36-Assignment-8-Python.pdf | 8-align.zip | Lecture 24 |
2. Sample exam questions and solutions
Practice Midterm | Questions | Solutions |
Midterm | Questions | Solutions |
Practice Final | Questions | Solutions |
Other Resources
Not available.Software
Not available.Discussion Forum
For discussion on this topic, please go to the relevant forum for Programming Paradigms. Click the button below to open the forum page in a new window.