Search result: Catalogue data in Spring Semester 2018
Computer Science Bachelor | ||||||
Bachelor Studies (Programme Regulations 2016) | ||||||
Core Courses | ||||||
Major: Systems and Software Engineering | ||||||
Number | Title | Type | ECTS | Hours | Lecturers | |
---|---|---|---|---|---|---|
252-0210-00L | Compiler Design | O | 8 credits | 4V + 3U | T. Gross | |
Abstract | This course uses compilers as example to expose modern software development techniques. Compiler organization. Lexical analysis. Top-down parsing via recursive descent, table-driven parsers, bottom-up parsing. Symboltables, semantic checking. Code generation for a simple RISC machine: conditionals, loops, procedure calls, simple register allocation techniques. | |||||
Objective | Learn principles of compiler design, gain practical experience designing and implementing a medium-scale software system. | |||||
Content | This course uses compilers as example to expose modern software development techniques. The course introduces the students to the fundamentals of compiler construction. Students will implement a simple yet complete compiler for an object-oriented programming language for a realistic target machine. Students will learn the use of appropriate tools (parser generators); the implementation language is Java. Throughout the course, students learn to apply their knowledge of theory (automata, grammars, stack machines, program transformation) and well-known programming techniques (module definitions, design patterns, frameworks, software reuse) in a software project. Specific topics: Compiler organization. Lexical analysis. Top-down parsing via recursive descent, table-driven parsers, bottom-up parsing. Symboltables, semantic checking. Code generation for a simple RISC machine: expression evaluation, straight line code, conditionals, loops, procedure calls, simple register allocation techniques. Storage allocation on the stack, parameter passing, runtime storage management, heaps. Special topics as time permits: introduction to global dataflow and its application to register allocation, instruction scheduling, practical application of the techniques and principles presented in the lecture in the context of the OpenJDK HotSpot Java Virtual Machine. | |||||
Literature | Aho/Lam/Sethi/Ullmann, Compilers - Principles, Techniques, and Tools (2nd Edition) Muchnick, Advanced Compiler Design and Implementation, Morgan Kaufmann Publishers, 1997 | |||||
Prerequisites / Notice | Prerequisites: Prior exposure to modern techniques for program construction, knowledge of at least one processor architecture at the assembly language level. | |||||
252-0216-00L | Software Architecture and Engineering | O | 8 credits | 4V + 3U | P. Müller, M. Vechev | |
Abstract | This course introduces both theoretical and applied aspects of software engineering and analysis. It covers: - Software Architecture - Informal and formal Modeling - Design Patterns - Code Refactoring - Program Testing - Dynamic Program Analysis - Static Program Analysis | |||||
Objective | The course has two main objectives: - Obtain an end-to-end (both, theoretical and practical) understanding of the core techniques used for building quality software. - Understand how to apply these techniques in practice. | |||||
Content | Some of the core technical topics covered will be: - modeling and mapping of models to code - common code design patterns - functional and structural testing - dynamic and static analysis | |||||
Literature | Will be announced in the lecture. | |||||
Major: Information and Data Processing | ||||||
Number | Title | Type | ECTS | Hours | Lecturers | |
252-0220-00L | Introduction to Machine Learning Previously called Learning and Intelligent Systems Prof. Krause approves that students take distance exams, also if the exam will take place at a later time due to a different time zone of the alternative exam place. To get Prof. Krause's signature on the distance exam form please send it to Rita Klute, Link. | O | 8 credits | 4V + 2U + 1A | A. Krause | |
Abstract | The course introduces the foundations of learning and making predictions based on data. | |||||
Objective | The course will introduce the foundations of learning and making predictions from data. We will study basic concepts such as trading goodness of fit and model complexitiy. We will discuss important machine learning algorithms used in practice, and provide hands-on experience in a course project. | |||||
Content | - Linear regression (overfitting, cross-validation/bootstrap, model selection, regularization, [stochastic] gradient descent) - Linear classification: Logistic regression (feature selection, sparsity, multi-class) - Kernels and the kernel trick (Properties of kernels; applications to linear and logistic regression; k-NN - The statistical perspective (regularization as prior; loss as likelihood; learning as MAP inference) - Statistical decision theory (decision making based on statistical models and utility functions) - Discriminative vs. generative modeling (benefits and challenges in modeling joint vy. conditional distributions) - Bayes' classifiers (Naive Bayes, Gaussian Bayes; MLE) - Bayesian networks and exact inference (conditional independence; variable elimination; TANs) - Approximate inference (sum/max product; Gibbs sampling) - Latent variable models (Gaussian Misture Models, EM Algorithm) - Temporal models (Bayesian filtering, Hidden Markov Models) - Sequential decision making (MDPs, value and policy iteration) - Reinforcement learning (model-based RL, Q-learning) | |||||
Literature | Textbook: Kevin Murphy: A Probabilistic Perspective, MIT Press | |||||
Prerequisites / Notice | Designed to provide basis for following courses: - Advanced Machine Learning - Data Mining: Learning from Large Data Sets - Probabilistic Artificial Intelligence - Probabilistic Graphical Models - Seminar "Advanced Topics in Machine Learning" | |||||
Major: Theoretical Computer Science | ||||||
Number | Title | Type | ECTS | Hours | Lecturers | |
252-0211-00L | Information Security | O | 8 credits | 4V + 3U | D. Basin, S. Capkun | |
Abstract | This course provides an introduction to Information Security. The focus is on fundamental concepts and models, basic cryptography, protocols and system security, and privacy and data protection. While the emphasis is on foundations, case studies will be given that examine different realizations of these ideas in practice. | |||||
Objective | Master fundamental concepts in Information Security and their application to system building. (See objectives listed below for more details). | |||||
Content | 1. Introduction and Motivation (OBJECTIVE: Broad conceptual overview of information security) Motivation: implications of IT on society/economy, Classical security problems, Approaches to defining security and security goals, Abstractions, assumptions, and trust, Risk management and the human factor, Course verview. 2. Foundations of Cryptography (OBJECTIVE: Understand basic cryptographic mechanisms and applications) Introduction, Basic concepts in cryptography: Overview, Types of Security, computational hardness, Abstraction of channel security properties, Symmetric encryption, Hash functions, Message authentication codes, Public-key distribution, Public-key cryptosystems, Digital signatures, Application case studies, Comparison of encryption at different layers, VPN, SSL, Digital payment systems, blind signatures, e-cash, Time stamping 3. Key Management and Public-key Infrastructures (OBJECTIVE: Understand the basic mechanisms relevant in an Internet context) Key management in distributed systems, Exact characterization of requirements, the role of trust, Public-key Certificates, Public-key Infrastructures, Digital evidence and non-repudiation, Application case studies, Kerberos, X.509, PGP. 4. Security Protocols (OBJECTIVE: Understand network-oriented security, i.e.. how to employ building blocks to secure applications in (open) networks) Introduction, Requirements/properties, Establishing shared secrets, Principal and message origin authentication, Environmental assumptions, Dolev-Yao intruder model and variants, Illustrative examples, Formal models and reasoning, Trace-based interleaving semantics, Inductive verification, or model-checking for falsification, Techniques for protocol design, Application case study 1: from Needham-Schroeder Shared-Key to Kerberos, Application case study 2: from DH to IKE. 5. Access Control and Security Policies (OBJECTIVES: Study system-oriented security, i.e., policies, models, and mechanisms) Motivation (relationship to CIA, relationship to Crypto) and examples Concepts: policies versus models versus mechanisms, DAC and MAC, Modeling formalism, Access Control Matrix Model, Roll Based Access Control, Bell-LaPadula, Harrison-Ruzzo-Ullmann, Information flow, Chinese Wall, Biba, Clark-Wilson, System mechanisms: Operating Systems, Hardware Security Features, Reference Monitors, File-system protection, Application case studies 6. Anonymity and Privacy (OBJECTIVE: examine protection goals beyond standard CIA and corresponding mechanisms) Motivation and Definitions, Privacy, policies and policy languages, mechanisms, problems, Anonymity: simple mechanisms (pseudonyms, proxies), Application case studies: mix networks and crowds. 7. Larger application case study: GSM, mobility |
- Page 1 of 1