Skip to main content
CODE 80302
ACADEMIC YEAR 2018/2019
CREDITS
SCIENTIFIC DISCIPLINARY SECTOR INF/01
LANGUAGE Italian
TEACHING LOCATION
  • GENOVA
SEMESTER 2° Semester
TEACHING MATERIALS AULAWEB

OVERVIEW

The course is an introduction to multithreading/multicore, event-driven and distributed programming concepts.
The contents are inspired to the following themes of the ACM/IEEE Computer Science Curriculum Concurrency, Scheduling and Dispatch; Event-Driven and Reactive Programming; Concurrency and Parallelism: Communication and Coordination, Distributed Systems; Mobile Platforms.

AIMS AND CONTENT

LEARNING OUTCOMES

The aim of the course is to introduce the main concepts underlying multithreading and distributed programming. The course has a practical part with guided lab exercises in C, Java and Android and a final project in which students have to apply all concepts and programming technique studied in the course.

TEACHING METHODS

Standard: lectures and labo sessions

SYLLABUS/CONTENT

Theory

  • Multithreaded programming
  • Critical section problem
    • Mutual exclusion, starvation-freedom, deadlock-freedom 
    • Software solution
      • Peterson
      • Lamport's algorithm
  • Spinlock, Semaphor, Mutex, Monitor, Barrier
  • Memory model:
    • Strict and Sequential Consistency
    • Relaxed Memory Models: Weak Consistency
  • Lock-free programming:
    • CAS, Test and Set Lock, Swap and Compare
    • Concurrent data structures

Labo

Concurrent programming

  • Thread and task
  • Pool
  • Synchronize, wait, notify

Asynchronous and event-driven programming

  • Asynchronous functions, future
  • Events, callback

Distributed and network programming

  • Socket
  • Remote procedure call (RPC)
  • Remote method invocation (RMI) and callbac

Android libraries

  • Activity, Manifest, Layout 
  • UIT, callback
  • AsyncTask vs Thread withHandler/Post
  • SQLite

LABO

  • Multithreading in C, Java and Android

Project

  • Client-server distributed system, multithreaded server, Java and Android clients

TEACHERS AND EXAM BOARD

Exam Board

GIORGIO DELZANNO (President)

GIOVANNI CHIOLA

MARINA RIBAUDO

LESSONS

EXAMS

EXAM DESCRIPTION

Written exam and project

ASSESSMENT METHODS

Discussion of the written test and of the project

Exam schedule

Data appello Orario Luogo Degree type Note
04/02/2019 09:00 GENOVA Scritto
14/06/2019 09:00 GENOVA Scritto
01/07/2019 09:00 GENOVA Scritto
18/07/2019 09:00 GENOVA Scritto
11/09/2019 09:00 GENOVA Scritto
03/02/2020 09:00 GENOVA Scritto