Introduction and history of computers and programming. Computer organization and information representation. Programming languages and software. Procedural programming language principles. Compilation, linking and executing programs. The C programming language. Development environments for C. The compiler gcc. Small C program examples. Types, declarations, variables and constants. Statements, expressions, operators and the assignment. Control flow. The structure of a C program, functions and global variables. The lifetime of a variable, the scope of a declaration. Recursion. Memory addresses, pointers and arrays. Dynamic memory allocation. Strings. Arrays of pointers, pointers to pointers, multidimensional arrays. Pointers to functions. Command line parameters. Enumerations, structures, recursive structures (lists, binary trees), unions, bit fields, user-defined types. Input/Output. File input/output. The Preprocessor and macro definitions. Sorting and searching in arrays. Programming guidelines. Usual bugs when programming in C.
- P. Stamatopoulos, “Introduction to Programming: Lecture Notes” + “Lab Notes”, 2017.
- Brian W. Kernighan, Dennis M. Ritchie. "The C Programming language", Prentice-Hall (Greek Edition), 1988
- Γ. Σ. Τσελίκης, Ν. Δ. Τσελίκας. "C: Από τη Θεωρία στην Εφαρμογή", 3η έκδοση, 2016.
- Νικόλαος Μισυρλής. "Εισαγωγή στον Προγραμματισμό με την C", 3η έκδοση, 2007.
- Νίκος Χατζηγιαννάκης. "Η Γλώσσα C σε Βάθος", 5η έκδοση, εκδόσεις Κλειδάριθμος, 2017.
- Δημήτριος Καρολίδης. "Μαθαίνετε Εύκολα C", 2013.