Funcionamento da UC a partir de 16 Março 2020
A UC seguirá o método de ensino
flipped classroom, que se adapta especialmente bem a aulas não presenciais e irá envolver as seguintes acções, entre outras:
-
No início de cada semana será publicada na página da UC um guião para a aula dessa semana e uma lista de exercícios relativos a essa aula.
-
Durante as aulas, no horário habitual (5f, 9-12h), serão utilizadas plataformas colaborativas (Slack, Zoom, Bb Collaborative Ultra) para, de forma síncrona , ser (1) apresentado o guião da aula, (2) discutidas possíveis soluções para os exercícios com especial relevância, e (3) esclarecidas dúvidas que tenham surgido. Os links para essas sessões serão publicados oportunamente na página da UC.
-
Complementarmente, os alunos irão realizar trabalhos teórico-práticos transversais aos diferentes tópicos da UC. Estes trabalhos serão componentes de avaliação.
Os trabalhos serão realizados também no contexto das plataformas colaborativas acima mencionadas, o que nos permitirá ver não apenas o resultado final mas todo o progresso do aluno ao longo do projecto.
-
Em princípio a avaliação seguirá o formato acordado e publicado na página da UC. Os trabalhos práticos serão facilmente realizados como previsto. O teste, agendado para 28 de Maio, realizar-se-á nesse dia se já for possível fazê-lo em regime presencial, ou será adiado, se necessário, e de acordo com o que vier a ser decidido para toda a Universidade.
Objectives
The course provides a perspective on process algebra (architecture & calculi).
We start with well-established classical and probabilistic process algebras and illustrate their use in software engineering.
Given the rapid emergence of cyber-physical systems, we next give a special focus to timed and cyber-physical process algebras.
Finally, we lean on more uniform notions and techniques in process algebra, with the goal of giving theoretical foundations to the student and the tools necessary for (s)he to smoothly learn/adapt to modeling and reasoning about software composition in different computational paradigms.
This final part of the course will have a more
theoretical, research-centred character, briefly presenting current research challenges.
Syllabus
- Process Algebra: Nondeterministic and probabilistic systems.
- Labelled transition systems: Syntax, semantics, morphism and notions of equivalence (traces, bisimilarity and its variants).
- Algebra of nondeterministic processes: CCS (syntax, semantics and equational reasoning).
- Generalizing transition systems to the probabilistic case.
- Process algebra and modal logics: The Hennessy-Milner logic.
- Process Algebra: Cyber-physical systems.
- Timed Automata: Syntax, semantics, and notions of equivalence.
- Hybrid Automata: Syntax, semantics, and notions of equivalence.
- Introduction to UPPAAL.
- Timed and hybrid process algebras.
- Process Algebra: An abstract view.
- Background: Monads and computational processes.
- Software components: Language and semantics.
- Interleaving and iteration.
Summaries (2019-20)
Feb 6:
Introduction to the course dynamics.
Labelled transition systems. Determinism, non determinism and probabilism. Corresponding notions of morphism. Bisimilarity.
[slides]
Feb 13:
Process algebra. Detailed study of CCS (Milner's Calculus of Communicating Systems): Operational semantics, expansion theorem; silent transitions and observational equivalences.
[slides]
Feb 20:
Process algebra: conclusion of the previous lecture. Exercises.
Feb 27:
Modal logics for processes. The Hennessy-Milner theorem. [slides]
Classification of transition systems. The probabilistic case. Variants.
[slides]
Mar 5:
Process modelling and verification in mCRL2 [slides 1] [slides 2].
Discussion of examples [code].
Mar 12:
CANCELLED: Covid-19 preventive determination
Mar 19: Timed Automata: syntax, semantics, and notions of equivalence. Examples and exercises [slides].
Mar 26:
Hands-on UPPAAL [slides].
Apr 2:
Hybrid Automata: syntax, semantics, and notions of equivalence. Examples and exercises [slides].
Apr 16:
Revisions and exercises [exercises].
Presentation of the first project.
Apr 23:
Simply-typed lambda-calculus and algebraic theories. Introduction to monads.
[slides,
auxiliar material].
Apr 30:
Continuation of the previous class. Distinction between values
and computations; tensorial strength. The computational meta-language
[slides,
the adventurers].
Mai 7:
Revision of the previous classes. A tour around the Zoo
of monads (cyber-physical, nondeterministic, internal state,
and others). Monad combination. The Knight's quest.
[slides,
The Knight's quest].
Support
Notes
Links
Bibliography
Pragmatics
Assessment
A avaliação do aluno
consistirá na realização de dois trabalhos práticos + apresentação
(totalizando
90%) e TPCs que serão pedidos ao longo do ano
lectivo (
10%). Os trabalhos práticos serão realizados por
grupos de dois alunos, enquanto que os TPCs serão realizados
individualmente.
1º Trabalho prático (45%)
O primeiro trabalho prático vai incidir na modelação e análise de
um sistema de tempo-real com base na ferramenta UPPAAL. Datas
relevantes:
- Publicação do trabalho no dia 14 de Abril 2020 (enunciado);
- Entrega até ao dia
1218 de Maio de 2020;
- Apresentações no dia
1421 de Maio de 2020.
2º Trabalho prático (45%)
O segundo trabalho prático terá um caracter mais exploratório. Irá
incidir não só incidir na modelação e análise de um sistema
ciber-físico mas também num estudo comparativo de diferentes
ferramentas para modelação/análise de sistemas ciber-físicos. Datas
relevantes:
- Publicação do trabalho no dia 14 de Maio de 2020 (enunciado); (código)
- Entrega do trabalho até ao dia 16 de Junho de 2020;
- Apresentações no dia 18 de Junho de 2020.
Lecturers
Contact
- Appointments (Luis): Tue, 08:00-09:00 and Thu, 18:00-20:00 (please send an email the day before)
- Appointments (Renato): Wed, 14:00-16:00 (please send an email the day before)
- Last update: 2020.03.16