See the course description on the SDU website.
For the "one minute paper" at the end of every lecture, go to https://www.socrative.com/, login as student, and access room "DM869".
Results of the final course evaluation
Results of the Mid-term course evaluation
- Course introduction
- Introduction to Choreographies (from DM861 Concurrency Theory)
- Introduction to CCS
- Concurrency Workbench (CAAL)
The report for the final assignment:
- has to be written in English;
- with a maximum of 20 pages in single column, font size 12, line space 1;
- delivered as PDF file to both Marco (peressotti [at] imada.sdu.dk) and Saverio (saverio [at] imada.sdu.dk)) no later than the 8th of June (23:59 CEST).
-
Week 6: Read Chapter 1 (Inference Systems) from Material 2, Sections 1, 2 and 3 from Material 3.
-
Week 7: Read Section 4 (excluding 4.2.1) from Material 3 and do Exercise 4.3.
-
Week 9: Read Section 5, pages 27-34 from Material 3 and do Exercises 5.1, 5.2, 5.3, and 5.4. Using CAAL (Material 4):
- Model a simple counter that can be incremented if less than 3 and decremented if greater than 0.
- Model a 1-bit register (hint: use channels
read_0
,read_1
,write_0
, andwrite_1
). - Using your bit registers, implement the counter from the first task.
- Check whether the two implementations of the counter are bisimilar.
-
Week 10: Read Section 5 from Material 3. Using CAAL:
- Implement the processes in Exercise 4.6 from Material 3 and verify which verify which are strong or weak bisimilar.
- Model a NOT gate and an AND gate (hint: use channels
inA_0
,inA_1
,inB_0
,inB_1
for the two inputs andout_0
,out_1
for output). - Specify an OR gate, implement one using only processes for AND and NOT (how many you like), then verify that your implementation is behaviourally equivalent to your specification.
-
Week 11: Read Service-oriented programming with Jolie, focussing on answering the questions below (you can use the rubric included in this repository) :
- What is the general context of the paper? (try to describe both the general field (programming, distributed systems, etc.) and the specific application (functional implementations, consensus algorithms, etc.))
- What are the problems the authors want to address?
- Why are those problems important (impact, theoretical and/or practical needs, etc.)?
- What are the main contributions of the paper?
- Are there alternatives? In which way do they differ from this contribution?
- Is the paper well-written, i.e., is it clear from the paper how to respond to the previous points?
- Form and prepare to discuss your opinion on the paper, e.g., do you think the contributions solve the problems? To which extent (completely, what parts)? Why?
-
Week 12: Read Programming services with correlation sets and ChIP: a Choreographic Integration Process and review them, answering the questions in the paper review rubric included in this repository.
-
Week 13 Presentation Workshop: preparatory assignment to the group presentation on Week 14.
- Students will form groups and work togheter at the presentation of one of the following papers:
- Please, use this form to submit your preferences for the paper presentation session within Friday 22nd. Students will be notified by Saturday 23rd, using the email inserted in the form.
- Slides on how to give a presentation
- Rubric on the evaluation of presentations; hint: use it to review your presentations and spot possible missing points.
-
Week 14 Group Presentations + Questions
-
Week 15 Try to implement the Circuit Breaker pattern in Jolie, following the definition given in From the decorator pattern to circuit breakers in microservices (additional reference Circuit Breakers, Discovery, and API Gateways in Microservices). First read the paper and understand the reasoning behind the definition the authors give. Then try to implement and test a system where you can observe the circuit breaker tripping (limiting/forbidding connections) and closing (accepting all connections).
-
Week 16 Easter Holidays
-
Week 17 Easter Holidays
-
Week 18 Submit the group formation and the list of commented references for the exam report.
- The exam report surveys a research topic by selecting a set of related papers (from 2 to 6), reporting their relevant information, and comparing them in a structured way.
- When proposing the set of references, the students shall briefly (a couple of paragraphs) justify them, commenting why a given reference shall be further investigated in the report.
- The selected topic and the list of references are agreed upon with the teachers of the course.
- Research topics are free (as long as related to the context of the course). The below list contains possible research topics and initial references that students can use as starting point to build their list of references (which does not necessarily contain those initial references).
- Microservices (design, development, and/or deployment)
- Serverless computing
- Choreographic programming
- Type systems for Concurrency
- Behavioural Equivalences
-
Week 19 Work on reports
-
Week 20 Read Propositions as types review it, answering the questions in the paper review rubric included in this repository.
-
Week 21 Read Propositions as sessions. Work on reports
-
Week 22 Work on reports