15305 - Foundations of Informatics A

Academic Year 2020/2021

  • Docente: Sara Montagna
  • Credits: 9
  • SSD: ING-INF/05
  • Language: Italian
  • Moduli: Sara Montagna (Modulo 1) Roberto Casadei (Modulo 2)
  • Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
  • Campus: Cesena
  • Corso: First cycle degree programme (L) in Electronics Engineering for Energy and Information (cod. 8767)

    Also valid for First cycle degree programme (L) in Biomedical Engineering (cod. 9082)

Learning outcomes

By the end of the course, students will have basic knowledge about computation, structured programming, and data structures and algorithms. In particular, he/she will be able to: design basic algorithms to manipulate data structures, implement such algorithms and simple applications in a modern programming language.

Course contents

Computer architectures: the Von Neumann architecture; structure of a CPU.

Representation of information: boolean logic; representation of numbers (two's complement notation; floating point representation; representation of non-numerical information.

Introduction to algorithms and data structures: the concept of algorithm with examples; asymptotic analysis; basic data structures.

The C programming language: structure of C programs: types, operators, expressions, functions, control structures and loops; structured programming; iteration and recursion; arrays and pointers; array algorithms (inversion, sorting, linear search, binary search).

Readings/Bibliography

Textbook:

  • Paul J. Deitel, Harvey M. Deitel, "Il linguaggio C: fondamenti e tecniche di programmazione", 8/ed. Pearson, ISBN 978-8891901651

Additional material will be provided by the instructor.

For further study of general topics:

  • J. Glenn Brookshear, “Informatica—una panoramica generale”, 11/ed., Pearson 2012, ISBN 978-8871927671

For further study of the C programming language:

  • Brian W. Kernighan and Dennis M. Ritchie, "The C Programming Language, Second Edition" Prentice Hall, Inc., 1988. ISBN 0-13-110362-8 (paperback), 0-13-110370-9 (hardback).

Teaching methods

Approximately 7 hours of classes each week, typically 4/5 theoretical contents and 2/3 with practical exercises. The fundamental topics of computer science, and the various programming costructs are introduced during the lectures. Then, the same concepts are applied in the practical exercises through a set of small programming assignments under the supervision of the instructors. The solution of every programming exercise is provided after the lab sessions, in order to support self-study. Some of the lab sessions will be used to simulate the final exam.

Assessment methods

The final assessment is done by means of a written examination composed of exercises and questions on the topics of the course, and if needed, an oral examination. The aim of the examination is to assess the learning outcomes; mainly, logic and algorithmic reasoning capabilities, and analysis and synthesis of C programs.

Teaching tools

Students will be given also teaching material prepared by the teacher (mainly slides, lecture notes and resources on the web, exercises and problems).

Office hours

See the website of Sara Montagna

See the website of Roberto Casadei