Fundamentals of Programming 1
Learning materials for the Fundamentals of Programming 1 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
- Introduction --- handout
- Basics of the C Language --- handout
- Flow of Control --- handout
- Functions --- handout
- Enumerations and Linear Arrays --- handout
- Algorithms for Linear Arrays --- handout
- Strings of Characters --- handout
- Multidimensional Arrays --- handout
- Structures And Unions --- 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
- Paul Deitel, Harvey Deitel, "C How to Program", 8th Edition, Pearson Education Inc., Hoboken, NJ, 2015
- Jon Bentley, "Programming Pearls" Addison-Wesley, Inc., Upper Saddle River, 2000
- Steven S. Skiena, "The Algorithm Design Manual", Springer-Verlag, Londyn, 2020
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 -4A, Addison-Wesley Inc., Reading, Massachusetts, 2011
- Robert Sedgewick, Kevin Wayne, “Algorithms”, 4th edition, Addison-Wesley Inc., Reading, Massachusetts, 2011
- Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman, "Data Structures and Algorithms", Addison-Wesley Inc., Upper Saddle River, 1987
- 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 third lecture (control statements)
- Source code of the example program from the fourth lecture (functions)
- Source code of the example program from the fifth and sixth lectures (enumerations and linear arrays, algorithms for linear arrays)
- Source code of example programs from the eight lecture (multidimensional arrays)
- Source code of example programs from the ninth lecture (structures and unions)