CINXE.COM

Main Page

<!DOCTYPE html> <html lang="en" data-bs-theme=""> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title> Main Page </title> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="Markus Bauer, Marc Jose, Sigurd Schneider"> <meta name="commit" content="68a829ca75de920005cb4a9fea469531bf66b624@develop"> <style> html[data-bs-theme=dark] .site-logo > img { content: url("/system/theme/Sic/img/logo-dark.png"); } </style> <link rel="stylesheet" type="text/css" href="/system/css/cakecms.css" course="system"/><link rel="stylesheet" type="text/css" href="/system/css/fontawesome.min.css" course="system"/><link rel="stylesheet" type="text/css" href="/system/css/theme.css" course="system"/><link rel="stylesheet" type="text/css" href="/system/css/theme-custom.css" course="system"/><script type="text/javascript" src="/system/js/modern/bootstrap.bundle.min.js" course="system"></script><script type="text/javascript" src="/system/js/modern/tempus-dominus.min.js" course="system"></script><script type="text/javascript" src="/system/js/modern/popper.min.js" course="system"></script><script type="text/javascript" src="/system/js/modern/custom.js" course="system"></script> <link rel="apple-touch-icon-precomposed" sizes="144x144" href="/system/theme/Sic/img/apple-touch-icon-144-precomposed.png"> <link rel="apple-touch-icon-precomposed" sizes="114x114" href="/system/theme/Sic/img/apple-touch-icon-114-precomposed.png"> <link rel="apple-touch-icon-precomposed" sizes="72x72" href="/system/theme/Sic/img/apple-touch-icon-72-precomposed.png"> <link rel="apple-touch-icon-precomposed" sizes="57x57" href="/system/theme/Sic/img/apple-touch-icon-57-precomposed.png"> <link rel="shortcut icon" type="image/x-icon" href="/system/theme/Sic/img/favicon.png"> <link rel="icon" type="image/x-icon" href="/system/theme/Sic/img/favicon.png"> <!--[if lt IE 9]> <script type="text/javascript" src="/algodat23/js/ie_html5shiv.js"></script> <![endif]--> </head> <body class="bg-body-tertiary d-flex flex-column py-0" style="min-height: 100vh;"> <nav class="navbar navbar-dark border-bottom navbar-expand-lg fixed-top"> <div class="container-lg"> <a href="/algodat23/../system" class="navbar-brand">Courses</a> <div class="navbar-expand flex-grow-1 flex-s d-lg-none overflow-none"> <ul class="navbar-nav d-lg-none flex-wrap" id="navbar-overflow"></ul> </div> <button class="navbar-toggler ms-2" type="button" data-bs-toggle="collapse" data-bs-target="#navbar-course" aria-controls="navbar-system" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbar-course"> <ul class="navbar-nav me-auto mb-2 mb-md-0" id="navbar-main"> <li class="nav-item"><a class="nav-link active" href="/algodat23/">Main Page</a></li><li class="nav-item dropdown"><button class="nav-link dropdown-toggle" type="button" data-bs-toggle="dropdown">Information</button><ul class="dropdown-menu"><li><a class="dropdown-item" href="/algodat23/termine/calendar/index">Timetable</a></li><li><a class="dropdown-item" href="/algodat23/tutors">Team</a></li></ul></li><li class="nav-item"><a class="nav-link" href="/algodat23/students/register">Registration</a></li><li class="nav-item"><a class="nav-link" href="/algodat23/landing">Personal Status</a></li> </ul> <div class="navbar-nav"> <div class="dropdown"> <button class="dropdown-toggle nav-link user-menu-toggle" data-bs-toggle="dropdown" data-bs-auto-close="outside"> <i class="fa fa-user fa-fw"></i> Login <b class="caret"></b> </button> <ul class="dropdown-menu dropdown-menu-end"> <form action="/algodat23/users/login" class="p-2 dropdown-item-text d-grid gap-2" style="min-width: 240px" id="UserLoginMenuForm" method="post" accept-charset="utf-8"><div style="display:none;"><input type="hidden" name="_method" value="POST"/><input type="hidden" name="data[_Token][key]" value="755a97769b17d06e25171dd37467e0d905bd48837b7dd37c0311cb41208bb88baacc77dde1a7c1b59b948ae3e3c5c09f46b39b8beb94855a7499cad5337d4e93" id="Token1350077907" autocomplete="off"/></div> <input name="data[User][username]" placeholder="Username" id="MenuUserUsername" maxlength="100" class="form-control" type="text" required="required"/> <input name="data[User][password]" placeholder="Password" id="MenuUserPassword" class="form-control" type="password" required="required"/> <div class="my-2"><input type="hidden" name="data[Auth][remember_me]" id="MenuAuthRememberMe_" value="0"/><input type="checkbox" name="data[Auth][remember_me]" id="MenuAuthRememberMe" class="form-check-input" value="1"/><label for="MenuAuthRememberMe" class="mx-2 form-check-label">Remember me</label></div> <input type="hidden" name="data[User][redirect]" value="https://cms.sic.saarland/algodat23/landing" id="MenuRedirect" class="form-control"/> <li class="d-grid"> <button type="submit" class="btn btn-primary"><i class="fa fa-right-to-bracket"></i> Login</button> </li> <div style="display:none;"><input type="hidden" name="data[_Token][fields]" value="10d30f5dc23345ff66000b4d1df633937e280ca0%3AUser.redirect" id="TokenFields145856066" autocomplete="off"/><input type="hidden" name="data[_Token][unlocked]" value="" id="TokenUnlocked596191663" autocomplete="off"/></div></form> <li class="dropdown-divider"></li> <li> <a href="/algodat23/students/register" class="dropdown-item"><i class="fa fa-user-plus fa-fw"></i> Registration</a> </li> <li> <a href="/algodat23/Users/lost" class="dropdown-item"><i class="fa fa-lock-open fa-fw"></i> Forgot Password?</a> </li> <li><hr class="dropdown-divider"></li> <li style="min-width: 270px;"> <button class="dropdown-item lightmode-only" data-toggle="theme" data-bs-theme="dark"> <i class="fa fa-moon fa-fw"></i> Enable dark mode </button> <button class="dropdown-item darkmode-only" data-toggle="theme" data-bs-theme="light"> <i class="fa fa-sun fa-fw"></i> Enable light mode </button> </li> </ul> </div> </div> </div> </div> </nav> <!-- page-header --> <div class="border-bottom flex-shrink-0"> <!-- This navbar is just a vertical spacer --> <div class="navbar bg-body-tertiary"> <div class="container-lg"> <a class="navbar-brand" href="#">&nbsp;</a> </div> </div> <div class="container-lg py-3"> <div class="page-header"> <div class="page-logo"> <a href="/algodat23/../system" class="site-logo" title="Front Page"><img src="/system/theme/Sic/img/logo.png" course="system" alt=""/></a> </div> <div class="page-title"> <h1 class="mt-1"> Algorithms and Data Structures (block course) </h1> <div> <small class="text-muted"> Karl Bringmann, Evangelos Kipouridis, Philip Wellnitz </small> </div> <div class="mt-2"><small class="text-muted fs-6">Core Lecture 9CP</small></div> </div> </div> </div> </div> <!-- /page-header --> <!-- main-content --> <div class="bg-body py-3 flex-shrink-0 flex-grow-1"> <div class="container-lg main-layout"> <div class="row"> <main class="col-12"> <div id="content" class="content"> <section> <h2>News</h2> <div class="action-row"> </div> <table class="table"> <colgroup> <col span="1" style="width: auto;" /> </colgroup> <tbody> <tr> <td class="align-top"> <a id="newsElement5"></a> <h4 class="fs-5"><a href="/algodat23/news/view/5">Grades and Inspection II</a></h4> <p> <small class="text-muted"><i> Written on <span data-bs-toggle="tooltip" data-bs-title="12.04.2024 16:37:45">12.04.24</span> by Karl Bringmann </i></small> </p> <p>Dear students,</p> <p>You can now see your grade for the re-exam by logging into the course website.</p> <p>On Monday from 14:00-15:00 you can inspect your exam in room 415, E1 3.</p> </td> </tr> </tbody> </table> </section> <section> <div class="action-row"> </div> <div class="page overflow-auto"> <h2>Algorithms and Data Structures (block course)</h2> <p>The course will cover basic and advanced data structures and algorithms, as well as their analysis. Examples of data structures are perfect hashing, splay trees, randomized search trees, union-find structures. In terms of problem domains, we cover graphs, strings, polynomials, and geometry. Furthermore, we discuss algorithm analysis techniques such as&nbsp;amortization and&nbsp;randomization, and general algorithm design principles.</p> <h3>Time, Date, and Format</h3> <p>This core course will be offered in an intensive block version <strong>between February 28 and March 26</strong>. The course can be taken only in presence.</p> <p>The format of the course will be as follows: A &quot;unit&quot; consists of a 70 minute lecture, followed by 2 hours of group work on an exercise sheet, followed by a short discussion section with a tutor (tutorial). Typically we will have two units a day, the first starting at 9am, the second at 2pm, Monday through Friday, except for Wednesdays, which will have only the morning unit. As an exception, the <strong>first lecture happens on February 28 at 14:00</strong>. See Information&rarr;Timetable for details.</p> <p>The lecture will take place in room <strong>HS003 in building E1 3</strong>.</p> <p>The tutorial will take place at 12:00 and at 17:00 in seminar room <strong>106 in building E1 1</strong>. The room 016 in building E1 3 is also reserved throughout the lecture period as working space.</p> <p>This will be a very intensive course. Do not plan on doing anything else serious beside it.</p> <h3>Registration</h3> <p>You need to register on this webpage to get access to exercise sheets and other course material.</p> <h3>Exams</h3> <p>You grade will be determined by a written exam. Admittance to the exams requires active participation in the course.</p> <p>Endterm:&nbsp; 28.03. 2pm-4pm, HS I in E2 5</p> <p>Re-Exam:&nbsp; 11.04. 2pm-4pm, HS 002 in E1 3</p> <h3>Prerequisites</h3> <p>The course requires basic knowledge in algorithms and data structures as covered for example by the course &ldquo;Introduction to Algorithms and Data Structures&rdquo; (&ldquo;Grundz&uuml;ge von Algorithmen und Datenstrukturen&rdquo;). In particular, you should be familiar with correctness proofs of algorithms. Specific concepts that you should have basic familiarity with and should be able to apply include:</p> <ul> <li>pseudocode notation</li> <li>O-notation, running time analysis</li> <li>binary search</li> <li>basic sorting algorithms, mergesort</li> <li>arrays, linked lists</li> <li>stacks, queues</li> <li>heaps / priority queues</li> <li>binary search trees, balanced binary search trees (e.g. AVL trees)</li> <li>definition of a graph</li> <li>graph traversal (e.g. depth first search / breadth first search)</li> </ul> <p>In case you want to read up on these topics we recommend the videos of the course &ldquo;Introduction to Algorithms and Data Structures&rdquo;, see Information&rarr;Materials.</p> <h3>Tentative List of Topics</h3> <ul> <li>greedy algorithms</li> <li>dynamic programming</li> <li>divide and conquer (e.g. master theorem, integer multiplication, FFT)</li> <li>randomized algorithms (e.g. quicksort, randomized search trees, hashing)</li> <li>amortization (e.g. Fibonacci heaps, union find)</li> <li>strings (e.g. pattern matching, suffix arrays)</li> <li>graphs (e.g. shortest paths, maxflow, matching)</li> <li>computational geometry</li> </ul> <table border="1" cellpadding="1" cellspacing="1" style="width:800px"> <thead> <tr> <th scope="col">Date</th> <th scope="col">Lecturer</th> <th scope="col">Topic</th> <th scope="col">Comment</th> </tr> </thead> <tbody> <tr> <td>28.2. 2pm</td> <td>PW</td> <td>Intro: machine model, O-notation</td> <td>&nbsp;</td> </tr> <tr> <td>29.2. 9am</td> <td>PW</td> <td>Strings I: string matching</td> <td>Morris-Pratt (see [CR])</td> </tr> <tr> <td>29.2. 2pm</td> <td>PW</td> <td>Strings II: edit distance and approximate string matching</td> <td>Needleman-Wunsch</td> </tr> <tr> <td>1.3. 9am</td> <td>PW</td> <td>Strings III: approximate string matching (cont), suffix array</td> <td><a href="https://doi.org/10.1016/0022-0000(88)90045-1">Landau-Vishkin</a></td> </tr> <tr> <td>1.3. 2pm</td> <td>PW</td> <td>Strings IV: suffix array construction, lcp array construction</td> <td> <p><a href="https://doi.org/10.1007/3-540-45061-0_73">K&auml;rkk&auml;inen-Sanders</a>,<br /> <a href="https://doi.org/10.1007/3-540-48194-X_17">Kasai et al.</a></p> </td> </tr> <tr> <td>4.3. 9am</td> <td>PW</td> <td>Strings V: lcp array construction (cont), range minimum queries</td> <td>Kasai et al. (cont)</td> </tr> <tr> <td>4.3. 2pm</td> <td>PW</td> <td>Advanced Dynamic Programming: LIS, segment trees</td> <td>&nbsp;</td> </tr> <tr> <td>5.3. 9am</td> <td>EK</td> <td>Amortization I: intro</td> <td>&nbsp;</td> </tr> <tr> <td>5.3. 2pm</td> <td>EK</td> <td>Amortization II: Fibonacci heaps</td> <td>&nbsp;</td> </tr> <tr> <td>6.3. 9am</td> <td>EK</td> <td>Amortization III: splay trees</td> <td>&nbsp;</td> </tr> <tr> <td>7.3. 9am</td> <td>EK</td> <td>Amortization IV: union find</td> <td>&nbsp;</td> </tr> <tr> <td>7.3. 2pm</td> <td>KB</td> <td>Randomized I: model, rank select</td> <td>&nbsp;</td> </tr> <tr> <td>8.3. 9am</td> <td>KB</td> <td>Randomized II: randomized search trees</td> <td>&nbsp;</td> </tr> <tr> <td>8.3. 2pm</td> <td>KB</td> <td>Randomized III: hashing</td> <td>&nbsp;</td> </tr> <tr> <td>11.3. 9am</td> <td>KB</td> <td>Randomized IV: more on hashing</td> <td>&nbsp;</td> </tr> <tr> <td>11.3. 2pm</td> <td>KB</td> <td>Randomized V: Monte Carlo algorithms</td> <td>&nbsp;</td> </tr> <tr> <td>12.3. 9am</td> <td>PW</td> <td>Divide and Conquer I: Recurrences (I), Karatsuba</td> <td>&nbsp;</td> </tr> <tr> <td>12.3. 2pm</td> <td>PW</td> <td>Divide and Conquer II: Recurrences(II), Master Theorem, Strassen</td> <td>&nbsp;</td> </tr> <tr> <td>13.3. 9am</td> <td>PW</td> <td>Polynomials I: Introduction</td> <td>&nbsp;</td> </tr> <tr> <td>14.3. 9am</td> <td>PW</td> <td>Polynomials II: FFT</td> <td>&nbsp;</td> </tr> <tr> <td>14.3. 2pm</td> <td>PW</td> <td>Polynomials III: Polynomial division, Sch&ouml;nhage-Strassen</td> <td>&nbsp;</td> </tr> <tr> <td>15.3. 9am</td> <td>EK</td> <td>Graphs I:&nbsp;intro, BFS+DFS, Dijkstra</td> <td>&nbsp;</td> </tr> <tr> <td>15.3. 2pm</td> <td>EK</td> <td>Graphs II: shortest path: Bellman-Ford, Floyd-Warshall, Johnson, ...</td> <td>&nbsp;</td> </tr> <tr> <td>18.3. 9am</td> <td>EK</td> <td>Graphs III: minimum spanning tree</td> <td>&nbsp;</td> </tr> <tr> <td>18.3. 2pm</td> <td>EK</td> <td>Graphs IV: maxflow: intro, maxflow mincut</td> <td>&nbsp;</td> </tr> <tr> <td>19.3. 9am</td> <td>EK</td> <td>Graphs V: maxflow: Ford-Fulkerson</td> <td>&nbsp;</td> </tr> <tr> <td>19.3. 2pm</td> <td>EK</td> <td>Graphs VI: maxflow: blocking flows</td> <td>&nbsp;</td> </tr> <tr> <td>20.3. 9am</td> <td>EK</td> <td>Graphs VII: maximum matching</td> <td>&nbsp;</td> </tr> <tr> <td>21.3. 9am</td> <td>EK</td> <td>Graphs VIII: global mincut</td> <td>&nbsp;</td> </tr> <tr> <td>21.3. 2pm</td> <td>KB</td> <td>Geometry I: intro, convex hull</td> <td>&nbsp;</td> </tr> <tr> <td>22.3. 9am</td> <td>KB</td> <td>Geometry II: convex hull ctd., linear programming</td> <td>&nbsp;</td> </tr> <tr> <td>22.3. 2pm</td> <td>KB</td> <td>Geometry III: orthogonal range searching</td> <td>&nbsp;</td> </tr> <tr> <td>25.3. 9am</td> <td>KB</td> <td>Geometry IV: sweep line, Voronoi diagrams</td> <td>&nbsp;</td> </tr> <tr> <td>25.3. 2pm</td> <td>KB</td> <td>Geometry V: Voronoi diagrams ctd. + intro to models of computation</td> <td>&nbsp;</td> </tr> <tr> <td>26.3. 9am</td> <td>KB</td> <td>Models of Computation: cache hierarchy, IO model</td> <td>&nbsp;</td> </tr> <tr> <td>26.3. 2pm</td> <td>KB</td> <td>Models of Computation: IO model ctd.</td> <td>&nbsp;</td> </tr> </tbody> </table> <div>&nbsp;</div> <h3>Literature</h3> <div> <p>The course will not follow a particular book. The following is a list of literature that could be useful.</p> <ul> <li>[MS] K. Mehlhorn, P. Sanders: Algorithms and Data Structures - The Basic Toolbox, Springer, 2008 (ISBN: 9783540779773)</li> <li>[CLRS] T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein, Introduction to Algorithms - Second Edition, McGraw-Hill, 2001 (ISBN: 0262531968)</li> <li>[KT] J. Kleinberg and E. Tardos, Algorithm Design, Addison Wesley, 2005 (ISBN: 0-321-29535-8)</li> <li>[Meh] K. Mehlhorn, Data Structures and Algorithms, Vols. 1-3, Springer Verlag, 1984</li> <li>[Koz] D. Kozen, The Design and Analysis of Algorithms, Springer Verlag, 1991</li> <li>[GKP] R. Graham, D. E. Knuth, O. Patashnik, Concrete Mathematics, Addison-Wesley, 1994</li> <li>[Sch] A. Schrijver, <a href="http://homepages.cwi.nl/~lex/files/dict.pdf">A Course in Combinatorial Optimization</a>, 2013</li> <li>[BKOS]&nbsp;M. de Berg, M. van Kreveld, M. Overmars, O. Schwarzkopf, Computational Geometry, Springer Verlag, 2000</li> <li>[Eri] J. Erickson, <a href="https://jeffe.cs.illinois.edu/teaching/algorithms/">Algorithms</a>, 2019 (Free electronic version)</li> <li>[CR] M. Chrochemore, W. Rytter, <a href="https://www.worldscientific.com/worldscibooks/10.1142/4838#t=aboutBook">Jewels of Stringology</a>,&nbsp;World Scientific&nbsp;2002</li> </ul> </div> </div> </section> </div> </main> <!-- span9 --> </div> <!-- row --> </div> <!-- container --> </div> <!-- bg-body --> <!-- main-content--> <!-- page-footer --> <div class="border-top flex-shrink-0"> <div class="container text-center py-4"> <small class="page-footer text-muted"> <a href="https://www.uni-saarland.de/en/privacy.html" target="_blank">Privacy Policy</a> | <a href="https://www.uni-saarland.de/en/legal-notice.html" target="_blank">Legal Notice</a><br/> If you encounter technical problems, please contact <a href="mailto:cakecms@cs.uni-saarland.de?subject=[]&amp;body=Please%20provide%20sufficient%20informations%20as%3A%20Name%2C%20Date%2C%20Role%2C%20Which%20System%2C%20What%20Error%21">the administrators</a>.</small> </div> </div> <!-- /page-footer --> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10