Advanced Programming [AP-20]

Code 301AA - 9 Credits


LECTURER

Tutor
Andrea Corradini <andrea@di.unipi.it>

Laura Bussi <???>
Virtual classroom Advanced Programming Team
Timetable Wednesday 14:15-16:00
Thursday 14:15-16:00
Friday 14:15-16:00
Office hours Click here
Alternatively, to fix a date send an email to <andrea@di.unipi.it>

Page permanently under construction...

Course description

See: https://esami.unipi.it/esami2/programma.php?c=47430&aa=2020&cid=69&did=13

Evaluation

The final grade is based on the evaluation of the programming assignments that will be proposed along the course, and on a final oral exam.

Prerequisites

In order to take full advantage of the course and of being able to pass the final exam in a reasonable time, students are required to have an undergraduate level knowledge of at least one object-oriented programming language (like Java, C++, C# or others) and of at least one functional programming language (like Haskell, OCaml, Scheme or others). Students having a weak background on such topics are strongly encouraged to review by themselves the core notions of Object-Oriented and Functional Programming at the beginning of the course, possibly exploiting the following online material:

For Object-Oriented programming:

For Functional Programming:

Course Schedule

N.
DATE
TOPIC
SLIDES
NOTES
1
Sep. 16, 2020
Presentation of the course Slides: AP-2020-01.pdf
AP-2020-02.pdf, till page 12
The video of the lesson is accessible on Microsoft Team. If you cannot access it, ask the lecturer.
2
Sep. 17, 2020
Presentation of the course
Syntax, Semantics and Pragmatics
Programming languages and Abstract Machines (tbc)
Slides: AP-2020-02.pdf, all
AP-2020-03.pdf till page 9.
3
Sep. 18, 2020
Programming languages and Abstract Machines
Compilation and interpretation schemes
Slides: AP-2020-03.pdf all, Suggested readings: Chapter 1 of Programming Languages: Principles and Paradigms by Maurizio Gabbrielli and Simone Martini
4
Sep. 23, 2019
Runtime System
The Java Virtual Machine, Runtime Data Areas, Multithreading, ...
Slides: AP-2020-04.pdf, till slide 21. Suggested readings: Chapter 7: Run-time Enviroments Section 7.1, 7.2 and 7.4.1-2 of "The Dragon Book"

Links