Education For All

Text size
  • Increase font size
  • Default font size
  • Decrease font size


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 Assignments
Assignment Instructions Starter Code FAQ's Distributed
1. RSG 04-Assignment-1-RSG.pdf
Lecture 2
2. Six Degrees 09-Assignment-2-Six-Degrees.pdf
09b-Assignment-2-Six-Degrees-FAQs.pdf Lecture4
3. vector and hashset 11-Assignment-3-Vector.pdf
11b-Assignment-3-Vector-FAQs.pdf Lecture 7
4. RSS 17-Assignment-4-RSS.pdf
17b-Assignment-4-RSS-FAQs.pdf Lecture 10
5. Raw Memory 19-Assignment-5-Raw-Memory.pdf 19S-Assignment-5-Solution.pdf Lecture 12
6. RSS Revisited 27-Assignment-6-RSS-Revisited.pdf
27b-Assignment-6-RSS-Revisited-FAQs.pdf Lecture 17
7. Where am I? 34-Assignment-7-Where-Am-I.pdf 34b-Assignment-7-Where-Am-I-FAQs.pdf Lecture 21
8. Python 36-Assignment-8-Python.pdf Lecture 24

2. Sample exam questions and solutions
Practice Midterm Questions Solutions
Midterm Questions Solutions
Practice Final Questions Solutions

Other Resources

Not available.


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.




Chinese (Simplified) French German Italian Japanese Korean Portuguese Russian Spanish
More educational resources: