• Algorithm And Programming (6502)
  • תקציר הקורס:


    The first part of the course will be devoted to learning
    the Python language at a basic level. Further, the concept of algorithm
    and basic tools for evaluating algorithms will be defined.
    In the second part, useful data structures
    (stack, queue, list, hash table, search tree, stack) and
    sorting algorithms are presented and implemented on Python.
  • Design & Analysis Of Algorithms (10120)
  • תקציר הקורס:


    תקציר נושאי הקורס: מבוא לתכנון לינארי. סימפלכס , בעיה פרימלית ודואלית. בעיית התובלה ובעיית ההשמה.

    תכנות דינאמי .טיפוס נתונים גרף, ייצוגים שונים של גרפים.  ואלגוריתמים בסיסיים עליהם.

    אלגוריתמים למציאת סגור טרנזיטיבי: באמצעות כפל מטריצות ולפי האלגוריתם של וורשל.

    מסלולי אוילר והמילטון. חיפוש לרוחב - BFS, חיפוש לעומק - DFS. רכיבים קשירים היטב(רק"חים) וגרף על .

    מיון טופולוגי , מסלולים קריטיים, מסלולים קצרים בגרף – DAG.

    מסלולים קצרים ביותר ממקור יחיד – מסלולים קצרים ביותר.

    האלגוריתמים של דייקסטרה ושל בלמן-פורד. מסלולים קצרים ביותר בין כל  הזוגות. האלגוריתם: פלויד-וורשאל.

    אלגוריתמים חמדניים קידוד ועצי הופמן. עץ פורש מינימלי – "הצמחת" עץ פורש מינימלי,

    האלגוריתמים של קרוסקל ושל פרים. מסלולי אוילר והמילטון.
  • Advanced Algorithm (10121)
  • תקציר הקורס:


    The course consists of two parts: one is devoted to some methods of
    algorithm design, while another part is an introduction to the complexity theory.
    The topics covered are: flow in networks and matching,
    dynamic programming, approximation algorithms; Church-Turing thesis, decidability, reducibility, complexity.