88145 - Fundamentals of Computer Programming P1

Academic Year 2020/2021

  • Moduli: Andrea Acquaviva (Modulo 1) Andrea Acquaviva (Modulo 2)
  • Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
  • Campus: Bologna
  • Corso: First cycle degree programme (L) in Mechatronics Engineering (cod. 9250)

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
  • 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. Cross-compilation exercises will also be performed on Arduino.

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