Programming in C I, Fall 2017
Jacobs University Bremen, Fall 2017, Kinga Lipskoch and Xu He
Class sessions: Thursdays and Fridays 14:15 – 18:30, Seminar Room in Research V
Course description: This course offers an introduction to programming using the programming language C. After a short overview of the program development cycle (editing, preprocessing, compiling, linking, executing), the course presents the basics of C programming. It covers fundamental procedural programming components and constructs as well as simple algorithms in a hands-on manner. After learning the concepts of data types, variables, operators and basic data structures, programming constructs like branching, iterations, and data structures like multidimensional arrays, structures, and pointers are presented. The course also gives an introduction into recursive functions, file handling and dynamic memory allocation. Finally, it includes programming assignments, which can be solved during lab sessions under the supervision of teaching assistants. This is a lab course with a lecture part and a practical lab part.
References (optional but recommended, the online lecture slides suffice)
Brian W. Kernighan, Dennis M. Ritchie: The C Programming Language, Prentice Hall PTR, 2nd edition, 1988
TAs: Alexandru Sasu and Leul Abiy Shiferaw
Grading: Assignments 35% + Final Exam 65%
Any programs which have to be written will be evaluated based on the following criteria:
- correctness including proper handling of error conditions
- proper use of programming language constructs
- clarity of the program organization and design
- readability of the source code and any output produced
TAs will grade your homework according to these grading criteria.
Final Exam:
Date: Saturday, 14th of October, 2017
Time: 10:00 - 12:00 (in the morning)
Location: Conference Hall, IRC
Sample Exam: practice_sheet
Schedule (course materials will be updated as we go along)
Date | Topics | Lecture Slides | Assignment |
2017-09-14 | Introduction, Variables, Assignments, Using printf | Lecture_12 | Assignment_1 |
2017-09-15 | Pointers, Array, Reading from the keyboard | Assignment_2 | |
2017-09-21 | Casting, Booleans, Branching and looping instructions, Arrays | Lecture_34 | Assignment_3 |
2017-09-22 | Functions, Scope, Parameters by value and reference, String functions | Assignment_4 | |
2017-09-28 | Arrays, Functions, Dynamic memory allocation, Multi-dimensional arrays | Lecture_56 | Assignment_5 |
2017-09-29 | Recursive functions, Handling files | Practice_sheet | Assignment_6 |