Search result: Catalogue data in Spring Semester 2017
Computer Science Bachelor | ||||||
Bachelor Studies (Programme Regulations 2016) | ||||||
First Year Examinations | ||||||
First Year Examination Block 1 Offered in the autumn semester. | ||||||
First Year Examination Block 2 | ||||||
Number | Title | Type | ECTS | Hours | Lecturers | |
---|---|---|---|---|---|---|
401-0212-16L | Analysis I | O | 7 credits | 4V + 2U | Ö. Imamoglu | |
Abstract | Real and complex numbers, vectors, functions, limits, sequences, series, power series, differentiation and integration in one variable | |||||
Learning objective | Real and complex numbers, vectors, functions, limits, sequences, series, power series, differentiation and integration in one variable | |||||
Content | Real and complex numbers, vectors, functions, limits, sequences, series, power series, differentiation and integration in one variable | |||||
Literature | Michael Struwe: Analysis für Informatik Christian Blatter: Ingenieur-analysis Tom Apostol: Mathematical Analysis | |||||
252-0028-00L | Design of Digital Circuits | O | 7 credits | 4V + 2U | O. Mutlu, S. Capkun | |
Abstract | The class provides an introduction to the design of digital circuitry. The class covers the basics of the technical foundations of gates. An introduction to hardware description languages and their use in the design process follows. | |||||
Learning objective | The class provides an introduction to the design of digital circuitry. The class covers the basics of the technical foundations of gates. An introduction to hardware description languages and their use in the design process follows. | |||||
Content | The class provides an introduction to the design of digital circuitry. The class covers the basics of the technical foundations of gates. An introduction to hardware description languages and their use in the design process follows. | |||||
252-0029-00L | Parallel Programming | O | 7 credits | 4V + 2U | T. Hoefler, M. Vechev | |
Abstract | Introduction to parallel programming: deterministic and non-deterministic programs, models for parallel computation, synchronization, communication, and fairness. | |||||
Learning objective | The student should learn how to write a correct parallel program, how to measure its efficiency, and how to reason about a parallel program. Student should become familiar with issues, problems, pitfalls, and solutions related to the construction of parallel programs. Labs provide an opportunity to gain experience with threads, libraries for thread management in modern programming lanugages (e.g., Java, C#) and with the execution of parallel programs on multi-processor/multi-core computers. | |||||
252-0030-00L | Algorithms and Probability | O | 7 credits | 4V + 2U | A. Steger, E. Welzl | |
Abstract | Fortsetzung der Vorlesung Algorithmen und Datenstrukturen des ersten Semesters. Es werden klassische Algorithmen aus verschiedenen Anwendungsbereichen vorgestellt. In die diskrete Wahrscheinlichkeitstheorie wird eingeführt und das Konzept randomisierter Algorithmen an verschiedenen Beispielen vorgestellt. | |||||
Learning objective | Verständnis des Entwurfs und der Analyse von Algorithmen. Grundlagen der diskreten Wahrscheinlichkeitstheorie und ihrer Anwendung in der Algorithmik. | |||||
Basic Courses | ||||||
Number | Title | Type | ECTS | Hours | Lecturers | |
252-0064-00L | Networks Does not take place this semester. This course unit will be given in FS18 for the first time according to programme regulations 2016 Computer Science BSc. | O | 7 credits | 4V + 2U | not available | |
Abstract | ||||||
Learning objective | ||||||
401-0614-00L | Wahrscheinlichkeit und Statistik Does not take place this semester. This course unit will be given in FS18 for the first time according to programme regulations 2016 Computer Science BSc. | O | 5 credits | 2V + 2U | not available | |
Abstract | ||||||
Learning objective | ||||||
Bachelor Studies (Programme Regulations 2008) | ||||||
2. Semester | ||||||
Number | Title | Type | ECTS | Hours | Lecturers | |
252-0002-00L | Data Structures and Algorithms | O | 7 credits | 4V + 2U | F. Friedrich Wicker | |
Abstract | This course is about fundamental algorithm design paradigms (such as induction, divide-and-conquer, backtracking, dynamic programming), classic algorithmic problems (such as sorting and searching), and data structures (such as lists, hashing, search trees). Moreover, an introduction to parallel programming is provided. The programming model of C++ will be discussed in some depth. | |||||
Learning objective | An understanding of the design and analysis of fundamental algorithms and data structures. Knowledge regarding chances, problems and limits of parallel and concurrent programming. Deeper insight into a modern programming model by means of the programming language C++. | |||||
Content | Fundamental algorithms and data structures are presented and analyzed. Firstly, this comprises design paradigms for the development of algorithms such as induction, divide-and-conquer, backtracking and dynamic programming and classical algorithmic problems such as searching and sorting. Secondly, data structures for different purposes are presented, such as linked lists, hash tables, balanced search trees, heaps and union-find structures. The relationship and tight coupling between algorithms and data structures is illustrated with geometric problems and graph algorithms. In the part about parallel programming, parallel architectures are discussed conceptually (multicore, vectorization, pipelining). Parallel programming concepts are presented (Amdahl's and Gustavson's laws, task/data parallelism, scheduling). Problems of concurrency are analyzed (Data races, bad interleavings, memory reordering). Process synchronisation and communication in a shared memory system is explained (mutual exclusion, semaphores, monitors, condition variables). Progress conditions are analysed (freedom from deadlock, starvation, lock- and wait-freedom). The concepts are underpinned with examples of concurrent and parallel programs and with parallel algorithms. The programming model of C++ is discussed in some depth. The RAII (Resource Allocation is Initialization) principle will be explained. Exception handling, functors and lambda expression and generic prorgamming with templates are further examples of this part. The implementation of parallel and concurrent algorithm with C++ is also part of the exercises (e.g. threads, tasks, mutexes, condition variables, promises and futures). | |||||
Literature | Cormen, Leiserson, Rivest, and Stein: Introduction to Algorithms, 3rd ed., MIT Press, 2009. ISBN 978-0-262-03384-8 (recommended text) Maurice Herlihy, Nir Shavit, The Art of Multiprocessor Programming, Elsevier, 2012. B. Stroustrup, The C++ Programming Language (4th Edition) Addison-Wesley, 2013. B. Stroustrup, The C++ Programming Language (4th Edition) Addison-Wesley, 2013. | |||||
Prerequisites / Notice | Prerequisites: Lecture Series 252-0835-00L Informatik I or equivalent knowledge in programming with C++. | |||||
252-2610-00L | Foundations of Eiffel-Programming Nur geeignet für Repetenten der Basisprüfung nach Studienreglement 2008 | Z | 0 credits | 2G | H. Lehner | |
Abstract | ||||||
Learning objective | The Students - know Eiffel-specific language concepts and terminology - understand the basic concepts of object-oriented programming using Eiffel - are able to apply this knowledge to solve algorithmic tasks on their own - can write software specifications using Eiffel contracts | |||||
Content | Complementary service for the lecture "Einführung in die Programmierung" of the fall semester 2015 for students in the bachelor regulations 08. Students can enroll in this course for optimal preparation for the exam of the mentioned lecture. | |||||
Lecture notes | All material and information of this course is available on the webpage http://lec.inf.ethz.ch/gep/ (in german). | |||||
Prerequisites / Notice | - Have been enrolled in "Einführung in die Programmierung" in fall semester 2015 - are studying in the bachelor regulations 08 | |||||
402-0038-00L | Physics Course will no longer take place after FS 2017. Only for Computer Science BSc, Programme Regulations 2008. | O | 6 credits | 3V + 2U | C. Grab | |
Abstract | Introduction to physics with emphasis on mechanics, relativity, thermodynamics und electromagnetism. Demonstrations, examples and exercises illustrate the basic concepts. | |||||
Learning objective | Become familiar with some of the important topics in classical and modern physics. | |||||
Content | Mechanics: Motion, Newton's axioms, work and energy, vibrations and waves, special relativity. Thermodynamics: temperature, gases, thermal radiation, engines Electromagnetism: Electrostatics, stationary currents, time dependent fields, Maxwell's equations, electromagnetic waves. | |||||
Lecture notes | 'Physics for Informatics Students' Lecture taught at ETH Zurich in FS15 Prof. Dr. A.Rubbia (Script in German) | |||||
Literature | "Principles of Physics" Author: Halliday, David Wiley & Sons, 2010 ISBN 978-0-470-56158-4 | |||||
Prerequisites / Notice | Prerequisites: mathematical foundations, vectors, calculus. | |||||
4. Semester | ||||||
Compulsory Courses (4. Sem.) | ||||||
Number | Title | Type | ECTS | Hours | Lecturers | |
252-0058-00L | Formal Methods and Functional Programming | O | 7 credits | 4V + 2U | D. Basin, P. Müller | |
Abstract | In this course, participants will learn about new ways of specifying, reasoning about, and developing programs and computer systems. The first half will focus on using functional programs to express and reason about computation. The second half presents methods for developing and verifying programs represented as discrete transition systems. | |||||
Learning objective | In this course, participants will learn about new ways of specifying, reasoning about, and developing programs and computer systems. Our objective is to help students raise their level of abstraction in modeling and implementing systems. | |||||
Content | The first part of the course will focus on designing and reasoning about functional programs. Functional programs are mathematical expressions that are evaluated and reasoned about much like ordinary mathematical functions. As a result, these expressions are simple to analyze and compose to implement large-scale programs. We will cover the mathematical foundations of functional programming, the lambda calculus, as well as higher-order programming, typing, and proofs of correctness. The second part of the course will focus on deductive and algorithmic validation of programs modeled as transition systems. As an example of deductive verification, students will learn how to formalize the semantics of imperative programming languages and how to use a formal semantics to prove properties of languages and programs. As an example of algorithmic validation, the course will introduce model checking and apply it to programs and program designs. | |||||
252-0062-00L | Operating Systems and Networks | O | 8 credits | 4V + 3U | T. Hoefler, A. Perrig | |
Abstract | This is an introductory course on computer networks and operating systems, with a particular focus on networking in the Internet and monolithic operating systems like Linux and Windows. Network and OS programming at different levels is an integral part of the course. | |||||
Learning objective | This course is intended as an introduction to both computer networking and operating systems for computer scientists. Students will get a comprehensive overview of the key protocols and the general architecture of the Internet, as one example of more general principles in network design, and acquire hands-on experience in programming different aspects of a computer network. In addition, the course provides a full introduction to modern operating system design, including memory management, scheduling, I/O, protection, and so on. The architecture of Unix-like operating systems (such as Linux) is used as an example of more general principles in OS design. | |||||
Lecture notes | The slides for each lecture will be made available in the web pages of the course, along with additional reference material. | |||||
Literature | The networking material will be based on the following text book: Computer Networks (5th Edition) Andrew S. Tanenbaum, David J. Wetherall Prentice Hall; 5 edition (October 7, 2010) In addition, the following textbook provides useful background for the operating systems material in the course: Modern Operating Systems (3rd Edition) Andrew S. Tanenbaum Prentice-Hall, 2007 | |||||
252-0063-00L | Data Modelling and Databases | O | 7 credits | 4V + 2U | G. Alonso, C. Zhang | |
Abstract | Data modelling (Entity Relationship), relational data model, relational design theory (normal forms), SQL, database integrity, transactions and advanced database engines | |||||
Learning objective | Introduction to relational databases and data management. Basics of SQL programming and transaction management. | |||||
Content | The course covers the basic aspects of the design and implementation of databases and information systems. The courses focuses on relational databases as a starting point but will also cover data management issues beyond databases such as: transactional consistency, replication, data warehousing, other data models, as well as SQL. | |||||
Literature | Kemper, Eickler: Datenbanksysteme: Eine Einführung. Oldenbourg Verlag, 7. Auflage, 2009. Garcia-Molina, Ullman, Widom: Database Systems: The Complete Book. Pearson, 2. Auflage, 2008. | |||||
Compensatory Courses Compulsory major courses count as compensatory courses. | ||||||
Major | ||||||
Compulsory Major Courses | ||||||
Major in Computer and Software Engineering | ||||||
Number | Title | Type | ECTS | Hours | Lecturers | |
252-0210-00L | Compiler Design | O | 8 credits | 4V + 3U | Z. Majó | |
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. | |||||
Learning 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-0215-00L | Information Systems Diese Lehrveranstaltung wird im FS17 zum letzten Mal in dieser Form angeboten. | O | 8 credits | 4V + 2U + 1A | M. Norrie | |
Abstract | The course goes beyond relational technologies to examine the range of different database technologies available today. It also introduces the basic concepts of information retrieval and discusses the design decisions behind modern information system architectures. | |||||
Learning objective | The goal of the course is to introduce students to the wide range of technologies in use today for data storage and retrieval. This will include extensions of relational database technologies, non-relational database systems and information retrieval systems. Through the use of a case study, students will also learn about modern information system architectures and the design decisions behind them. | |||||
Content | The course follows on from an earlier course on relational database technologies by introducing other database paradigms and extensions to relational systems. Students will gain experience of working with object, NoSQL and XML databases and the course will examine the features of these systems in terms of their approaches to storage, querying and transaction management and how they compare to relational systems and each other. The course will also look at how relational systems have been extended to support specific types of data, for example spatial, temporal and text data. In the second half of the course, the students will be introduced to modern information system architectures that build on one or more database technologies and a case study will be used to examine the design decisions behind such architectures. The case study will also be used to introduce students to the problems and techniques associated with integration, data quality and evolution in systems for large-scale, long-term data management. The last part of the course will introduce the basic concepts of information retrieval systems, web search and web data extraction. | |||||
Literature | Database Management Systems, Raghu Ramakrishnan and Johannes Gehrke, 3rd edition, pub McGraw Hill, 2003. | |||||
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 | |||||
Learning 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 in Computational Science | ||||||
Number | Title | Type | ECTS | Hours | Lecturers | |
252-0220-00L | Learning and Intelligent Systems | O | 8 credits | 4V + 2U + 1A | G. Rätsch, T. Hofmann | |
Abstract | The course introduces the foundations of learning and making predictions based on data. | |||||
Learning 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" | |||||
401-0674-00L | Numerical Methods for Partial Differential Equations Not meant for BSc/MSc students of mathematics. | O | 8 credits | 4V + 2U + 1A | S. Mishra | |
Abstract | Derivation, properties, and implementation of fundamental numerical methods for a few key partial differential equations: Poisson equation, heat equation, transport equation, conservation laws. Implementation of the algorithms in C++ | |||||
Learning objective | Main skills to be acquired in this course: * Ability to implement advanced numerical methods for the solution of partial differential equations efficiently * Ability to modify and adapt numerical algorithms guided by awareness of their mathematical foundations * Ability to select and assess numerical methods in light of the predictions of theory * Ability to identify features of a PDE (= partial differential equation) based model that are relevant for the selection and performance of a numerical algorithm * Ability to understand research publications on theoretical and practical aspects of numerical methods for partial differential equations. * Skills in the efficient implementation of numerical methods for PDEs. This course is neither a course on the mathematical foundations and numerical analysis of methods nor an course that merely teaches recipes and how to apply software packages. | |||||
Content | 1. General introduction to PDEs and their solutions. 2. 1-D Poisson equation -- Green's function, maximum principles, finite difference schemes. 3. Finite elements for the Poisson equation -- Variational formulation, basic finite element formulation with piecewise linear elements, error analysis, different boundary conditions. Efficient implementation of the finite element method. FEM for general elliptic PDEs, Higher-order finite elements. 4. Parabolic PDEs: exact solution formulas for the heat equation, energy method, maximum principles, Finite difference schemes for the heat equation with explicit, implicit and Crank-Nicolson schemes, error analysis. 5. Linear Transport equations -- method of characteristics, central and upwind finite difference schemes. 6. Scalar conservation laws -- Shocks, rarefactions, solutions to the Riemann problem, weak solutions, entropy conditions, Godunov type schemes, high-resolution schemes. | |||||
Lecture notes | Hand-written notes and script will be made available. | |||||
Literature | Lecture notes and references mentioned in the lecture notes. | |||||
Prerequisites / Notice | Mastery of basic calculus and linear algebra is taken for granted. Familiarity with fundamental numerical methods (solution methods for linear systems of equations, interpolation, approximation, numerical quadrature, numerical integration of ODEs) is essential. Important: Coding skills in MATLAB and C++ are essential. Homework asssignments involve substantial coding in C++. | |||||
151-0116-10L | High Performance Computing for Science and Engineering (HPCSE) for Engineers II | W | 4 credits | 4G | P. Chatzidoukas, K. Papadimitriou | |
Abstract | This course focuses on programming methods and tools for parallel computing on multi and many-core architectures. Emphasis will be placed on practical and computational aspects of Uncertainty Quantification and Propagation including the implementation of relevant algorithms on HPC architectures. | |||||
Learning objective | The course will teach - programming models and tools for multi and many-core architectures - fundamental concepts of Uncertainty Quantification and Propagation (UQ+P) for computational models of systems in Engineering and Life Sciences | |||||
Content | High Performance Computing: - Advanced topics in shared-memory programming - Advanced topics in MPI - GPU architectures and CUDA programming Uncertainty Quantification: - Uncertainty quantification under parametric and non-parametric modeling uncertainty - Bayesian inference with model class assessment - Markov Chain Monte Carlo simulation | |||||
Lecture notes | http://www.cse-lab.ethz.ch/index.php/teaching/42-teaching/classes/704-hpcse2 Class notes, handouts | |||||
Literature | - Class notes - Introduction to High Performance Computing for Scientists and Engineers, G. Hager and G. Wellein - CUDA by example, J. Sanders and E. Kandrot - Data Analysis: A Bayesian Tutorial, Devinderjit Sivia | |||||
Major in 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. | |||||
Learning 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 | |||||
Electives Compulsory major courses may also qualify as electives. Students may also choose courses from the Master's program in Computer Science. It is their responsibility to make sure that they meet the requirements and conditions for these courses. | ||||||
Number | Title | Type | ECTS | Hours | Lecturers | |
252-0055-00L | Information Theory | W | 4 credits | 2V + 1U | L. Haug | |
Abstract | The course covers the fundamental concepts of Shannon's information theory. The most important topics are: Entropy, information, data compression, channel coding, codes. | |||||
Learning objective | The goal of the course is to familiarize with the theoretical fundamentals of information theory and to illustrate the practical use of the theory with the help of selected examples of data compression and coding. | |||||
Content | Introduction and motivation, basics of probability theory, entropy and information, Kraft inequality, bounds on expected length of source codes, Huffman coding, asymptotic equipartition property and typical sequences, Shannon's source coding theorem, channel capacity and channel coding, Shannon's noisy channel coding theorem, examples | |||||
Literature | T. Cover, J. Thomas: Elements of Information Theory, John Wiley, 1991. D. MacKay, Information Theory, Inference and Learning Algorithms, Cambridge University Press, 2003. C. Shannon, The Mathematical Theory of Communication, 1948. |
- Page 1 of 2 All