Scheda programma d'esame
PROGRAMMAZIONE II
FABIO GADDUCCI
Anno accademico2017/18
CdSINFORMATICA
Codice273AA
CFU9
PeriodoPrimo semestre
LinguaItaliano

ModuliSettore/iTipoOreDocente/i
PROGRAMMAZIONE IIINF/01LEZIONI72
FABIO GADDUCCI unimap
Learning outcomes
Knowledge

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.

Assessment criteria of knowledge

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:

  • Final oral exam
  • Final written exam
  • Periodic written tests
Teaching methods

Delivery: face to face

Learning activities:

  • attending lectures
  • participation in discussions
  • individual study

Attendance: Advised

Teaching methods:

  • lectures
  • project work
Syllabus

Programming Language Paradigms. Runtime 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.

Bibliography

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) M. L. Scott, Programming Language Pragmatics, Third Edition, Morgan-Kaufmann, 2009; 3) P. 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) M. Herlihy and N. Shavit, The art of multiprocessor programming (Ch. 1-2-9), Elsevier, 2012.  Other material will be available for downloading from the course web page.

Ultimo aggiornamento 09/01/2018 18:34