Fundamentals of Programming 1

by Arkadiusz Chrobot published 2019/09/29 22:04:00 GMT+2, last modified 2025-10-23T15:54:55+02: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

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:

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