Schedule of readings

This schedule is subject to change, and it is neither sound (that is, if a particular reading or topic is listed here, that doesn’t mean we’ll cover it!) nor complete (that is, if a particular reading or topic is not listed here, that doesn’t mean we won’t cover it!).

You must turn in your reading response for each day’s reading assignment on Canvas by 10pm Pacific time on the day prior to the day of class. For example, for the paper to be discussed on Wednesday, January 11, you must turn in your reading response on Canvas by 10pm Pacific time on Tuesday, January 10.

Date Topic Reading
Monday, 1/9 (remote) Course overview Home page and course overview
Wednesday, 1/11 (remote) Part I: Global First! Overview and motivation Pascal Weisenburger et al., “A Survey of Multitier Programming” (ACM Computing Surveys, 2020)
Friday, 1/13 Overview and motivation Saverio Giallorenzo et al., “Multiparty Languages: The Choreographic and Multitier Cases (Pearl)” (ECOOP 2021)
Monday, 1/16 Martin Luther King, Jr. Day (no class)  
Wednesday, 1/18 (remote) Multitier programming Ezra Cooper et al., “Links: web programming without tiers” (FMCO 2006) (see also the Links website, with links (heh) to many follow-on works)
Friday, 1/20 (remote) Multitier programming Manuel Serrano, “Hop, a Language for Programming the Web 2.0” (DLS 2006) (see also the ACM Queue article)
Monday, 1/23 Multitier programming Adam Chlipala, “Ur/Web: A Simple Model for Programming the Web” (POPL 2015) (see also the Ur/Web website)
Wednesday, 1/25 Multitier programming Pascal Weisenburger et al., “Distributed system development with ScalaLoci” (OOPSLA 2018) (see also the ScalaLoci website)
Friday, 1/27 Multitier programming Tom Murphy VII et al., “Type-safe Distributed Programming with ML5” (TGC 2007)
Monday, 1/30 Choreographic programming Marco Carbone and Fabrizio Montesi, “Deadlock-freedom-by-design: multiparty asynchronous global programming” (POPL 2013) (see also Montesi’s Ph.D. dissertation, “Choreographic Programming”; chapter 2 of the dissertation is based on this paper)
Wednesday, 2/1 Choreographic programming Carbone and Montesi, continued
Friday, 2/3 Choreographic programming Saverio Giallorenzo et al., “Object-Oriented Choreographic Programming” (2022) (description of the Choral programming language; see also the Choral website)
Monday, 2/6 Choreographic programming Andrew K. Hirsch and Deepak Garg, “Pirouette: higher-order typed functional choreographies” (POPL 2022)
Wednesday, 2/8 Choreographic programming Hirsch and Garg, continued
Friday, 2/10 Part II: Local First! Overview and motivation Martin Kleppmann et al., “Local-first software: you own your data, in spite of the cloud” (Onward! 2019) (PDF version); project proposals due
Monday, 2/13 CRDTs and friends Marc Shapiro et al., “Conflict-free replicated data types” (SSS 2011)
Wednesday, 2/15 CRDTs and friends C. A. Ellis and S. J. Gibbs, “Concurrency control in groupware systems” (SIGMOD 1989) (the original Operational Transformation algorithm, an alternative to (and forerunner of) CRDTs for collaborative editing applications; see also Abhishek Singh’s blog posts explaining this paper (part 1; part 2))
Friday, 2/17 CRDTs and friends Gowtham Kaki et al., “Mergeable replicated data types” (PLDI 2019) (a recent paper proposing an alternative to traditional CRDTs)
Monday, 2/20 Presidents’ Day (no class)  
Wednesday, 2/22 CRDTs and friends Kaki et al., continued
Friday, 2/24 CRDTs and friends Nicholas Schiefer et al., “Merge What You Can, Fork What You Can’t: Managing Data Integrity in Local-First Software” (PaPoC 2022) (from the Riffle people, another alternative to traditional CRDTs)
Monday, 2/27 Content-addressability, DHTs, and all that Sylvia Ratnasamy et al., “A scalable content-addressable network” (SIGCOMM 2001) (the paper that introduced the term “content-addressable”)
Wednesday, 3/1 Content-addressability, DHTs, and all that Ratnasamy et al., continued
Friday, 3/3 Content-addressability, DHTs, and all that Erik Daniel and Florian Tschorsch, “IPFS and Friends: A Qualitative Comparison of Next Generation Peer-to-Peer Data Networks” (IEEE Communications Surveys & Tutorials, 2022) (a survey paper covering IPFS, Swarm, Hypercore (Dat), SAFE, Storj, and Arweave, and contextualizing them with respect to previous work)
Monday, 3/6 PROJECT HACK DAY (no class)  
Wednesday, 3/8 Content-addressability, DHTs, and all that Ion Stoica et al., “Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications” (SIGCOMM ‘01) (an early, influential paper on DHTs)
Friday, 3/10 Content-addressability, DHTs, and all that Stoica et al., continued; complete your in-person project status update meeting by today
Monday, 3/13 Content-addressability, DHTs, and all that Guest lecture by Peter Alvaro: Pamela Zave, “Using Lightweight Modeling to Understand Chord” (SIGCOMM Computer Communications Review, 2012) (using Alloy to find bugs in Chord; a complement to the Chord paper)
Wednesday, 3/15 Content-addressability, DHTs, and all that Guest lecture by Peter Alvaro: Petar Maymounkov and David Mazières, “Kademlia: A Peer-to-Peer Information System Based on the XOR Metric” (IPTPS 2002) (a follow-up to Chord)
Friday, 3/17 Wrap-up and AMA  
Wednesday, 3/22 Noon-3pm: in-person 10-minute project presentations (snacks provided)  
Friday, 3/24 Project reports due  

Acknowledgments

Thanks to Andrew Hirsch, Martin Kleppmann, and Patrick Redmond for their feedback and assistance with creating this reading list.