Software Engineering? Are you kidding me?

Speaker + Date/Time: Giuseppe Destefanis | TBD

Abstract: Software development is a complex human process which has, as a final goal,  the creation of a complete working application.

Software Engineering encompasses all the activities related to software development from conceiving to maintaining the product

Calling software a product, however, highlights all the difficulties of the subject, with “immateriality” being the first one.

Engineering is defined as “the branch of science and technology concerned with the design, building, and use of engines, machines, and structures.” (Oxford Dictionary).

Is the combination of the two words “Software” and “Engineering” an oxymoron?

A Brief History of Types

Speaker + Date/Time: Rumyana Neykova | TBD

Abstract: Types are one of computing’s most successful concepts, they exist from the oldest to the newest programming languages. Types act as the fundamental unit of compositionality, and play important role in all aspects of software, from design to optimisation.

Unfortunately, types are probably the last thing that comes to your mind when you think about distributed systems. In this talk, I will change this misconception.

I will (hopefully) convince you that types can be used to understand, test, specify and verify distributed systems. In particular, I will give you a crash course on session types, which were born as types for distributed processes. We will discuss the history of session type, the fundamental meaning of communication, and how to develop distributed systems that we can trust.