PROGRAMMING LANGUAGES
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.
Prerequisites
Fundamentals of computer science, Fundamentals of programming.
Course contents summary
Description of programming languages.
Names and environment.
Memory management.
Control structures and abstractions.
Data structures and abstractions.
Recommended readings
M. Gabbrielli e S. Martini. Linguaggi di programmazione: principi e paradigmi, Prima edizione. McGraw-Hill Italia, 2006. ISBN: 88-386-6261-4. |
|
Teaching methods
Individual or group projects followed by an interview. Alternatively, an oral examination