Computer Programming

A.Y. 2018/2019
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.
Expected learning outcomes
Algorithmic thinking
Imperative programming (C language)
Object Oriented Design
Object Oriented Programming in Java
Single course

This course cannot be attended as a single course. Please check our list of single courses to find the ones available for enrolment.

Course syllabus and organization

Single session

Responsible
Lesson period
First semester
Course 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
INF/01 - INFORMATICS - University credits: 12
Laboratories: 48 hours
Lessons: 72 hours
Professors: Anisetti Marco, Ferrari Stefano, Tresoldi Emanuele
Shifts:
Turno A
Professors: Anisetti Marco, Ferrari Stefano
Turno B
Professor: Tresoldi Emanuele
Professor(s)
Reception:
By appointment (via email)
via Celoria, 18 --- Milano