Fundamentals of Programming 2
Learning materials for the Fundamentals of Programming 2 course.
Be warned, that published here lecture notes were not reviewed and despite my best efforts may contain errors!
Lectures
Formal Description of The Course
- Pointers And Dynamically Allocated Variables --- handout
- Recursion, Divide-And-Conquer --- handout
- Stack And Queue --- handout
- Singly Linked And Doubly Linked Lists --- handout
Literature and other resources
Primary Literature:
- Brian W. Kernighan, Denis M. Ritchie, “The C Programming Language”, Second Edition, Prentice-Hall Inc., Upper Saddle River, 2012
- Stephen Prata, “C Primer Plus”, 6th Edition, Addison-Wesley, Upper Saddle River, 2015
- Zed A. Shaw, “Learn C the Hard Way: Practical Exercises on the Computational Subjects You Keep Avoiding (Like C)”, Addison-Wesley, Upper Saddle River, 2016
- Jon Bentley, “Programming Pearls” Addison-Wesley, Inc., Upper Saddle River, 2000
- Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman, “Data Structures and Algorithms”, Addison-Wesley Inc., Upper Saddle River, 1987
Additional Literature:
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, “Introduction to Algorithms”, 3rd edition, MIT Press, Cambridge US, 2009
- Donald E. Knuth, “The Art of Programming”, Vol. 1 -3, Addison-Wesley Inc., Reading, Massachusetts, 2011
- Robert Sedgewick, Kevin Wayne, “Algorithms”, 4th edition, Addison-Wesley Inc., Reading, Massachusetts, 2011
- Steven S. Skiena, “The Algorithm Design Manual”, Springer-Verlag, London, 2008
- Jens Gustedt, "Modern C", Manning, New York, 2020 (online: https://gustedt.gitlabpages.inria.fr/modern-c/)
Source Code:
- Source code of example programs from the first lecture (pointers and dynamically allocated variables)
- Source code of example programs from the second lecture (recursion, divide-and-conquer)
- Source code of example programs from the third lecture (stack and queue)
- Source code of example programs from the fourth lecture (singly linked and doubly linked lists)