Modules | Area | Type | Hours | Teacher(s) | |
PROGRAMMAZIONE II | INF/01 | LEZIONI | 72 |
|
The student who successfully completes the course will have the ability to design and verify advanced programming abstractions using the abstraction mechanism provided by object-oriented programming languages like Java. He or she will have a good understanding of the basic components of the run-time supports of high-level programming languages.
The student who successfully completes the course will have the ability to design and verify advanced programming abstractions using the abstraction mechanism provided by object-oriented programming languages like Java. He or she will have a good understanding of the basic components of the run-time supports of high-level programming languages.
During the written exam the student must demonstrate to be able to put into practice some notions of programming language semantics learned during the course. The student's ability to explain correctly the main topics presented during the course at the board will be assessed during the oral exam.
Methods:
A causa dell' emergenza COVID l'esame scrtto è rimpiazzato da un esame orale telematico. Per quanto riguarda la sessione estiva 2019-2020. Resta la discussione del progetto.
During the written exam the student must demonstrate to be able to put into practice some notions of programming language semantics learned during the course. The student's ability to explain correctly the main topics presented during the course at the board will be assessed during the oral exam.
Methods:
Delivery: face to face
Learning activities:
Attendance: Advised
Teaching methods:
Delivery: face to face
Learning activities:
Attendance: Advised
Teaching methods:
Programming Language Paradigms. Run-time structures: environment, memory, heap; blocks, subprograms, activation records, stack; objects; interpretation, compilation. Object-Oriented Programming. The kernel of the Java language: classes, objects, inheritance, data abstraction (specification and implementation, verification techniques based on induction), abstraction through hierarchies, Java polymorphism. Concurrent programming techniques.
Programming Language Paradigms. Run-time structures: environment, memory, heap; blocks, subprograms, activation records, stack; objects; interpretation, compilation. Object-Oriented Programming. The kernel of the Java language: classes, objects, inheritance, data abstraction (specification and implementation, verification techniques based on induction), abstraction through hierarchies, Java polymorphism. Concurrent programming techniques.
Possible readings to cover the various parts of the course include the following. Programming language paradigms: 1) M. Gabbrielli and S. Martini, Linguaggi di Programmazione: Principi e Paradigmi, McGraw-Hill, 2006 2) Michael L. Scott, Programming Language Pragmatics, Third Edition, Morgan-Kaufmann, 2009 3) Peter Sestoft Programming Language Concepts, Springer, 2012 Object-Oriented Programming: 4) B. Liskov (with J. Guttag), Program Development in Java: Abstraction, + Specification and Object-Oriented design, Addison-Wesley, 2000 Concurrent Programming Techniques: 5) The art of multiprocessor programming (Cap 1-2-9), Maurice Herlihy, Nir Shavit, 2012 Elsevier Other material will be available for downloading from the course web page.
Possible readings to cover the various parts of the course include the following. Programming language paradigms: 1) M. Gabbrielli and S. Martini, Linguaggi di Programmazione: Principi e Paradigmi, McGraw-Hill, 2006 2) Michael L. Scott, Programming Language Pragmatics, Third Edition, Morgan-Kaufmann, 2009 3) Peter Sestoft Programming Language Concepts, Springer, 2012 Object-Oriented Programming: 4) B. Liskov (with J. Guttag), Program Development in Java: Abstraction, + Specification and Object-Oriented design, Addison-Wesley, 2000 Concurrent Programming Techniques: 5) The art of multiprocessor programming (Cap 1-2-9), Maurice Herlihy, Nir Shavit, 2012 Elsevier Other material will be available for downloading from the course web page.