Learning outcomes of the course unit
Interaction with the computer takes place in a variety of ways: when the
behaviour to be obtained is simple or already coded, it is possible to use simple and intuitive formalisms. For more sophisticated types of communication, formalisms with a strong expressive power must be applied. Programming languages offer an extensive range of notations for the specification of the behaviours required of a computer. The study of programming languages is fascinating and also important. In the first place because the study of the
fundamental principles (values, links, control, abstraction,
encapsulation, objects, modules, non-determinism, types, ...) and their realisation in the various languages (C, C++, Fortran, Pascal, OCaml, Java, Python, ...) help students understand what really counts in the choice of a programming language, above and beyond the "fashion" of the moment.. In the second place, because the comparative study of languages leads to a refining of ability and programming style no matter what languages are given major weight in a given moment of our professional life. Last but not least, more often than we realise, the solution to a computer science problem is arrived at through the definition of a language and the realisation of a "machine" that interprets it.
Fundamentals of computer science, Fundamentals of programming.
Course contents summary
Description of programming languages.
Names and environment.
Control structures and abstractions.
Data structures and abstractions.
|M. Gabbrielli e S. Martini.
Linguaggi di programmazione: principi e paradigmi, Prima edizione. McGraw-Hill Italia, 2006.
Individual or group projects followed by an interview. Alternatively, an oral examination