- Docente: Alessandro Bevilacqua
- Credits: 3
- SSD: ING-INF/05
- Language: Italian
- Teaching Mode: Traditional lectures
- Campus: Cesena
- Corso: First cycle degree programme (L) in Electronics Engineering (cod. 6670)
Learning outcomes
Upon completion of the course, the student will have a working knowledge of algorithms and advanced computer programming (in particular: imperative and structured programming) in the C programming language. The student will be able to design, implement and structure iterative and recursive algorithms, advanced data structures (lists) and manage standard I/O (files).
Course contents
Introduction to advanced algorithms and data structures: recursive algorithms and complexity analysis; advanced data structures (lists, trees).
The C programming language: advanced programming aspects: iteration and recursion; algorithms on lists (insertion, deletion, search, sorting); I/O and data persistence on file. Compiling and linking of modules from command line.
Readings/Bibliography
- Paul J. Deitel, Harvey M. Deitel, "Il linguaggio C: fondamenti e tecniche di programmazione", 8/ed, Pearson, ISBN 978-8891901651
Further materials will be provided by the professor.
For further topics on the theory and fundamentals of informatics:
- Brookshear, J. Glenn. Computer science: an overview. Boston: Addison-Wesley, 2012.
For further topics on 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
The teaching method consists of lectures, which cover the theorical and practical aspects of computer science and programming, accompanied by computer exercise.
Assessment methods
The course exam consists of a written/practical test with practical exercises to be carried out on the computer in the C programming language. The student will be asked to generate and implement an algorithm. The project must be divided into two modules, the first containing the main flow of the program, and the second the single functions developed. The exam is structured to assess the achievement of the learning objectives, and in particular, the ability to reason in logical and algorithmic terms and the skills in analyzing, designing, implementing, and structuring programs in the C language.
Teaching tools
Materials to facilitate learning, including slides, lecture notes, and exercises will be provided. Laboratory classes will support practice. Tutoring will be provided to support learning throughout the coursework.
Office hours
See the website of Alessandro Bevilacqua
SDGs

This teaching activity contributes to the achievement of the Sustainable Development Goals of the UN 2030 Agenda.