Search result: Catalogue data in Spring Semester 2017

Certificate of Advanced Studies in Computer Science Information
Compulsory Major Courses
Neither credits can be obtained from entrance exams nor credited to the Certificate programme.
Focus Courses and Electives
NumberTitleTypeECTSHoursLecturers
252-0312-00LUbiquitous Computing Information W3 credits2VF. Mattern, S. Mayer
AbstractUbiquitous computing integrates tiny wirelessly connected computers and sensors into the environment and everyday objects. Main topics: The vision of ubiquitous computing, trends in technology, smart cards, RFID, Personal Area Networks (Bluetooth), sensor networks, location awareness, privacy and security, application areas, economic and social impact.
ObjectiveThe vision of ubiquitous computing, trends in technology, smart cards, RFID, Personal Area Networks (Bluetooth), sensor networks, location awareness, privacy and security, application areas, economic and social impact.
Lecture notesCopies of slides will be made available
LiteratureWill be provided in the lecture. To put you in the mood:
Mark Weiser: The Computer for the 21st Century. Scientific American, September 1991, pp. 94-104
252-0355-00LObject Databases Information W4 credits2V + 1UA. K. de Spindler
AbstractThe course examines the principles and techniques of providing data management in object-oriented programming environments. After introducing the basics of object storage and management, we will cover semantic object models and their implementation. Finally, we discuss advanced data management services such as version models for temporal and engineering databases and for software configuration.
ObjectiveThe goal of this course is to extend the student's knowledge of database technologies towards object-oriented solutions. Starting with basic principles, students also learn about commercial products and research projects in the domain of object-oriented data management. Apart from getting to know the characteristics of these approaches and the differences between them, the course also discusses what application requirements justify the use of object-oriented databases. Therefore, it educates students to make informed decisions on when to use what database technology.
ContentThe course examines the principles and techniques of providing data management in object-oriented programming environments. It is divided into three parts that cover the road from simple object persistence, to object-oriented database management systems and to advanced data management services. In the first part, object serialisation and object-relational mapping frameworks will be introduced. Using the example of the open-source project db4o, the utilisation, architecture and functionality of a simple object-oriented database is discussed. The second part of the course is dedicated to advanced topics such as industry standards and solutions for object data management as well as storage and index technologies. Additionally, advanced data management services such as version models for temporal and engineering databases as well as for software configuration are discussed. In the third and last part of the course, an object-oriented data model that features a clear separation of typing and classification is presented. Together with the model, its implementation in terms of an object-oriented database management system is discussed also. Finally, an extension of this data model is presented that allows context-aware data to be managed.
Prerequisites / NoticePrerequisites: Knowledge about the topics of the lectures "Introduction to Databases" and "Information Systems" is required.
252-0374-00LWeb Engineering Information
The course will be offered for the last time.
W6 credits2V + 2U + 1AM. Norrie
AbstractThe course teaches students about the basic principles of web engineering by examining the various technologies used in modern web sites in detail together with the step-by-step processes used to develop state-of-the art web sites.
ObjectiveThe goals of the course are that students should be able to:
- systematically develop state-of-the-art web sites using a range of technologies, platforms and frameworks in common use
- understand the role of different technologies and how they are combined in practice
- analyse requirements and select appropriate technologies, platforms and frameworks
ContentThe first half of the course will introduce the various technologies used in state-of-the-art websites together with the widespread interface-driven development process. From the beginning, we will cater for access from multiple devices such as mobile phones and tablets as well as desktop browsers and show how technologies such as HTML5, CSS3 and JavaScript can be used to support rich forms of interaction. The concepts behind modern content management platforms such as WordPress will be introduced and students will gain practical experience of working with such a platform in terms of extending its functionality as well as developing websites.
The second half of the course will introduce various programming frameworks for website development and students will gain experience of working with various JavaScript frameworks, including ones developed to support novel forms of interaction and applications that run across two or more devices. The final lectures will examine user experience issues and future trends.
The material covered in lectures will be supported by a series of practical exercises.
252-0408-00LCryptographic Protocols Information W5 credits2V + 2UM. Hirt
AbstractThe course presents a selection of hot research topics in cryptography. The choice of topics varies and may include provable security, interactive proofs, zero-knowledge protocols, secret sharing, secure multi-party computation, e-voting, etc.
ObjectiveIndroduction to a very active research area with many gems and paradoxical
results. Spark interest in fundamental problems.
ContentThe course presents a selection of hot research topics in cryptography. The choice of topics varies and may include provable security, interactive proofs, zero-knowledge protocols, secret sharing, secure multi-party computation, e-voting, etc.
Lecture notesthe lecture notes are in German, but they are not required as the entire
course material is documented also in other course material (in english).
Prerequisites / NoticeA basic understanding of fundamental cryptographic concepts
(as taught for example in the course Information Security or
in the course Cryptography) is useful, but not required.
252-0526-00LStatistical Learning Theory Information W6 credits2V + 3PJ. M. Buhmann
AbstractThe course covers advanced methods of statistical learning :
Statistical learning theory;variational methods and optimization, e.g., maximum entropy techniques, information bottleneck, deterministic and simulated annealing; clustering for vectorial, histogram and relational data; model selection; graphical models.
ObjectiveThe course surveys recent methods of statistical learning. The fundamentals of machine learning as presented in the course "Introduction to Machine Learning" are expanded and in particular, the theory of statistical learning is discussed.
Content# Theory of estimators: How can we measure the quality of a statistical estimator? We already discussed bias and variance of estimators very briefly, but the interesting part is yet to come.

# Variational methods and optimization: We consider optimization approaches for problems where the optimizer is a probability distribution. Concepts we will discuss in this context include:

* Maximum Entropy
* Information Bottleneck
* Deterministic Annealing

# Clustering: The problem of sorting data into groups without using training samples. This requires a definition of ``similarity'' between data points and adequate optimization procedures.

# Model selection: We have already discussed how to fit a model to a data set in ML I, which usually involved adjusting model parameters for a given type of model. Model selection refers to the question of how complex the chosen model should be. As we already know, simple and complex models both have advantages and drawbacks alike.

# Statistical physics models: approaches for large systems approximate optimization, which originate in the statistical physics (free energy minimization applied to spin glasses and other models); sampling methods based on these models
Lecture notesA draft of a script will be provided;
transparencies of the lectures will be made available.
LiteratureHastie, Tibshirani, Friedman: The Elements of Statistical Learning, Springer, 2001.

L. Devroye, L. Gyorfi, and G. Lugosi: A probabilistic theory of pattern recognition. Springer, New York, 1996
Prerequisites / NoticeRequirements:

knowledge of the Machine Learning course
basic knowledge of statistics, interest in statistical methods.

It is recommended that Introduction to Machine Learning (ML I) is taken first; but with a little extra effort Statistical Learning Theory can be followed without the introductory course.
252-0538-00LShape Modeling and Geometry Processing Information W5 credits2V + 1U + 1AO. Sorkine Hornung
AbstractThis course covers some of the latest developments in geometric modeling and digital geometry processing. Topics include surface modeling based on polygonal meshes, mesh generation, surface reconstruction, mesh fairing and simplification, discrete differential geometry, interactive shape editing, topics in digital shape fabrication.
ObjectiveThe students will learn how to design, program and analyze algorithms and systems for interactive 3D shape modeling and digital geometry processing.
ContentRecent advances in 3D digital geometry processing have created a plenitude of novel concepts for the mathematical representation and interactive manipulation of geometric models. This course covers some of the latest developments in geometric modeling and digital geometry processing. Topics include surface modeling based on triangle meshes, mesh generation, surface reconstruction, mesh fairing and simplification, discrete differential geometry, interactive shape editing and digital shape fabrication.
Lecture notesSlides and course notes
Prerequisites / NoticePrerequisites:
Visual Computing, Computer Graphics or an equivalent class. Experience with C++ programming. Some background in geometry or computational geometry is helpful, but not necessary.
252-0579-00L3D Vision Information W4 credits3GA. Geiger, T. Sattler
AbstractThe course covers camera models and calibration, feature tracking and matching, camera motion estimation via simultaneous localization and mapping (SLAM) and visual inertial odometry (VIO), epipolar and mult-view geometry, structure-from-motion, (multi-view) stereo, augmented reality, and image-based (re-)localization.
ObjectiveAfter attending this course, students will:
1. understand the core concepts for recovering 3D shape of objects and scenes from images and video.
2. be able to implement basic systems for vision-based robotics and simple virtual/augmented reality applications.
3. have a good overview over the current state-of-the art in 3D vision.
4. be able to critically analyze and asses current research in this area.
ContentThe goal of this course is to teach the core techniques required for robotic and augmented reality applications: How to determine the motion of a camera and how to estimate the absolute position and orientation of a camera in the real world. This course will introduce the basic concepts of 3D Vision in the form of short lectures, followed by student presentations discussing the current state-of-the-art. The main focus of this course are student projects on 3D Vision topics, with an emphasis on robotic vision and virtual and augmented reality applications.
252-0820-00LCase Studies from Practice Information W4 credits2V + 1UM. Brandis
AbstractThe course is designed to provide students with an understanding of "real-life" challenges in business settings and teach them how to address these.
ObjectiveBy using case studies that are based on actual IT projects, students will learn how to deal with complex, not straightforward problems. It will help them to apply their theoretical Computer Science background in practice and will teach them fundamental principles of IT management and challenges with IT in practice.
ContentThe course consists of multiple lectures about general IT management topics held by Marc Brandis and case studies provided by guest lecturers from either IT companies or IT departments of a diverse range of companies. Students will obtain insights into both established and startup companies, small and big, and different industries.
Presenting companies have included avaloq, Accenture, AdNovum, Bank Julius Bär, Credit Suisse, Deloitte, HP, IBM Research, McKinsey & Company, Open Web Technology, SAP Research, Selfnation, WhiteStein Technologies, 28msec, and Marc Brandis Strategic Consulting. The participating companies in spring 2016 will be announced at course start.
252-1403-00LIntroduction to Quantum Information Processing Information W3 credits2GS. Wolf
AbstractFollowed by an introduction to the basic principles of quantum physics, such as superposition, interference, or entanglement, a variety of subjects are treated: Quantum algorithms, teleportation, quantum communication complexity and "pseudo-telepathy", quantum cryptography, as well as the main concepts of quantum information theory.
ObjectiveIt is the goal of this course to get familiar with the most important notions that are of importance for the connection between Information and Physics. The formalism of Quantum Physics will be motivated and derived, and the use of these laws for information processing will be understood. In particular, the important algorithms of Grover as well as Shor will be studied and analyzed.
ContentAccording to Landauer, "information is physical". In quantum information, one is interested in the consequences and the possibilites offered by the laws of quantum physics for information processing. Followed by an introduction to the basic principles of quantum physics, such as superposition, interference, or entanglement, a variety of subjects are treated: Quantum algorithms, teleportation, quantum communication complexity and "pseude-telepathy", quantum cryptography, as well as the main concepts of quantum information theory.
252-1424-00LModels of ComputationW6 credits2V + 2U + 1AM. Cook
AbstractThis course surveys many different models of computation: Turing Machines, Cellular Automata, Finite State Machines, Graph Automata, Circuits, Tilings, Lambda Calculus, Fractran, Chemical Reaction Networks, Hopfield Networks, String Rewriting Systems, Tag Systems, Diophantine Equations, Register Machines, Primitive Recursive Functions, and more.
ObjectiveThe goal of this course is to become acquainted with a wide variety of models of computation, to understand how models help us to understand the modeled systems, and to be able to develop and analyze models appropriate for new systems.
ContentThis course surveys many different models of computation: Turing Machines, Cellular Automata, Finite State Machines, Graph Automata, Circuits, Tilings, Lambda Calculus, Fractran, Chemical Reaction Networks, Hopfield Networks, String Rewriting Systems, Tag Systems, Diophantine Equations, Register Machines, Primitive Recursive Functions, and more.
252-3005-00LNatural Language Understanding Information W4 credits2V + 1UT. Hofmann, M. Ciaramita
AbstractThis course presents topics in natural language processing with an emphasis on modern techniques, primarily focusing on statistical and deep learning approaches. The course provides an overview of the primary areas of research in language processing as well as a detailed exploration of the models and techniques used both in research and in commercial natural language systems.
ObjectiveThe objective of the course is to learn the basic concepts in the statistical processing of natural languages. The course will be project-oriented so that the students can also gain hands-on experience with state-of-the-art tools and techniques.
ContentThis course presents an introduction to general topics and techniques used in natural language processing today, primarily focusing on statistical approaches. The course provides an overview of the primary areas of research in language processing as well as a detailed exploration of the models and techniques used both in research and in commercial natural language systems.
LiteratureLectures will make use of textbooks such as the one by Jurafsky and Martin where appropriate, but will also make use of original research and survey papers.
252-5706-00LMathematical Foundations of Computer Graphics and Vision Information W4 credits2V + 1UM. R. Oswald, C. Öztireli
AbstractThis course presents the fundamental mathematical tools and concepts used in computer graphics and vision. Each theoretical topic is introduced in the context of practical vision or graphic problems, showcasing its importance in real-world applications.
ObjectiveThe main goal is to equip the students with the key mathematical tools necessary to understand state-of-the-art algorithms in vision and graphics. In addition to the theoretical part, the students will learn how to use these mathematical tools to solve a wide range of practical problems in visual computing. After successfully completing this course, the students will be able to apply these mathematical concepts and tools to practical industrial and academic projects in visual computing.
ContentThe theory behind various mathematical concepts and tools will be introduced, and their practical utility will be showcased in diverse applications in computer graphics and vision. The course will cover topics in sampling, reconstruction, approximation, optimization, robust fitting, differentiation, quadrature and spectral methods. Applications will include 3D surface reconstruction, camera pose estimation, image editing, data projection, character animation, structure-aware geometry processing, and rendering.
263-2300-00LHow To Write Fast Numerical Code Information Restricted registration - show details
Number of participants limited to 84.

Prerequisite: Master student, solid C programming skills.
W6 credits3V + 2UM. Püschel
AbstractThis course introduces the student to the foundations and state-of-the-art techniques in developing high performance software for numerical functionality such as linear algebra and others. The focus is on optimizing for the memory hierarchy and for special instruction sets. Finally, the course will introduce the recent field of automatic performance tuning.
ObjectiveSoftware performance (i.e., runtime) arises through the interaction of algorithm, its implementation, and the microarchitecture the program is run on. The first goal of the course is to provide the student with an understanding of this interaction, and hence software performance, focusing on numerical or mathematical functionality. The second goal is to teach a general systematic strategy how to use this knowledge to write fast software for numerical problems. This strategy will be trained in a few homeworks and semester-long group projects.
ContentThe fast evolution and increasing complexity of computing platforms pose a major challenge for developers of high performance software for engineering, science, and consumer applications: it becomes increasingly harder to harness the available computing power. Straightforward implementations may lose as much as one or two orders of magnitude in performance. On the other hand, creating optimal implementations requires the developer to have an understanding of algorithms, capabilities and limitations of compilers, and the target platform's architecture and microarchitecture.

This interdisciplinary course introduces the student to the foundations and state-of-the-art techniques in high performance software development using important functionality such as linear algebra functionality, transforms, filters, and others as examples. The course will explain how to optimize for the memory hierarchy, take advantage of special instruction sets, and, if time permits, how to write multithreaded code for multicore platforms. Much of the material is based on state-of-the-art research.

Further, a general strategy for performance analysis and optimization is introduced that the students will apply in group projects that accompany the course. Finally, the course will introduce the students to the recent field of automatic performance tuning.
263-2812-00LProgram Verification Information Restricted registration - show details
Number of participants limited to 30.
W4 credits2V + 1UA. J. Summers
AbstractA hands-on introduction to the theory and construction of deductive software verifiers, covering both cutting-edge methodologies for formal program reasoning, and a perspective over the broad tool stacks making up modern verification tools.
ObjectiveStudents will earn the necessary skills for designing and developing deductive verification tools which can be applied to modularly analyse complex software, including features challenging for reasoning such as heap-based mutable data and concurrency. Students will learn both a variety of fundamental reasoning principles, and how these reasoning ideas can be made practical via automatic tools.

Students will be gain practical experience with reasoning tools at various levels of abstraction, from SAT and SMT solvers at the lowest level, up through intermediate verification languages and tools, to verifiers which target front-end code in executable languages.

By the end of the course, students should have a good working understanding and experience of the issues and decisions involved with designing and building practical verification tools, and the theoretical techniques which underpin them.
ContentThe course will be organized around building up a "tool stack", starting at the lowest-level with background on SAT and SMT solving techniques, and working upwards through tools at progressively-higher levels of abstraction. The notion of intermediate verification languages will be explored, and the Boogie (Microsoft Research) and Viper (ETH) languages will be used in depth to tackle increasingly ambitious verification tasks.

The course will intermix technical content with hands-on experience; at each level of abstraction, we will build small tools on top which can tackle specific program correctness problems, starting from simple puzzle solvers (Soduko) at the SAT level, and working upwards to full functional correctness of application-level code. This practical work will include three mini-projects (each worth 10% of the final grade) spread throughout the course, which count towards the final grade. An oral examination (worth 70% of the final grade) will cover the technical content covered.
Lecture notesSlides and other materials will be available online.
LiteratureBackground reading material and links to tools will be published on the course website.
Prerequisites / NoticeSome programming experience is essential, as the course contains several practical assignments. A basic familiarity with propositional and first-order logic will be assumed.

Courses with an emphasis on formal reasoning about programs (such as Formal Methods and Functional Programming) are advantageous background, but are not a requirement.
263-2910-00LProgram Analysis and Synthesis Information W6 credits3V + 2UM. Vechev
AbstractThis course covers the theory and practice of modern automated program analysis and synthesis, including both, discrete and probabilistic programs.

The techniques discussed in the course are general and widely applicable to problems in software engineering and verification, security, networks, machine learning, and other areas.
Objective* Understand the foundations of automated program analysis and synthesis techniques, including standard (discrete) and probabilistic programs.

* Understand how these foundations are applied to solve practical real-world problems.

* Understand how to interface these methods to other research areas (e.g., deep learning, Bayesian inference, security, networks)

* Understand the state-of-the-art in the area and future trends.
ContentThe last decade has seen an explosion in modern program analysis and synthesis techniques. These techniques are increasingly being used to reason about a vast range of computational paradigms, from finding security flaws in systems software (e.g., drivers) to automating the construction of programs (e.g., for end user programming), to programmable networks, to reliable machine learning models (e.g., probabilistic programming). This course provides a comprehensive introduction to these methods.

The course consists of 3 parts:

* Part I: Theory and Practice of Static Analysis

Static analysis is the science of creating precise and scalable finite approximations of potentially infinite behaviors so to enable a machine to automatically reason about these. These behaviors may come from programs but also other dynamic systems (e.g., biological). Hence the theory and principles of static analysis are widely applicable. We will cover:

- concepts: abstract interpretation, abstract domains, precision vs. asymptotic complexity
- applications: JavaScript type checking (as in Facebook's Flow), security analysis, parallelism and concurrency reasoning (e.g., GPU, weak memory).

* Part II: Theory and Practice of Synthesis

Modern program synthesis is an approach for automating the construction of programs from (partial) user intent. Recent years have seen exciting breakthroughs in techniques and algorithms that discover complex programs purely from input/output examples, natural language, partial programs (sketches) and many others forms of supervision and intent. Modern program synthesis can be seen as a path towards the ultimate goal of artificial intelligence and explainable machine learning. We will cover:

- concepts: version spaces, counter-example guided inductive synthesis, SMT solvers.
- applications: programming by example (e.g., Microsoft's FlashFill), programmable networks (e.g., SyNet).

* Part III: Programming Languages (PL) and Machine Learning (ML)

We will cover the latest and most exciting developments bridging the areas of machine learning and programming languages. These trends include both directions: (i) PL techniques applied to ML problems, and (ii) ML techniques applies to PL tasks (e.g., reasoning about a program). Here, we will cover:

- concepts: probabilistic programming, neural program synthesis (e.g., advance neural networks such as Neural Turing Machines), program synthesis with noise.
- applications: approximate computing, learning-based probabilistic programming engines (e.g., Link, Link)


To gain a deeper understanding of how to apply these techniques, the course will also involve a hands-on programming project.
Lecture notesThe lectures notes will be distributed in class.
LiteratureDistributed in class.
Prerequisites / NoticeThis course is aimed at both graduate (M.Sc., PhD) students as well as advanced undergraduate students.

The course has an oral exam, but for those on summer internships, the exam can be moved to the end of the semester.
263-3501-00LAdvanced Computer Networks Information W5 credits2V + 2UA. Singla, P. M. Stüdi
AbstractThis course covers a set of advanced topics in computer networks. The focus is on principles, architectures, and protocols used in modern networked systems, such as the Internet and data center networks.
ObjectiveThe goals of the course are to build on basic undergraduate-level networking, and provide an understanding of the tradeoffs and existing technology in the design of large, complex networked systems, together with concrete experience of the challenges through a series of lab exercises.
ContentThe focus of the course is on principles, architectures, and protocols used in modern networked systems. Topics include data center network topologies, software defined networking, network function virtualization, flow control and congestion control in data centers, end-point optimizations, and server virtualization.
263-3700-00LUser Interface Engineering Information W4 credits2V + 1UO. Hilliges, F. Pece
AbstractAn in-depth introduction to the core concepts of intelligent user-interfaces. The course primarily deals with machine analysis of human non-verbal behavior and its applications to human-computer, human-robot, and computer-mediated human-human interaction. Methods involve machine learning, deep learning and model based optimization.
ObjectiveStudents will learn about fundamental aspects of modern intelligent user interfaces. After completing the course students will have acquired theoretical and practical knowledge about the most important problems in machine understanding of human behavior and how to leverage such understanding in the design of intelligent user-facing technologies.

The core competency acquired through this course is a solid foundation in machine learning and deep-learning algorithms to process and interpret human input into computing systems. In particular, students should be able to develop systems that deal with the problem of recognizing people in images, detecting and describing body parts, inferring their spatial configuration, performing action/gesture recognition from still images or image sequences, also considering multi-modal data, among others. Furthermore, students will be able to leverage models of human behavior in optimization based (algorithmic) design of user interfaces.
ContentThe course covers theoretical and practical aspects of state-of-the-art algorithms that are foundational for intelligent user interfaces. A particular area of interest are machine-learning based algorithms, in particular deep-learning techniques, for semantic interpretation and machine analysis of human activity, including gestures and multi-modal interaction amongst others. 

The course covers the following main areas:
I) Machine-learning algorithms for input recognition (gestures, speech, etc.)
II) Deep-learning models for the analysis of time-series data (temporal sequences of motion)
III) Model-based optimization of user interfaces

Specific topics include: 
* Data-driven algorithms for user input recognition:
+ SVMs for classification and regression
+ Randomized Decision Forests for gesture recognition and pose estimation
+ Markov chains and HMMs for gesture and speech recognition
* Deep Learning techniques user input recognition:
+ Convolutional Neural Networks
+ Recurrent Neural Networks
* Applications of the above in HCI research
Lecture notesSlides and other materials will be available online. Lecture slides on a particular topic will typically not be made available prior the completion of that lecture.
LiteratureA detailed reading list will be made available on the course website.
Prerequisites / NoticePrerequisites: proficiency in a programming language such as C, programming methodology, problem analysis, program structure, etc. Normally met through an introductory course in programming in C, C++, Java. All practical exercises will require basic knowledge of Python and will use libraries such as TensorFlow (via Keras) and scikit-learn. We will provide introductions to TensorFlow and other libraries that are needed but will not provide introductions to basic programming or Python.

The following courses are strongly recommended as prerequisite:
* "Machine Learning"
* "Visual Computing" or "Computer Vision"
* "Human Computer Interaction"


The course will be assessed by a final examination in English. No course materials or electronic devices can be used during the examination. Note that the examination will be based on the contents of the lectures, the associated reading materials and the exercises.
263-4310-00LLinear Algebra Methods in Combinatorics Information W5 credits2V + 2UP. Penna
AbstractThis course describes the linear algebra bound technique also called dimension argument. To learn the technique we discuss several examples in combinatorics, geometry, and computer science. Besides this technique, the course aims at showing the mathematical elegance of certain proofs and the simplicity of the statements.
ObjectiveBecoming familiar with the method and being able to apply it to problems similar to those encountered during the course.
ContentThis course is (essentially) about one single technique called the "linear algebra bound" (also known as "dimension argument"). We shall see several examples in combinatorics, geometry, and computer science and learn the technique throughout these examples. Towards the end of the course, we shall see the power of this method in proving rather amazing results (e.g., a circuit complexity lower bound, explicit constructions of Ramsey graphs, and a famous conjecture in geometry disproved). The course also aims at illustrating the main ideas behind the proofs and how the various problems are in fact connected to each other.
Lecture notesLecture notes of each single lecture will be made available (shortly after the lecture itself).
LiteratureMost of the material of the course is covered by the following book:

1. Linear algebra methods in combinatorics, by L. Babai and P. Frankl, Department of Computer Science, University of Chicago, preliminary version, 1992.

Some parts are also taken from

2. Extremal Combinatorics (with Applications in Computer Science), by Stasys Jukna, Springer-Verlag 2001.
263-4312-00LAdvanced Data Structures Information W5 credits2V + 2UP. Uznanski
AbstractData structures play a central role in modern computer science and are essential building blocks in obtaining efficient algorithms. The course covers major results and research directions in data structures, that (mostly) have not yet made it into standard computer science curriculum.
ObjectiveLearning modern models of computation. Applying new algorithmic techniques to the construction of efficient data structures. Understanding techniques used in both lower- and upper- bound proofs on said data structures.
ContentThis course will survey important developments in data structures that have not (yet) worked their way into the standard computer science curriculum.
Though we will cover state of the art techniques, the presentation is relatively self-contained, and only assumes a basic undergraduate data structures course (e.g., knowledge of binary search trees).

The course material includes (but is not exhausted by):
- computation models and memory models
- string indexing (suffix trees, suffix arrays)
- search trees
- static tree processing (Lowest Common Ancestor queries, Level Ancestry queries)
- range queries on arrays (queries for minimal element in a given range)
- integers-only data structures: how to sort integers in linear time, faster predecessor structures (van Emde Boas trees)
- hashing
- data structures in distributed/parallel setting
- connectivity-related data structures
- dynamic graphs connectivity
- stream processing
Prerequisites / NoticeYou need to have passed a course on algorithms and data structures with relative ease.
263-4600-00LFormal Methods for Information Security Information W4 credits2V + 1UR. Sasse, C. Sprenger
AbstractThe course focuses on formal methods for the modelling and analysis of security protocols for critical systems, ranging from authentication protocols for network security to electronic voting protocols and online banking.
ObjectiveThe students will learn the key ideas and theoretical foundations of formal modelling and analysis of security protocols. The students will complement their theoretical knowledge by solving practical exercises, completing a small project, and using state-of-the-art tools.
ContentThe course treats formal methods for the modelling and analysis of security protocols. Cryptographic protocols (such as SSL/TLS, SSH, Kerberos, SAML single-sign on, and IPSec) form the basis for secure communication and business processes. Numerous attacks on published protocols show that the design of cryptographic protocols is extremely error-prone. A rigorous analysis of these protocols is therefore indispensable, and manual analysis is insufficient. The lectures cover the theoretical basis for the (tool-supported) formal modeling and analysis of such protocols. Specifically, we discuss their operational semantics, the formalization of security properties, and techniques and algorithms for their verification.

In addition to the classical security properties for confidentiality and authentication, we will study strong secrecy, privacy, and fairness properties. We will discuss electronic voting protocols, and RFID protocols (a staple of the Internet of Things), where these properties are central. The accompanying tutorials provide an opportunity to apply the theory and tools to concrete protocols.
  •  Page  1  of  3 Next page Last page     All