Computer programming

A.Y. 2019/2020
Lesson for
12
Max ECTS
120
Overall hours
SSD
INF/01
Language
Italian
Learning objectives
This is an introductory class on programming, its principles, and techniques. Its aim is to make the student, who might never have been exposed to programming, familiar with this discipline and to provide those insights and tools required to approach all further classes that assume some knowledge of programming.
At the end of the course the student will be able to devise and write solutions to average difficult problems using an imperative programming language. They will also be able to solve some simle problems using the object oriented paradigm.

Course structure and Syllabus

Active edition
Yes
Responsible
INF/01 - INFORMATICS - University credits: 12
Laboratories: 48 hours
Lessons: 72 hours
Shifts:
Turno A
Professors: Anisetti Marco, Ferrari Stefano
Turno B
Professor: Tresoldi Emanuele
Syllabus
BASIC CONCEPTS
· Algorithms.
· Phases of programming.
· Modeling tools.
· Documentation.
· A brief history of programming.
· Programming languages
STRUCTURED PROGRAMMING
· Principles of structured programming.
· C Language: expressions and assignments, control structures, predefined types, arrays, matrices, and strings, structured types, pointers, and memory management, functions and parameter passing, main and parameters to main, standard library, file management.
· Jumps elimination: the Böhm-Jacopini Theorem, Ashcroft and Manna's transformation.
· Code correctness: elements of validation and verification.
OBJECT ORIENTED PROGRAMMING
· Modularity, abstraction and abstract data type, encapsulation classes and objects, inheritance and polymorphism
· Design pattern, Aspect oriented programming
· Java programming
· Advanced software development practices
Lesson period
First semester
Lesson period
First semester
Assessment methods
Esame
Assessment result
voto verbalizzato in trentesimi
Educational website(s)
Professor(s)
Reception:
Tuesday, from 10 AM to 12 AM (please send email before coming)
OptLab, Room 3018, Dipartimento di Informatica, Via Celoria 18, Milano