This page provides information on Prof. Lüttgen's current and former
teaching activities.
- Wissenschaftliches Arbeiten in der
Informatik (Scientific Methods in Computer Science)
For Bachelor students. Taught at the University
of Bamberg in Summer 2013, Summer 2014 & Summer 2015.
Short Description (in German).
Dieses Modul richtet sich an Studierende der Studiengänge
B.Sc. Angewandte Informatik und B.Sc. Software Systems Science
sowie interessierte Studierende anderer Studiengänge, die im
Bereich Informatik eine Projekt-, Seminar-, Bachelor- oder
Masterarbeit schreiben möchten. Das Modul führt diese Studierenden
in zentrale Methoden, Techniken und Werkzeuge des
wissenschaftlichen Arbeitens theoretisch und praktisch
ein.
- Software Engineering for Information Systems
For Bachelor students in Information Systems and for Master
students in Computing in the Humanities.
Short Description.
Taught at the University
of Bamberg in Winter 2014/15.
This course provides an introduction to classical topics in software
engineering for information systems, including commonly used processes,
notations and techniques for requirements engineering, software
architecture and design, and software quality assurance. In addition
to generally applicable processes and methods for developing software
for information systems, specific aspects on flexible and agile
development and on software quality are presented.
- Software Engineering
For Bachelor students and for Master students in Computing in the Humanities.
Short Description.
Taught at the University
of Bamberg in Summer 2009, Summer 2010, Winter 2010/11, Winter 2011/12,
Winter 2012/13 & Winter 2013/14.
This course provides an introduction to software engineering,
including commomly used processes, process models, notations and
techniques. All software engineering phases are discussed, with a
focus on requirements, design and test. In addition, specific
aspects such as software architectures and pattern-based
development are presented.
- Imperative Programming Using C
For Bachelor students. Taught at the University
of Bamberg in Summer 2011, Summer 2012 & Summer 2013.
Short Description.
This course covers the basic syntax of the C programming language,
including types, operations and control structures. Concepts such
as pointers, memory management, I/O handling, and POSIX threads
will be discussed in detail. Furthermore, it will be explained how
the compiler, pre-processor, the "make" tool and external libraries
are employed. The practicals interleave this knowledge transfer
with numerous examples and small programming tasks.
- Trends in Software Engineering (Reading Class/Seminar)
For Bachelor and Master students.
Short Description.
Taught at the University
of Bamberg in Winter 2009/10, Winter 2010/11, Winter 2011/12 &
Winter 2012/13.
Students will compile and acquire modern topics in software
engineering by carrying out and documenting a guided literature
survey, and by preparing and delivering a coherent and
comprehensible presentation to their peers.
- Trends in Programming Languages (Reading Class/Seminar)
For Bachelor and Master students.
Short Description.
Taught at the University
of Bamberg in Summer 2009, Summer 2010, Summer 2011 & Summer 2013.
Students will compile and acquire modern topics in programming
languages by carrying out and documenting a guided literature
survey and by preparing and delivering a coherent and
comprehensible presentation to their peers.
- Compiler Construction Project
For Master and some Bachelor students.
Short Description.
Taught at the University
of Bamberg in Winter 2009/10, Winter 2010/11, Winter 2011/12 & Winter 2012/13.
In this semester-long lab, students will write their own compiler
consisting of the following major components: scanner, parser,
(intermediate) code generator and code optimiser.
- Selected Readings in Parallel Programming
For Master students.
Short Description.
Taught at the University
of Bamberg in Summer 2010 & Summer 2011.
This course presents a broad variety of languages and libraries for
programming, as well as techniques for evaluating concurrent
software on modern multi-core architectures. Students will be
taught state-of-the-art techniques for analysing, decomposing and
synchronising concurrent computing tasks, so as to be able to
exploit the vast performance offered by today's CPUs.
- Requirements Engineering
For Bachelor students.
Short Description.
Taught at the University
of Bamberg in Winter 2009/10.
Requirements engineering is the activity within the software
engineering life cycle in which a system's purpose is captured, the
system's stakeholders are identified, and in which the
stakeholders' needs are elicited, documented, modelled, analysed,
validated and communicated.
This course provides a critical description of the underlying
concepts and techniques, as well as of today's requirements
processes, methodologies and available tool support.
- Trends in Automated Verification (Reading Class/Seminar)
For Bachelor students.
Short Description.
Taught at the University
of Bamberg in Winter 2009/10.
Students will compile and acquire modern topics in automated
verification by independently carrying out and documenting a
literature survey, and by preparing and delivering a coherent,
comprehensible presentation to their peers.
- Reactive Systems Design
For Advanced MSc in Software Engineering students.
Short Description.
Taught at the University
of York in Spring 2007, Spring 2008 & Spring 2009.
Reactive systems are quickly becoming part of our daily
life. Whether it is our digital alarm clock, the controller of the
anti-lock brakes in our car, or sophisticated medical equipment at
our GP, we depend on the reliability of these systems and,
particularly, on the quality of their software design.
This course discusses synchronous languages for designing and
programming reactive systems software, with a focus on different
language paradigms and on their formal semantics. It also
introduces model checking techniques for verifying desired
properties of designs, and basic techniques for automatically
generating running code from designs. The practicals will use the
programming of Lego Mindstorms robots via the popular, industrial
design environment SCADE, used by Airbus and other major companies,
for illustrating the concepts taught in the lectures.
- Protocol Design and Validation
For fourth-year undergraduate students.
Co-taught by Dr. Jeremy Jacob in 2007.
Short Description.
Taught at the University
of York in Spring 2004, Autumn 2005 & Summer 2007.
Prominent media reports on the malfunctioning of digital networks,
such as the outage of the US long distance telephone network on 15
January 1990, testify to the inherent difficulty of designing
network protocols that operate correctly. While other engineering
disciplines employ mathematical models and calculations to check
the soundness of their system designs, many computer engineers rely
exclusively on testing system implementations, thereby often
overlooking fatal design flaws.
This course advocates a mathematical approach to modelling and
analysing computer and network protocols, and the use of
accompanying modern software tools, known as model checkers. The
particular foci are on the Promela language for modelling
protocols, the temporal logic LTL for specifying desired properties
of protocol models, the award-winning model checker Spin for
automatically checking whether a given protocol model satisfies its
desired properties and the FDR/CASPER model checker. These are
applied to analysing computer protocols for mutual exclusion, to
designing and verifying network protocols for error and flow
control and to designing authentication protocols.
- Requirements Engineering
For Advanced MSc in Software Engineering students. Co-taught by
Prof.
Susan Stepney in 2003, 2004 & 2005.
Short Description.
Taught at the University
of York in Autumn 2003, Autumn 2004, Autumn 2005 & Autumn 2006.
The acceptance of any software system crucially depends on the
degree to which it meets its intended purpose. Within the software
engineering life cycle, requirements engineering is the activity in
which a system's purpose is captured, its stakeholders are
identified, and the stakeholders' needs are documented, modelled,
analysed and communicated. This module provides a critical
description of the underlying concepts and techniques, as well as
of today's requirements methodologies and available tool
support.
- Java and Bioinformatics
For MRes Bioinformatics' students.
Co-taught by Dr. Kevin Cowtan.
Short Description.
Taught at the University
of York in Spring 2005 & Spring 2006.
This module provides an introduction to the programming language
Java and to local and distributed data organisation and
manipulation as applied to bioinformatics problems. As useful as
word processors, databases and other tools might be, the one thing
that makes computers so important is our ability to program them to
perform a huge variety of tasks, from solving equations to
processing and analysing data. In addition, the large databases
produced today by genomics efforts present significant problems of
data description and organisation, and are often distributed across
local and external computing resources. This module is an
introduction to programming as a means of solving practical
problems, using the Java programming language, and will explore
techniques for data organisation and methods for accessing local
and remote databases through JDBC and web services portals. The
lectures will cover theoretical aspects of these problems, which
will provide the basis for practicals and workshop sessions which
will demonstrate applications.
- Network Architectures & Computer Network Technologies
For first-year undergraduate students.
Short Description.
Taught at the University
of Sheffield in Spring 2001, Spring 2002 & Autumn 2002.
This half-module introduces computer networks, with an emphasis on
the concepts and design issues of (i) layered communication
protocol architectures, (ii) local area networks and packet
switching, and (iii) the basics of internetworking. Topic (i)
includes, besides an overview of the field and the employed
terminology, a discussion of the abstract OSI reference model and
the concrete Internet architecture, topic (ii) addresses Ethernet
and ATM technologies, and topic (iii) focuses on the issues of
addressing and routing. Examples of protocols are mainly taken from
the Internet protocol suite.
- Software Hut: Software Engineering Practice
For second-year undergraduate students.
Short Description.
Taught at the University
of Sheffield in Spring 2001 & Spring 2002.
This module uses a group project, the "Software Hut", as a vehicle
for investigating the processes of engineering a real software
system for a real client. The course is concerned with the
successful management of software development projects and the
timely delivery of software products that meet both client
requirements and quality standards. Course lectures and practical
exercises focus on the requirements engineering process; the
development of system prototypes in fourth generation languages
(4GLs); the use of testing strategies and quality reviews and the
production of software documentation.
- Advanced Research Topics: Automated Design Validation
For fourth-year undergraduate students.
Taught at the University
of Sheffield in Spring 2002.
- Advanced Research Topics: Foundations of Engineering Design Languages
For fourth-year undergraduate students.
Taught at the University
of Sheffield in Autumn 2001.
- Formal Specification Languages: SDL and Statecharts
For fourth-year students. Co-taught by Dr. Michael von der Beeck.
Taught at the University
of Passau in Summer 1997.