Fundamentals of Programming 1

by Arkadiusz Chrobot published 2019/09/29 21:04:00 GMT+1, last modified 2024-12-20T14:56:11+01:00
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

Grading Rules

Formal description of the course

  1. Introduction --- handout
  2. Basics of the C Language --- handout
  3. Flow of Control --- handout
  4. Functions --- handout
  5. Enumerations and Linear Arrays --- handout
  6. Algorithms for Linear Arrays --- handout
  7. Strings of Characters --- handout
  8. Multidimensional Arrays --- handout
  9. Structures And Unions --- handout

Literature and other resources

Primary Literature:

  1. Brian W. Kernighan, Denis M. Ritchie,  "The C Programming Language", Second Edition, Prentice-Hall Inc., Upper Saddle River, 2012
  2. Stephen Prata, "C Primer Plus", 6th Edition, Addison-Wesley, Upper Saddle River, 2015
  3. 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
  4. Paul Deitel, Harvey Deitel, "C How to Program", 8th Edition, Pearson Education Inc., Hoboken, NJ, 2015
  5. Jon Bentley, "Programming Pearls" Addison-Wesley, Inc., Upper Saddle River, 2000
  6. Steven S. Skiena, "The Algorithm Design Manual", Springer-Verlag, Londyn, 2020

Additional Literature:

  1. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, "Introduction to Algorithms", 3rd edition, MIT Press, Cambridge US, 2009
  2. Donald E. Knuth, "The Art of Programming", Vol. 1 -4A, Addison-Wesley Inc., Reading, Massachusetts, 2011
  3. Robert Sedgewick, Kevin Wayne, “Algorithms”, 4th edition, Addison-Wesley Inc., Reading, Massachusetts, 2011
  4. Alfred V. Aho, John E. Hopcroft, Jeffrey D. Ullman, "Data Structures and Algorithms", Addison-Wesley Inc., Upper Saddle River, 1987
  5. Jens Gustedt, "Modern C", Manning, New York, 2020 (online: https://gustedt.gitlabpages.inria.fr/modern-c/)

Source Code:

  1. Source code of example programs from the third lecture (control statements)
  2. Source code of the example program from the fourth lecture (functions)
  3. Source code of the example program from the fifth and sixth lectures (enumerations and linear arrays, algorithms for linear arrays)
  4. Source code of example programs from the eight lecture (multidimensional arrays)
  5. Source code of example programs from the ninth lecture (structures and unions)

Internet Resources:

The C Language Related:
  1. Wikibooks: C Programming
  2. The GNU C programming tutorial
  3. Learning GNU C
  4. The GNU C Library
Programming Related (in General):
  1. MIT OpenCourseWare
  2. Udacity
  3. Coursea
  4. Computerphile