ADVANCED PROGRAMMING TECHNIQUES

COURSE OUTLINE

Responsible: Nikolaos Vidakis

1. GENERAL

SCHOOL School of Engineering
ACADEMIC UNIT Department of Electrical and Computer Engineering
LEVEL OF STUDIES Undergraduate
COURSE CODE 0811.7.022.0 SEMESTER 1st
COURSE TITLE Advanced Programming Techniques
INDEPENDENT TEACHING ACTIVITIES
if credits are awarded for separate components of the course
WEEKLY
TEACHING HOURS
CREDITS
3 2
1 1
1 1
Total 5 4
COURSE TYPE
general background, special background, specialised general knowledge, skills development
Specialized knowledge/Core
PREREQUISITE COURSES None
LANGUAGE OF INSTRUCTION and EXAMINATIONS Greek
OFFERED TO ERASMUS STUDENTS Yes (in English) — Winter Semester
COURSE WEBSITE (URL) https://eclass.hmu.gr/courses/ECE203/

2. LEARNING OUTCOMES

Learning outcomes

The course "Advanced Programming Techniques" aims to provide students with the necessary knowledge in medium and large-scale programming, and to deepen their understanding of the C programming language, by examining specific language topics. Special functions of the language will be examined, a brief review of C memory management techniques will be provided, extensive reference to files will be made, and specific topics of compilation, linking multiple files, and elements of multithreaded programming will be discussed.

Upon successful completion of the course, the student will be able to:

  1. Create and compile multi-file programs.
  2. Implement and manipulate complex data structures.
  3. Practice using files in computer storage peripheral units.

Develop parallel processing programs using multithreaded programming.

General Competences
  • Searching, analyzing, and synthesizing data and information using the necessary technologies.
  • Adaptation to new situations.
  • Autonomous work.
  • Teamwork.
  • Generating new research ideas.

3. SYLLABUS

Units of Theoretical Lectures

  • C preprocessor (directives, macros).
  • Special operators and types (bit operators, enumerated types).
  • Pointers and functions (pointers to arrays, arrays of pointers, pointers to pointers, pointers to functions, functions with variable number of arguments, recursion).
  • Dynamic memory allocation and applications (functions, dynamic arrays, lists, trees, graphs).
  • Special compilation topics (command line parameters, programs with multiple files, error handling).
  • Input-output, files (streams, accessing text and binary files).
  • C libraries (string, time, stdlib, etc.).
  • Multithreaded programming (thread creation and usage, mutex, semaphores, etc.).

Laboratory Exercises

Exercises using the C programming language and Dev C++ software and Linux (gcc).

4. TEACHING and LEARNING METHODS - EVALUATION

DELIVERY
Face-to-face, Distance learning, etc.
In-Class Face-to-Face
USE OF INFORMATION AND COMMUNICATIONS TECHNOLOGY
Use of ICT in teaching, laboratory education, communication with students
  • Use of ICT in teaching
  • Use of ICT in laboratory training
  • Use of ICT in communication with students via the e-class electronic platform
TEACHING METHODS
The manner and methods of teaching are described in detail.
Activity Semester workload
Weekly homework exercises 7
Non-guided personal study 40
Laboratory 13
Group workshop activities 8
Lectures 52
Course total 120
STUDENT PERFORMANCE EVALUATION
Description of the evaluation procedure

Language of Assessment: Greek 

Assessment methods:

  • Written final exam with problem solving (75%)
  • Group laboratory work (report and oral examination) (15%)

Weekly homework exercises (10%) Assessment criteria are announced to students at the beginning of the semester and are posted on the course website on eClass.

5. ATTACHED BIBLIOGRAPHY

  • “C: From Theory to Implementation”, G. S. Tselikis and N. D. Tselikas, ISBN: 978-960-93-1961-4.
  • "C Programming in Depth" by N. M. Chatzigiannakis, Klidarithmos Publications, ISBN 978-960-461-715-9. (In Greek)
  • ”Teach Yourself C Programming in 21 Days” by P. Aitken & B. L. Jones, Sams Publications, ISBN 978-067-230-736-2.
  • "Introduction to Data Structures and Algorithms. Implementation in C" by I. Papoutsis, Ath. Stamoulis Publications, ISBN 978-960-351-832-7. (In Greek)