88145 - Fundamentals of Computer Programming P1

Academic Year 2021/2022

  • Teaching Mode: Traditional lectures
  • Campus: Bologna
  • Corso: First cycle degree programme (L) in Mechatronics (cod. 5818)

Learning outcomes

The student is introduced to the presentation of the principles, of the project methodologies and of the fundamental tools for the development of computer applications, investigating some classical computational problems, proceeding for each of them to the identification of suitable algorithms, implemented in C programming language. The student acquires familiarity and mastery of the topics covered, combining the theoretical-methodological aspects with an intense experimental activity carried out in the laboratory.

Course contents

List of topics:

  • Computer introduction, programming, algorithms, flowcharts, languages and development tools (compilation, linking)
  • Elements of computer architecture and machine language
  • Introduction to the C language - numerical data, variables, constants, identifiers
  • Representation of numerical and alphanumeric data
  • Elementary instructions, flow control and I / O
  • Vectors, strings and matrices
  • Functions and language libraries
  • Aggregate types
  • File management, command line input
  • Main algorithms for searching and sorting on vectors
  • Outline of dynamic allocation and recursion
  • Elements of cross-compilation and programming on embedded devices
  • Principles of operating systems (scheduler, concept of time sharing) and file system management

Readings/Bibliography

  • Kernighan, Ritchie: "ll linguaggio C. Principi di programmazione e manuale di riferimento", Seconda Edizione, Pearson, 2018.
  • H. M. Deitel, P. J. Deitel, "Il linguaggio C. Fondamenti e tecniche di programmazione", Ottava Edizione, Pearson, 2016.

Teaching methods

During the course examples and exercises will be performed in the laboratory. The course involves the use of an application development environment in C language mainly for PC

Assessment methods

The evaluation consists of a laboratory test that requires the resolution of a problem by implementing a C program in which it is necessary to demonstrate the ability to actually build an executable program

Teaching tools

C language development environment (e.g. CLion, codelite)


Office hours

See the website of Andrea Acquaviva