00819 - Programming (CL.B)

Course Unit Page

Academic Year 2020/2021

Learning outcomes

During the course, the student will acquire the basic skills for understanding the logical structure of algorithms and will learn ho to develop code in C programming language.

Course contents

Introduction. Basics of program writing. The main constructs of C.Variables, data types, expressions, standard input/output, decision and control statements, arrays, strings, functions, variable scope, structures, pointers and file input/output. Design techniques and modularisation. The role of design in the development of solutions to problems. Top down structured design. Algorithms and dynamic data structures. An outline will be given of the role of standard algorithms and dynamic data structures (linked lists, heap, queue, recursion).


Brian W. Kernighan, Dennis M. Ritchie. Linguaggio C. Jackson libri.

Teacher's slides.

Teaching methods

Traditional lecture, practical class.


ATTENTION. Due to the Covid-19 emergency all lectures will be held with either online-only or blended classes (some students in the classroom and the rest online). Please check on the class timetable which lectures are online-only or blended.


Assessment methods

The coursework consists of four incremental programming assignments of varying difficulty. Marks will be awarded for working programs which meet the specifications, simple and clear programming style, and internal documentation. The exam consists in a written and oral part. All details are available on the course webpage.

Teaching tools

This course unit will not follow any book exactly but will provide printed notes of all slides used during the lectures. The course material is available on the course webpage.

Office hours

See the website of Pietro Di Lena

See the website of Alessandra Lumini