Introduction to Programming

Semester:
1st
Course Type:
Compulsory courses (YM)
Track:
-
Code:
Κ04
ECTS:
7
TEACHING HOURS per week
Theory:
3
Seminar:
1
Laboratory:
2
Specializations
Foundations of Computer Science (S1):
-
Data and Knowledge Management (S2):
-
Software (S3):
-
Hardware and Architecture (S4):
-
Communications and Networking (S5):
-
Signal and Information Processing (S6):
-
Related Courses
Course Content

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.

LITERATURE AND STUDY MATERIALS - READING LIST
  •  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.