ASPETTI AVANZATI DEI LINGUAGGI DI PROGRAMMAZIONE A.A.2018-2019


Avvisi

****Le lezioni del 8/1 e 10/1 sono annullate





Temi per possibili approfondimenti:

  • Analisi di un linguaggio (es. Elixir, Swift, Lua, Julia, Cobol), un framework, uno stile di programmazione (es. GP-GPU e CUDA, sistemi embedded, Tagless Final programming).
  • Analisi di una tecnologia (es. blockchain, hashgraph, hyperledger, IPFS).
  • Benchmarking tra linguaggi (es. overhead costrutti Java8, dizionari Python vs STL C++)
  • Analisi di riproducibilita' di un "eseprimento"
  • Rifattorizzazione di codice (opportunemente scelto) in un altro linguaggio (opportunamente scelto)
  • Studio di un articolo su temi di metodi formali (es. teoria dei tipi, typing avanzato, semantica di un linguaggio, memory models)
  • Approfondimento interdisciplinare su temi di impatto sociale delle nuove tecnologie (es. artificial intelligence and etichs, diritti e tecnologia, brain-computer interfaces, strumenti digitali per la pubblica amministrazione)


  • Appunti delle lezioni



    Slides lezione del 9/10 e Appunti
    Appunti lezione del 11/10
    Appunti lezione del 16/10
    Appunti lezioni del 18/10
    Appunti lezione del 23/10
    Appunti lezione del 25/10
    Appunti lezione del 6/11
    Appunti lezione del 8/11
    Appunti lezione del 13/11
    Appunti lezione del 15/11
    Esercizi di ripasso
    Appunti lezione del 22/11
    Appunti e Slides della lezione del 27/11
    Slides lezione del 29/11
    Slides lezione del 4/12
    Slides lezione del 5/12
    Slides lezione del 11/12
    Slides lezione del 13/12
    Slides lezione del 18/12
    Slides lezione del 20/12


    Testi e materiale di approfondimento
  • Types and Programming Languages. B.C. Pierce, edito da MIT Press. Disponibile in biblioteca.

  • Practical Foundations for Programming Languages. Robert Harper, edito da Cambridge Press. Online available preview

  • Programming in Scala. M.Odersky, L.Spoon, B.Venners. Artima ed. Disponibile in biblioteca

  • Why Study Principles of Programmin Languages? R. Harper
  • Why Functional Programming Matters. J. Hughes
  • The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software. H. Sutter
  • Computer Languages Timeline
  • The role of concurrency in an evolutionary view of programming abstractions.S. Crafa. Journal of Logical and Algebraic Methods in Programming 84:732-741 (2015)
  • Null References: The Billion Dollar Mistake T. Hoare. QCon conference, London 2009

  • A leading Silicon Valley engineer explains why every tech worker needs a humanities education. Quartz, 2017.
    Hey computer scientists stop hating humanities. Wired Opinion, 2017.
    An Apology for the Internet - from the people who built it. NY MAgazine, 2018.
    How social media took us form Tahrir Square to Donald Trump. MIT Technology Review, 2018.

    The top programming languages 2018 according to IEEE Spectrum
    The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software. H. Sutter
    Computer Languages Timeline
    The role of concurrency in an evolutionary view of programming abstractions. S. Crafa. Journal of Logical and Algebraic Methods in Programming, 2015
    Comprendere lo sviluppo dei moderni linguaggi di programmazione in chiave evolutiva. S. Crafa. Mondo Digitale. AICA, 2016.
    Innovazione vs tradizione? G. Grandi. 2018.