Time of classes:

Tuesday 12:00-14:00, (IK-103)

Lab exercises and solutions

Lesson 1: lesson01.pdf (les1_ex1.c)

Lesson 2: lesson02.pdf (les2.zip)

Lesson 3: lesson03a.pdf (les3.zip)

Lesson 4: lesson04.pdf (les4.zip)

Lesson 5: lesson05.pdf (les5.zip)

Lesson 6: lesson06 ()

Practice Lesson: Sample Test: sample_test ()

more practice exercises: https://adriann.github.io/programming_problems.html

Lesson 7: lesson7 ()

Lesson 8: lesson8 ()

Lesson 10: lesson9 ()

Lesson 12 zh2_sample ()

Criteria to pass course

  • Students must not miss more than 3 classes in the semester
  • Students must not late more than 20 minutes from classes. In the opposite case the student is registered as being absent from the class (However (s)he is still allowed to stay in the class).
  • The knowledge of the students will be measured in two tests and at the end of the semester the worse from these two can be retaken
  • Students pass a test if their result is not lower then 50%.
  • Students get signature if they pass 2 tests and the average of these two tests is not lower than 60%.
  • If a student fails both the first and the second test, (s)he can retake the worse exam with special conditions. Namely the average of the retake exam, and the better exam from the first two, has to reach 60%.
  • If both tests are under 30% the student has to get at least 90% on the retake to pass.
  • There is only one retake test in the semester.

exam 1: 60%, exam 2: 60% -> passed, no retake exam is needed
exam 1: 60%, exam 2: 40% -> 60% is needed on retake. retake exam: 75% -> passed
exam 1: 90%, exam 2: 30% -> 50% is needed on retake. retake exam: 40% -> failed
exam 1: 20%, exam 2: 20% -> 90% is needed on retake. retake exam: 92% -> passed
exam 1: 20%, exam 2: 40% -> 80% is needed on retake. retake exam: 75% -> failed

Note that if a student fail only one test and pass the other the result on the retake has to be at least 50% no matter of the result of the passed test. (See the 3rd example above.)

Syllabus (the topics may shift in time)

Practice 1. Modelling, Linux basics, “Hello world” Structure of the C language, printf(), scanf() Practice 2. Control sequences in C (if, switch, while, do-while, for)Practice 3. C operators and expressions, static arrays in C, /, % Practice 4. Sort and search Practice 5. FILE pointers, FILE I/O Practice 6. First practice exam. Practice 7. Functions and “procedures”, pointers Practice 8. Strings in C Practice 9. The linked list Practice 10. More about linked lists Practice 11. Binary tree Practice 12. Second practice exam Practice 13. See results. Practice 14. Third practice exam.

Recommended reading:

Kernighan, Brian W.; Dennis M. Ritchie (February 1978). The C Programming Language

Basic C tutorials