שנה"ל תשע"ז

0368-1105-01
 מבוא מורחב למדעי המחשב
 Extended Introduction to Computer Science
מר רובינשטיין אמירשיעור כיתות דן דוד001 א'1600-1400 סמ'  א'
שיעור כיתות דן דוד001 ד'1200-1000 סמ'  א'
ד"ר דויטש דניאל

This introductory course presents fundamental concepts of computer science, along with foundations of programming and programming languages. The language used is python, version 3, which will serve as the platform for presenting a variety of topics of general interest in computer science.

Sample topics: Sorting and searching; introduction to data structures; hash tables; representation of characters and strings, string matching;  image representation and processing; error correcting codes; text compression; numerical computations and their stability; operations on very large numbers and their applications in number theory (primality testing) and in cryptography (generating a joint secret key); object oriented programming; recursion;  concepts in functional programming, representation of infinite object; etc.

 

Several approaches for representing each problem and its input, and for finding a solution, will be presented. The emphasis will be on structured solutions, their correctness and their complexity, both asymptotic and actual run time.

 

The main goal of the course is to expose students to a variety of areas in computer science, hence it is not a "pure" programming course. However, homework assignments will include writing a significant volume of computer programs

 

 
0368-1105-02
 מבוא מורחב למדעי המחשב
 Extended Introduction to Computer Science
גב' קליינבורט מיכלתרגיל אורנשטיין111 ב'1200-1000 סמ'  א'
 
0368-1105-03
 מבוא מורחב למדעי המחשב
 Extended Introduction to Computer Science
מר גלעד אמירתרגיל אורנשטיין111 ג'1200-1000 סמ'  א'
 
0368-1105-04
 מבוא מורחב למדעי המחשב
 Extended Introduction to Computer Science
מר רובינשטיין אמירשיעור כיתות דן דוד001 א'1800-1600 סמ'  א'
שיעור כיתות דן דוד001 ד'1400-1200 סמ'  א'
ד"ר דויטש דניאל

This introductory course presents fundamental concepts of computer science, along with foundations of programming and programming languages. The language used is python, version 3, which will serve as the platform for presenting a variety of topics of general interest in computer science.

Sample topics: Sorting and searching; introduction to data structures; hash tables; representation of characters and strings, string matching;  image representation and processing; error correcting codes; text compression; numerical computations and their stability; operations on very large numbers and their applications in number theory (primality testing) and in cryptography (generating a joint secret key); object oriented programming; recursion;  concepts in functional programming, representation of infinite object; etc.

 

Several approaches for representing each problem and its input, and for finding a solution, will be presented. The emphasis will be on structured solutions, their correctness and their complexity, both asymptotic and actual run time.

 

The main goal of the course is to expose students to a variety of areas in computer science, hence it is not a "pure" programming course. However, homework assignments will include writing a significant volume of computer programs

 
0368-1105-05
 מבוא מורחב למדעי המחשב
 Extended Introduction to Computer Science
גב' קליינבורט מיכלתרגיל פיזיקה-שנקר204 ב'1400-1200 סמ'  א'
 
0368-1105-06
 מבוא מורחב למדעי המחשב
 Extended Introduction to Computer Science
מר גלעד אמירתרגיל שרייבר מתמטי006 ג'1000-0800 סמ'  א'
 
0368-1105-07
 מבוא מורחב למדעי המחשב
 Extended Introduction to Computer Science
מר רובינשטיין אמירשיעור כיתות דן דוד001 ד'1700-1500 סמ'  ב'
שיעור כיתות דן דוד003 א'1800-1600 סמ'  ב'
פרופ שור בן ציון
 
0368-1105-08
 מבוא מורחב למדעי המחשב
 Extended Introduction to Computer Science
מר גלעד אמירתרגיל אורנשטיין103 ה'1400-1200 סמ'  ב'
 
0368-1105-09
 מבוא מורחב למדעי המחשב
 Extended Introduction to Computer Science
מר גלעד אמירתרגיל אורנשטיין103 ה'1800-1600 סמ'  ב'
 
0368-1105-10
 מבוא מורחב למדעי המחשב
 Extended Introduction to Computer Science
מר רובינשטיין אמירשיעור כיתות דן דוד001 ד'1500-1300 סמ'  ב'
שיעור כיתות דן דוד003 א'1600-1400 סמ'  ב'
פרופ שור בן ציון
 
0368-1105-11
 מבוא מורחב למדעי המחשב
 Extended Introduction to Computer Science
גב' קליינבורט מיכלתרגיל אורנשטיין111 ב'1300-1100 סמ'  ב'
 
0368-1105-12
 מבוא מורחב למדעי המחשב
 Extended Introduction to Computer Science
גב' קליינבורט מיכלתרגיל אורנשטיין111 ה'1200-1000 סמ'  ב'
 
0368-1118-01
 מתמטיקה בדידה
 Discrete Mathematics
ד"ר הוד רנישיעור אודיטור' לב009 א'1400-1200 סמ'  א'
שיעור אודיטור' לב009 ב'1900-1700 סמ'  א'
מר דורון דין
 
0368-1118-02
 מתמטיקה בדידה
 Discrete Mathematics
מר כרמון דניאלתרגיל פיזיקה-שנקר204 ג'1000-0800 סמ'  א'
 
0368-1118-03
 מתמטיקה בדידה
 Discrete Mathematics
מר כרמון דניאלתרגיל הולצבלט007 ד'1200-1000 סמ'  א'
 
0368-1118-04
 מתמטיקה בדידה
 Discrete Mathematics
מר אעראר מואבתרגיל שרייבר מתמטי006 ד'1200-1000 סמ'  א'
 
0368-1118-05
 מתמטיקה בדידה
 Discrete Mathematics
מר פלד אודי יהודהתרגיל אורנשטיין103 ה'1000-0800 סמ'  א'
 
0368-1118-06
 מתמטיקה בדידה
 Discrete Mathematics
פרופ פלדמן מיכלשיעור כיתות דן דוד001 ב'1400-1200 סמ'  א'
שיעור דאך005 ד'1500-1300 סמ'  א'
ד"ר הוד רני
מר דורון דין
 
0368-1118-08
 מתמטיקה בדידה
 Discrete Mathematics
מר אדמוני ארבלתרגיל אורנשטיין103 ה'1700-1500 סמ'  א'
 
0368-1118-09
 מתמטיקה בדידה
 Discrete Mathematics
מר פלד אודי יהודהתרגיל אורנשטיין102 ה'1700-1500 סמ'  א'
 
0368-1118-10
 מתמטיקה בדידה
 Discrete Mathematics
פרופ פלדמן מיכלשיעור דאך005 ד'1800-1600 סמ'  א'
שיעור דאך005 ה'1200-1000 סמ'  א'
ד"ר הוד רני
מר דורון דין
 
0368-1118-11
 מתמטיקה בדידה
 Discrete Mathematics
מר לוי ניסןתרגיל שרייבר מתמטי008 ה'1400-1200 סמ'  א'
מר אדמוני ארבל
 
0368-1118-12
 מתמטיקה בדידה
 Discrete Mathematics
מר לוי ניסןתרגיל כיתות דן דוד201 ה'1700-1500 סמ'  א'
 
0368-2002-01
 הסתברות וסטטיסטיקה (לדו-חוגי)
 Probability and Statistics
ד"ר רובינשטיין שלומישיעור כיתות דן דוד001 א'1300-1000 סמ'  א'
 
0368-2002-02
 הסתברות וסטטיסטיקה (לדו-חוגי)
 Probability and Statistics
מר חרובי יותםתרגיל פיזיקה-שנקר104 ג'1200-1100 סמ'  א'
 
0368-2002-03
 הסתברות וסטטיסטיקה (לדו-חוגי)
 Probability and Statistics
מר חרובי יותםתרגיל פיזיקה-שנקר204 ג'1400-1300 סמ'  א'
 
0368-2101-01
 מעבדה בכלים (ביואינפורמטיקה)
 Laboratory for Bioinformatics Tools
מר רחמני אליאורמעבדה שרייבר מתמטי008 ב'1300-1000 סמ'  ב'

Bioinformatics is the application of computer science and computer technology to biological research. This course introduces some of the basic concepts, algorithms, and tools used in Bioinformatics. Assuming previous knowledge in both Computer Science and Biology, this course will provide an overview over the field of bioinformatics as well as provide the students with tools to solve related problems in their own future research.

 

The course will cover the following topics:

-           Pairwise sequence alignment

-           Multiple sequence alignment (MSA)

-           Blast

-           Phylogenetics

-           Biological databases and web browsers

-           Gene Expression analysis

-           Networks and pathways

-           Proteins structure

-           Python for Bioinformatics (including Biopython)

 

 

 

 

 

 

 
0368-2102-01
 סמינר נושאים בביואינפורמטיקה 2
 Seminar - Topics in Bioinformatics 2
פרופ וולפסון חייםסמינר אורנשטיין111 ג'2000-1800 סמ'  א'
סמינר שרייבר מתמטי007 ד'2000-1800 סמ'  ב'
 
0368-2157-01
 תוכנה 1
 Software 1
פרופ וולף ליאורשיעור אודיטור' לב009 ב'1500-1200 סמ'  א'
 
0368-2157-02
 תוכנה 1
 Software 1
מר עזרא תומרתרגיל אורנשטיין103 ד'1700-1600 סמ'  א'
 
0368-2157-03
 תוכנה 1
 Software 1
מר עזרא תומרתרגיל הולצבלט007 ג'1700-1600 סמ'  א'
 
0368-2157-05
 תוכנה 1
 Software 1
גב' דנקין לנהתרגיל אורנשטיין103 ד'1200-1100 סמ'  א'
 
0368-2157-06
 תוכנה 1
 Software 1
גב' דנקין לנהתרגיל אורנשטיין103 ד'1300-1200 סמ'  א'

 

 
0368-2157-07
 תוכנה 1
 Software 1
פרופ טולדו סיוןשיעור ולפסון הנדסה001 ג'1300-1000 סמ'  ב'
 This is a mandatory Computer Science course that teaches the principles of software design, object oriented programming, and the Java programming language.
 
0368-2157-08
 תוכנה 1
 Software 1
גב' יונגמן בריתתרגיל שרייבר מתמטי006 ד'1100-1000 סמ'  ב'
 
0368-2157-09
 תוכנה 1
 Software 1
גב' יונגמן בריתתרגיל שרייבר מתמטי006 ד'1200-1100 סמ'  ב'
 
0368-2157-11
 תוכנה 1
 Software 1
גב' דנקין לנהתרגיל שרייבר מתמטי007 ד'1800-1700 סמ'  ב'
 
0368-2158-01
 מבני נתונים
 Data Structures
ד"ר צ'צ'יק שירישיעור כיתות דן דוד002 ד'1600-1300 סמ'  א'
פרופ צוויק אורי
פרופ קפלן חיים
מר כהן שראל
מר בן אליעזר עומרי
0368-2158-02
 מבני נתונים
 Data Structures
מר בן אליעזר עומריתרגיל הולצבלט007 ה'1400-1300 סמ'  א'
0368-2158-03
 מבני נתונים
 Data Structures
מר בן אליעזר עומריתרגיל הולצבלט007 ה'1300-1200 סמ'  א'
0368-2158-04
 מבני נתונים
 Data Structures
ד"ר צ'צ'יק שירישיעור לימודי הסביבה013Bג'1600-1300 סמ'  א'
פרופ צוויק אורי
פרופ קפלן חיים
מר כהן שראל
מר בן אליעזר עומרי
0368-2158-05
 מבני נתונים
 Data Structures
מר כהן שראלתרגיל פיזיקה-שנקר204 ה'1100-1000 סמ'  א'
0368-2158-06
 מבני נתונים
 Data Structures
מר כהן שראלתרגיל פיזיקה-שנקר204 ה'1200-1100 סמ'  א'
0368-2158-07
 מבני נתונים
 Data Structures
ד"ר צ'צ'יק שירישיעור כיתות דן דוד001 ב'1700-1400 סמ'  ב'
פרופ עזר יוסף
0368-2158-08
 מבני נתונים
 Data Structures
מר בן אליעזר עומריתרגיל פיזיקה-שנקר104 ד'1000-0900 סמ'  ב'
0368-2158-09
 מבני נתונים
 Data Structures
מר בן אליעזר עומריתרגיל פיזיקה-שנקר104 ד'1100-1000 סמ'  ב'
0368-2158-10
 מבני נתונים
 Data Structures
מר כהן שראלתרגיל קפלון118 ה'1400-1300 סמ'  ב'
0368-2158-11
 מבני נתונים
 Data Structures
מר כהן שראלתרגיל קפלון118 ה'1500-1400 סמ'  ב'
0368-2159-01
 מבנה מחשבים
 Computer Structure
מר גבור רוןשיעור כיתות דן דוד001 ד'1900-1600 סמ'  א'
מר פליק אוהד
מר סולוביי קיריל

The class is an introduction to hardware design, computer architecture and digital computer design. The class presents the concepts of modern digital hardware, it continues into design of digital processors and discuss approaches to improve performance and their association to programing languages. The class will touch modern approaches to computer implementation, including parallelism and out of order execution.

0368-2159-02
 מבנה מחשבים
 Computer Structure
מר סולוביי קירילתרגיל כיתות דן דוד207 ב'1700-1600 סמ'  א'
0368-2159-03
 מבנה מחשבים
 Computer Structure
מר סולוביי קירילתרגיל כיתות דן דוד207 ב'1800-1700 סמ'  א'
0368-2159-04
 מבנה מחשבים
 Computer Structure
מר סולוביי קירילתרגיל קפלון118 ה'1300-1200 סמ'  א'
0368-2159-05
 מבנה מחשבים
 Computer Structure
ד"ר הוד רנישיעור דאך005 ד'1700-1400 סמ'  ב'
0368-2159-06
 מבנה מחשבים
 Computer Structure
מר סולוביי קירילתרגיל פיזיקה-שנקר204 ה'1500-1400 סמ'  ב'
0368-2159-08
 מבנה מחשבים
 Computer Structure
מר סולוביי קירילתרגיל אורנשטיין111 א'1600-1500 סמ'  ב'
0368-2160-01
 אלגוריתמים
 Algorithms
ד"ר הוד רנישיעור כיתות דן דוד001 ג'1800-1500 סמ'  א'
פרופ אלון נגה
0368-2160-02
 אלגוריתמים
 Algorithms
מר עדן אלון נתןתרגיל פיזיקה-שנקר222 ה'1300-1200 סמ'  א'
0368-2160-03
 אלגוריתמים
 Algorithms
מר עדן אלון נתןתרגיל פיזיקה-שנקר104 ה'1500-1400 סמ'  א'
0368-2160-04
 אלגוריתמים
 Algorithms
מר פרידלר אופירתרגיל קפלון118 ד'1600-1500 סמ'  א'
0368-2160-05
 אלגוריתמים
 Algorithms
מר פרידלר אופירתרגיל פיזיקה-שנקר105 ה'1600-1500 סמ'  א'
0368-2160-07
 אלגוריתמים
 Algorithms
פרופ שמיר רוןשיעור כיתות דן דוד001 ג'1900-1600 סמ'  ב'
0368-2160-08
 אלגוריתמים
 Algorithms
מר עדן אלון נתןתרגיל פיזיקה-שנקר204 ה'1200-1100 סמ'  ב'
0368-2160-09
 אלגוריתמים
 Algorithms
מר פרידלר אופירתרגיל פיזיקה-שנקר204 ה'1100-1000 סמ'  ב'
0368-2160-10
 אלגוריתמים
 Algorithms
פרופ פיאט עמוסשיעור כיתות דן דוד001 א'1500-1200 סמ'  ב'
0368-2160-11
 אלגוריתמים
 Algorithms
מר פרידלר אופירתרגיל שרייבר מתמטי007 ה'1400-1300 סמ'  ב'
0368-2160-12
 אלגוריתמים
 Algorithms
מר עדן אלון נתןתרגיל אורנשטיין111 ד'1800-1700 סמ'  ב'
0368-2161-01
 פרויקט תוכנה
 Software Project
פרופ כהן-אור דניאלפרוייקט כיתות דן דוד003 ג'1400-1200 סמ'  א'
מר אעראר מואב
0368-2161-05
 פרויקט תוכנה
 Software Project
פרופ שרן רודדפרוייקט כיתות דן דוד001 ה'1700-1500 סמ'  ב'
The first part of the course will cover the C programming language under the UNIX programming environment. In the second part of the course you will develop an advanced project in C.
A detailed syllabus of the course can be found on the course's web-page
0368-2161-07
 פרויקט תוכנה
 Software Project
ד"ר פקר אליפרוייקט כיתות דן דוד003 ד'1500-1300 סמ'  ב'
0368-2162-01
 מערכות הפעלה
 Operating Systems
פרופ אפק יהודהשיעור אודיטור' לב009 ה'1100-0800 סמ'  א'
פרופ שביט ניר
0368-2162-02
 מערכות הפעלה
 Operating Systems
מר סולאמי משהתרגיל אורנשטיין103 ה'1400-1300 סמ'  א'
0368-2162-03
 מערכות הפעלה
 Operating Systems
מר סולאמי משהתרגיל אורנשטיין103 ה'1500-1400 סמ'  א'
0368-2162-05
 מערכות הפעלה
 Operating Systems
מר סולאמי משהתרגיל שרייבר מתמטי006 ה'1200-1100 סמ'  א'
0368-2162-06
 מערכות הפעלה
 Operating Systems
פרופ ישורון יחזקאלשיעור אודיטור' לב009 ב'1900-1600 סמ'  ב'
0368-2162-07
 מערכות הפעלה
 Operating Systems
מר סולאמי משהתרגיל פיזיקה-שנקר104 ג'1400-1300 סמ'  ב'
0368-2162-08
 מערכות הפעלה
 Operating Systems
מר סולאמי משהתרגיל פיזיקה-שנקר104 ג'1500-1400 סמ'  ב'
0368-2162-09
 מערכות הפעלה
 Operating Systems
מר ליפובצקי איבגניתרגיל הולצבלט007 ה'1500-1400 סמ'  ב'
0368-2162-10
 מערכות הפעלה
 Operating Systems
מר ליפובצקי איבגניתרגיל קפלון118 ה'1100-1000 סמ'  ב'
0368-2170-01
 לוגיקה למדעי המחשב
 Logic for Computer Science
מר וולק בן לישיעור הנדסת תוכנה102 ג'1400-1100 סמ'  א'
ד"ר אושמן רותם
0368-2170-02
 לוגיקה למדעי המחשב
 Logic for Computer Science
מר וולק בן ליתרגיל כיתות דן דוד201 ד'1000-0900 סמ'  א'
0368-2170-03
 לוגיקה למדעי המחשב
 Logic for Computer Science
מר וולק בן ליתרגיל כיתות דן דוד201 ד'1100-1000 סמ'  א'
0368-2170-04
 לוגיקה למדעי המחשב
 Logic for Computer Science
מר וולק בן ליתרגיל כיתות דן דוד201 ד'1200-1100 סמ'  א'
0368-2170-05
 לוגיקה למדעי המחשב
 Logic for Computer Science
פרופ רבינוביץ אלכסנדרשיעור כיתות דן דוד002 א'1200-0900 סמ'  ב'
0368-2170-06
 לוגיקה למדעי המחשב
 Logic for Computer Science
מר דביר יותםתרגיל שרייבר מתמטי007 ד'0900-0800 סמ'  ב'
0368-2170-07
 לוגיקה למדעי המחשב
 Logic for Computer Science
מר דביר יותםתרגיל שרייבר מתמטי007 ד'1000-0900 סמ'  ב'
0368-2170-08
 לוגיקה למדעי המחשב
 Logic for Computer Science
מר שלום רפיתרגיל שרייבר מתמטי007 ד'1100-1000 סמ'  ב'
0368-2200-01
 מודלים חישוביים
 Computational Models
גב' מוסקוביץ' יובלשיעור כיתות דן דוד003 ב'1600-1300 סמ'  א'
פרופ היטנר יפתח אילן
גב' שדה דפנה
0368-2200-02
 מודלים חישוביים
 Computational Models
גב' מוסקוביץ' יובלתרגיל כיתות דן דוד207 ד'1600-1500 סמ'  א'
0368-2200-03
 מודלים חישוביים
 Computational Models
גב' מוסקוביץ' יובלתרגיל כיתות דן דוד207 ד'1500-1400 סמ'  א'
0368-2200-08
 מודלים חישוביים
 Computational Models
מר דורון דיןתרגיל אורנשטיין111 ה'1500-1400 סמ'  ב'
0368-2200-09
 מודלים חישוביים
 Computational Models
פרופ מנצור ישישיעור דאך005 ב'1600-1300 סמ'  ב'
0368-2200-10
 מודלים חישוביים
 Computational Models
גב' מוסקוביץ' יובלתרגיל אוד' מלמד006 ד'1600-1500 סמ'  ב'
0368-2200-11
 מודלים חישוביים
 Computational Models
גב' מוסקוביץ' יובלתרגיל אוד' מלמד006 ד'1500-1400 סמ'  ב'
0368-2200-12
 מודלים חישוביים
 Computational Models
מר דורון דיןתרגיל אוד' מלמד006 ה'1400-1300 סמ'  ב'
0368-2200-13
 מודלים חישוביים
 Computational Models
מר דורון דיןתרגיל אוד' מלמד006 ה'1300-1200 סמ'  ב'
0368-3030-01
 רשתות תקשורת מחשבים
 Communication Networks -
ד"ר אנדלמן נירשיעור כיתות דן דוד001 ה'1800-1500 סמ'  א'

Course name: Communication Networks

 

Course Syllabus

 

 

 

Lecturer: Dr. Nir Andelman, 054-2451042, niran@tauex.tau.ac.il

 

Credit: 4 (3+1)

 

Prerequisites: Algorithms, Introduction to Probability, Software Project

 

Course Objectives:

The course provides an introduction to the principles, challenges and techniques used in designing network architectures and protocols. 

The focus of the course is: network architectures, the layering model, the protocol concept, performance modeling, the Internet. Some of the topics included in detail: network programming, STP, ARP, reliable data transfer, flow and congestion control, addressing, routing algorithms,

 

Course Syllabus:

·         Introduction to network, layers and protocols

·         Datalink layer protocols, LAN protocols

·         LAN connectivity: Hubs, bridges, routers

·         Network layer: types of networks, addressing, forwarding, IP

·         Routing protocols & algorithms

·         Reliable data transfer issues and design alternatives

·         TCP handshake, data transfer, flow control,

·         TCP congestion control

·         Application protocols, Network security

·         Advanced topics (e.g. switching networks, scheduling ,  mobile IP, multicast) as time permits

 

Course prerequisites:

Algorithms, Introduction to Probability, Software Project

 

Course requirements:

Homework Assignments submission (should be done in pairs) 

 

Required reading:

None

 

 


Recommended reading:

[1]   James F. Kurose and Keith W. Ross, “Computer Networking: A Top-Down Approach Featuring the Internet”, Addison-Wesley 5th Edition (2009), 6th ed. (2012)

[2]   S. Tanenbaum, “Computer Networks”,  Prentice-Hall, 4th ed. (2003) / 3rd ed (1996)

[3]   R. Perlman: Interconnections : Bridges, Routers, Switches and Interworking Protocols, Addisoin Wesley 2000

[4]   R. Stevens: TCP/IP Illustrated vol. I The Protocols, Addison Wesley 1994

[5]   R. Stevens, B. Fenner, A.M. Rudoff: UNIX Network Programming: The Socket Networking API , vol. 1, 3rd Edition, Addison Wesley 2004

 

 

Grade: 60% final exam, 20% programming exercises, 20% theoretical
             exercises

 

 

 

 

0368-3030-02
 רשתות תקשורת מחשבים
 Communication Networks -
מר תבורי יהונתןתרגיל בנין רב תחומי315 ב'1100-1000 סמ'  א'
0368-3030-03
 רשתות תקשורת מחשבים
 Communication Networks -
מר תבורי יהונתןתרגיל בנין רב תחומי315 ב'1200-1100 סמ'  א'
0368-3049-01
 מבוא לקריפטוגרפיה מודרנית
 Introduction to Modern Cryptography
פרופ שור בן ציוןשיעור טרובוביץ משפ102 ג'1500-1200 סמ'  א'
0368-3049-02
 מבוא לקריפטוגרפיה מודרנית
 Introduction to Modern Cryptography
גב' מוסקוביץ' אוריתתרגיל פיזיקה-שנקר222 ד'1200-1100 סמ'  א'
0368-3049-03
 מבוא לקריפטוגרפיה מודרנית
 Introduction to Modern Cryptography
גב' מוסקוביץ' אוריתתרגיל פיזיקה-שנקר222 ד'1300-1200 סמ'  א'
0368-3058-01
 נושאים מתקדמים בתכנות
 Advanced Topics in Programing
מר קירש אמירשיעור אודיטור' לב009 ה'1100-0800 סמ'  ב'

  

 
0368-3058-02
 נושאים מתקדמים בתכנות
 Advanced Topics in Programing
עוזרי נתנאלתרגיל כיתות דן דוד002 ג'1000-0900 סמ'  ב'
0368-3062-01
 ניהול נתונים באינטרנט
 Web Data Management
ד"ר דויטש דניאלשיעור כיתות דן דוד001 א'1800-1600 סמ'  ב'
0368-3065-01
 מבוא לאבטחת מידע
 Introduction to Information Security
פרופ וול אבישישיעור אודיטור' לב009 א'1600-1300 סמ'  ב'
מר גיטיק דאן

The Introduction to Information Security course surveys central concepts in applied information security and cyber security, and offers a hands-on introduction to secure programming and vulnerability analysis.

High-level goals:
- Make students aware of the major security risks and attack vectors
- Gain concrete hands-on experience with prominent tools and technologies
- Teach about good tools and practices for building secure systems
- Instill the state of mind and conceptual vocabulary for reasoning about systems security

A student who has taken the class and then got programming project should know when he's doing something dangerous, what are the standard solutions, and be able to to productively communicate with vendors and experts.
 

Scope:
1. Programming vulnerabilities (buffer/stack/integer overflow, format strings, privilege escalation)
2. Secure platforms and programming (OS, TPM, languages, libraries, good practices, analysis tools)
3. Network vulnerabilities (impersonation, DoS, application-level) and defense (SSL, IPsec, firewalls, anomaly detection)
4. Exploitation techniques and the low-level details underlying them (reverse engineering x86 assembly, shell code, packet injection
5. Cryptography basics (encryption, digital signatures, certificates)
6. Authentication (passwords, biometrics, tokens, certificates)
7. Authorization policies (access control, information flow control, logging, detection)
8. Physical and psychological elements (tamperproofing, user interfaces, social engineering)
9. Study cases (e.g., banks, mobile phones, cars)

A significant part of the course material will be in English.

Course requirements:

 

Requisite courses:

  • Operating Systems (0368-2162) or Introduction to Systems Programming (0512-4402) or equivalent

Recommended (not mandatory) courses:

  • Introduction to Modern Cryptography (0368-3049) or Cryptography and Computer Security (0510-7401) or Foundations of Cryptography (0368-4162) or equivalent

 

0368-3065-02
 מבוא לאבטחת מידע
 Introduction to Information Security
מר גיטיק דאןתרגיל אורנשטיין111 א'1700-1600 סמ'  ב'
איטקין ברק
0368-3065-03
 מבוא לאבטחת מידע
 Introduction to Information Security
מר גיטיק דאןתרגיל אורנשטיין111 א'1800-1700 סמ'  ב'
איטקין ברק
0368-3102-01
 גנומיקה חישובית
 Computational Genomics
פרופ גת ויקס עיריתשיעור שרייבר מתמטי008 ה'1600-1430 סמ'  א'
שיעור כיתות דן דוד204 ג'1330-1200 סמ'  א'
פרופ שמיר רון
פרופ וולפסון חיים
0368-3102-02
 גנומיקה חישובית
 Computational Genomics
מר זעירא רוןתרגיל שרייבר מתמטי008 ה'1700-1600 סמ'  א'
0368-3103-01
 סמינר נושאים בביואינפורמטיקה 3
 Seminar - Topics in Bioinfprmatics 3
פרופ וולפסון חייםסמינר סמ'  א'
סמינר סמ'  ב'
0368-3105-01
 ביולוגיה מבנית חישובית
 Computational Structural Biology
פרופ בן-טל נירשיעור שרמן009 ב'1200-1000 סמ'  ב'
שיעור שרמן009 ה'1100-1000 סמ'  ב'
פרופ וולפסון חיים
0368-3105-02
 ביולוגיה מבנית חישובית
 Computational Structural Biology
פרופ בן-טל נירתרגיל שרמן009 ה'1200-1100 סמ'  ב'
פרופ וולפסון חיים
0368-3133-01
 קומפילציה
 Compilation
ד"ר רינצקי נעםשיעור כיתות דן דוד001 ג'1200-0900 סמ'  א'
0368-3133-02
 קומפילציה
 Compilation
מר איש שלום אורןתרגיל פיזיקה-שנקר105 ד'1200-1100 סמ'  א'
0368-3133-03
 קומפילציה
 Compilation
מר איש שלום אורןתרגיל פיזיקה-שנקר105 ד'1400-1300 סמ'  א'
0368-3133-04
 קומפילציה
 Compilation
מר איש שלום אורןתרגיל פיזיקה-שנקר105 ד'1100-1000 סמ'  א'
0368-3168-01
 סיבוכיות
 Computational Complexity
פרופ ספרא שמואלשיעור דאך005 ב'1600-1300 סמ'  א'
0368-3168-02
 סיבוכיות
 Computational Complexity
מר מינצר דורתרגיל אורנשטיין111 ג'1600-1500 סמ'  א'
0368-3168-03
 סיבוכיות
 Computational Complexity
מר מינצר דורתרגיל אורנשטיין111 ג'1700-1600 סמ'  א'
0368-3168-06
 סיבוכיות
 Computational Complexity
פרופ בנבנישתי שפילקה אמירשיעור דאך005 ג'1300-1000 סמ'  ב'

Computational Complexity Theory

 

 

These are presentations for an undergraduate Computational Complexity Theory course.

The same could be found at http://computational.complexity.googlepages.com/home

 

They are in a powerpoint 2007 format --- if you don't have it installed, you can find a viewer by Microsoft here.

You can find handouts versions as wellas slides in PDF format.

They are based on previous versions, which you can find here.

 

Presentations:

Introduction (pdf: handouts, slides)

Turing Machines; (pdf: handouts, slides)

NP-completeness; (pdf: handouts, slides)

2SAT;(pdf: handouts, slides)

Space Complexity (pdf: handouts, slides) pdf NL closed under complement

Approximation Problem; (pdf: handouts, slides)

PCP; (pdf: handouts) Notes for the PCP and Hardness of Approximation

PH and BPP; (pdf: handouts)

Random Walks (pdf file)

 

_______________________________________________________

 


0368-3168-07
 סיבוכיות
 Computational Complexity
מר וולק בן ליתרגיל כיתות דן דוד203 ג'1700-1600 סמ'  ב'
0368-3168-08
 סיבוכיות
 Computational Complexity
מר וולק בן ליתרגיל כיתות דן דוד203 ג'1900-1800 סמ'  ב'
0368-3168-09
 סיבוכיות
 Computational Complexity
מר מינצר דורתרגיל פיזיקה-שנקר204 ד'1400-1300 סמ'  ב'
0368-3168-10
 סיבוכיות
 Computational Complexity
מר מינצר דורתרגיל פיזיקה-שנקר204 ד'1000-0900 סמ'  ב'
0368-3169-01
 אלגוריתמים בפעולה
 Algorithms in Action
פרופ צוויק אורישיעור אוד' מלמד006 ד'1900-1600 סמ'  ב'
פרופ קפלן חיים

We will cover a few algorithms and methods that were not covered in the basic algorithms courses. The intention is to focus on algorithms that are being used in practice. A tentative list of topics includes
1) The fast Fourier transform and its applications
2) The power of 2 choices: We will show how the maximum load in a hash table decreases exponentially, if when inserting an item we pick two cells instead of one, and put the item in the least loaded cell among the two. This idea (co-invented by our own Yossi Azar) is related cuckoo hashing and has many applications.
3) We will dive into some local search techniques to cope with NP-hard problem such as SAT and TSP, including simulated annealing. These methods are related to Markov chains which we will also discuss to some depth..
4) We will talk about the problem of contention resolution. This problem occurs in a distributed setting when multiple people want to communicate over a shared media, but they can hear each other only if a single one of them broadcasts at each time slot. We will present protocols that allow each one to broadcast without any other means of communication except the channel.
5) Compression methods
6) Stable matching

0368-3172-01
 תכנון אלגוריתמי לרשתות
 
ד"ר אנדלמן נירשיעור נפתלי210 ב'1600-1300 סמ'  ב'
Course Description
This course covers the principles and algorithms that arise in Networking, mainly in packet switches and routers, but also in endpoint web servers. We will discuss the theory and practice of algorithms for packet forwarding and classification, switch scheduling, traffic shaping, bandwidth partitioning, buffer management, network monitoring, traffic measurement, security and congestion control, as well as OS optimizations in endpoint servers regarding memory management and transfer control.
The Course closely follows the textbook "Network Algorithmics" by George Varghese, which merges practical considerations in algorithm development, such as optimizing bottlenecks rather that general time/space complexity, processing data in line speed, relaxing requirements to simplify solutions, and more.
Grading
Several written assignments will be given as homework. The exact number will be announced at the beginning of the Semester. The final grade will be approximately 20-30% assignments and 70-80% final exam.
Teaching Staff
Dr. Nir Andelman, nira@afeka.ac.il
0368-3173-01
 גיאומטריה חישובית
 Computational Geometry
פרופ הלפרין דןשיעור שרייבר מתמטי006 ב'1800-1600 סמ'  א'

אלגוריתמים בסיסיים לבעיות גיאומטריות כגון חישוב קמור, שילוש פוליגונים, איתור נקודות, דיאגרמת וורונוי, ותכנות לינארי במימד נמוך.
בקורס יידונו גם יישומים של אלגוריתמים אלה לפתרון בעיות ברובוטיקה, מערכות מידע גיאורפיות (
GIS), תכנון וייצור בעזרת מחשב (CAD,CAM) ועוד.

 

0368-3174-01
 שיטות וכלים לשיפור יעילות בתהליך פיתוח של תוכנה
 
פרופ שגיב שמואלשיעור שרמן003 ד'1800-1600 סמ'  א'

Techniques for Improving Software Productivity

Instructor Shmuel (Mooly) Sagiv TA: Kalev Alpernas Wed 16-19

Developing correct and reliable software is considered a very difficult task. This is a unique course that teaches students novel testing and verification techniques for improving software productivity. The techniques reduce the cost of software development and improve robustness of software. These techniques have been developed in the last two decades and are becoming more mature. Many of the techniques are now implemented in research and some commercial tools.

This course focuses on pragmatical aspects. The students will gain more understanding on existing tools, their relevance, and limitations.

The techniques include:

Testing Tools

Symbolic Tools and Verification

Important Message

If your POWERPOINT does not show certain mathematical characters use fonts in a zip file, by clicking here. Make sure to extract
them to the appropriate directory,

Alternatively, you can extract them anywhere, and install them via the control panel

Contents

Requirements

There is no exam in this course. The students must solve all homework assignment but one (40%) and then suggest an interesting project using one of the tools (60%)

Bibliography

TBD

Course Schedule

Lecture Recitation Exercise
XXX Overview No Recitation No assignment
SAT and SMT Solvers Z3 Graph algorithms with Z3
Bounded Model Checking CBMC Use CBMC
Concolic Testing KLEE Use KLEE
Deductive Verification 1 No Recitation No assignment
Deductive Verification 2 Dafny Use Dafny
Static Analysis Apron Use Apron
Random Testing Quickcheck, Randoop, Simullant, Autotest, YETI, GramTest Use the tools
Fuzz Testing TBD TBD
Mutation Testing TBD TBD
Unit Testing TBD TBD
Delta Debugging TBD TBD
Program Synthesis TBD TBD
System's Code TBD TBD
Network and Cloud TBD TBD

Homework Assignments

For further information Email:msagiv@post.tau.ac.il

0368-3175-01
 נושאים בהנדסת תוכנה
 Topics in Software Engineering
ד"ר מעוז שחרשיעור אורנשטיין103 ב'1300-1000 סמ'  ב'

This is a new elective course for 3rd year Computer Science students.  The course will cover several topics in software engineering such as the different phases of the software development life cycle, software testing, and the use of models and formal methods in software engineering.     

0368-3177-01
 פיתוח מערכות זמן אמת בגישה פורמלית
 Real-Time Systems Developments by a Formal Approach
ד"ר גפני ורדשיעור אורנשטיין111 ה'1400-1100 סמ'  א'

In the course, we shall present a formal development process for reactive (real-time) systems and study corresponding specification and design languages as well as formal verification algorithms and tools. In particular, the following issues will be covered.

  • Software engineering with formal methods
  • Mathematical models of reactive-systems' behaviors,
  • Specification of reactive properties (LTL), 
  • Automata and architectural design languages,
  • Verification algorithms
  • System development with formal methods.
0368-3235-01
 מבוא ללמידה חישובית
 Introduction to Machine Learning
פרופ גלוברזון אמירשיעור נפתלי001 א'1600-1300 סמ'  א'
פרופ מנצור ישי

The course is a basic introduction to machine learning, including:

  • Supervised learning (mainly, classification)
  • Unsupervised learning (such as clustering)
  • Bayesian methods

The course will include both theory and applied machine learning,
and a special emphasis will be put on machine learning algorithms.

See here for a complete list of topics:

http://ml-tau-2014.wikidot.com/course-schedule

Self inclusion/exclusion: The excercises will be done in Matlab; The course has large parts that are mathematical in nature.

 

0368-3241-01
 שפות תכנות
 Programming Languages
פרופ שגיב שמואלשיעור כיתות דן דוד003 א'1700-1400 סמ'  א'
0368-3241-02
 שפות תכנות
 Programming Languages
מר פדון עודדתרגיל אוד' מלמד006 ד'1400-1300 סמ'  א'
0368-3245-01
 הוראת מדעי המחשב בקהילה
 Computer Science Learning in the Community
פרופ וולף ליאורשיעור ג'2000-1700 סמ'  א'
מר אלפרנס כלב
0368-3249-01
 צעדים ראשונים במחקר לסטודנטים מצטיינים
 First Steps in Research of Outstanding Students
ד"ר צ'צ'יק שירישיעור שרייבר מתמטי007 ה'1600-1300 סמ'  א'
פרופ כהן-אור דניאל
0368-3250-01
 אבטחת מערכות וישומים ברשת
 Web System and Application Security
ד"ר מובשוביץ דודשיעור כיתות דן דוד003 א'1200-0900 סמ'  ב'
0368-3319-01
 מבוא למדעי המידע
 Introduction to Data Science
פרופ מילוא טובהשיעור אורנשטיין111 ד'1200-1000 סמ'  ב'

Syllabus:

http://slavanov.com/teaching/ds1617b/

0368-3319-02
 מבוא למדעי המידע
 Introduction to Data Science
מר נובגורודוב סלבהתרגיל אורנשטיין111 ד'1300-1200 סמ'  ב'

Syllabus: 

http://slavanov.com/teaching/ds1617b/

0368-3349-01
 סמינר על נושאים במודלים של תוכנה
 Seminar
ד"ר מעוז שחרסמינר קפלון118 ב'1500-1300 סמ'  ב'
Seminar on Modeling Languages for Software Systems
 
 
We consider the use of models in software engineering throughout the software development lifecycle.  The seminar on Modeling Languages for Software Systems will focus on three topics: software product lines and feature modeling, specification mining, and model evolution.
 
Software product lines and feature modeling:
The domain of software product line refers to software engineering methods, tools and techniques for creating a collection of similar software systems --- a family of products, from a shared set of software assets and using a common means of production.    A commonly used means to succinctly and formally describe, document, manage, and analyze a software product line is a feature model.     We will survey selected works in the area of software product lines, with a specific focus on the use of feature models and formal methods.
 
Specification mining:
Specification mining is a field of software engineering, aiming at extracting models of software system from its code or from logs of its execution.  The extracted models can be used for tasks such as program comprehension and test generation.    We will survey selected works in the area of specification mining, with a specific focus on models of behavior.
 
Model evolution:
Effective change management is a major challenge in software engineering in general and in model-driven engineering in particular.  Due to iterative development methodologies, changing requirements, and bug fixes, models continuously evolve during the design, development, and maintenance phases of a system's lifecycle.   Fundamental building blocks for understanding model evolution are differencing operators one can use for model comparisons.    We will survey selected works on syntactic and semantic model differencing.
0368-3383-01
 סמינר באלגוריתמים
 Seminar
פרופ צוויק אוריסמינר שרייבר מתמטי008 ג'1600-1400 סמ'  ב'
0368-3393-01
 סמינר באלגוריתמים בביואינפורמטיקה מבנית לתלמידי מדעי המחשב
 Seminar in Structural Bioinformatics for Computer Science students
פרופ וולפסון חייםסמינר שרייבר מתמטי008 ד'1900-1700 סמ'  א'

The participants of the seminar will present algorithms. which solve key tasks in Structural Molecular Biology and Computer Aided Drug Design.  In particular, we shall present algorithms for protein structural alignment, prediction of the structure of a complex between two (or more) proteins (so called, docking task), prediction of the structure of a protein-drug complex and more ...

Since the tasks to be tackled are in (their mathematical) essence problems of spatial pattern recognition and discovery as well as modeling of flexible object motion in 3D, we shall discuss the analogy to similar tasks in Computer Vision (e.g. object recognition and puzzle assembly), motion planning in computational geometry, computer graphics presentation of 2D manifolds in 3D space amd more ...

The seminar does not assume prior knowledge in Molecular Biology.  Lectures can be presented in English upon demand.

0368-3458-01
 מערכות בסיסי נתונים
 Data-Base Systems
פרופ מילוא טובהשיעור שרייבר מתמטי006 ג'1500-1300 סמ'  א'
0368-3458-02
 מערכות בסיסי נתונים
 Data-Base Systems
פרופ מילוא טובהתרגיל שרייבר מתמטי006 ג'1600-1500 סמ'  א'
מר סומך עמית
0368-3464-01
 עיבוד ספרתי של אותות
 "Digital Signal Processing"
ד"ר שטיין יעקבשיעור כיתות דן דוד003 א'2000-1700 סמ'  א'
0368-3469-02
 תכנות מעבדים רבי ליבות
 Multiprocessor Programming
מר סולאמי משהתרגיל אורנשטיין103 ד'1500-1400 סמ'  ב'
0368-3502-01
 סדנה לפיתוח בטכנולוגיות גוגל
 Workshop in Computer Science
פרופ מטיאס יוסיסדנה פיזיקה-שנקר105 ב'1200-1000 סמ'  א'

This is a workshop focusing on Cloud and Web Development, using primarily - but not exclusively - Google tools and technologies.
These include Android (Google Phone), Chrome and Chrome OS, Google Maps, YouTube API, Google Visualization API, Google AppEngine, Social networks, Google TV and more.

Students will group in teams of 4 students. Each group will come up with a project for the semester.
Project will include designing and developing a live web system.

The course will include several frontal lectures going over the technologies, and the rest of the semester will include project reviews (initial project presentation, design and workplan review, several iterations of project demos and finally a complete project presentation).
Each group will also maintain a web page with project documentation and design documents.

 

0368-3504-01
 סדנה במיקור המונים
 Workshop in Data-Centered Crowdsourcing
פרופ מילוא טובהסדנה שרייבר מתמטי007 ד'1600-1400 סמ'  ב'

Syllabus:

http://slavanov.com/teaching/crowd1617b/

0368-3504-02
 סדנה במיקור המונים
 Workshop in Data-Centered Crowdsourcing
פרופ מילוא טובהמעבדה ה'2000-1700 סמ'  ב'

Syllabus:

http://slavanov.com/teaching/crowd1617b/

0368-3504-03
 סדנה במיקור המונים
 Workshop in Data-Centered Crowdsourcing
מר נובגורודוב סלבהמעבדה ג'1700-1400 סמ'  ב'

Syllabus:

http://slavanov.com/teaching/crowd1617b/

0368-3507-01
 סדנה לפיתוח ehealth מבוססות רצועה אלקטרונית וענן
 
ד"ר לוי נירסדנה שרייבר מתמטי309 ב'1100-0900 סמ'  א'
פרופ אפק יהודה

The workshop is focusing on mobile eHealth application development that combines cloud services as well as mobile and wearable devices. We will use data acquisition, management and analysis Azure services, Windows 10 devices and bands such as the Microsoft Band or FitBit.

 

 

Projects will be developed by groups of 3 students.

 

The course will include three or four frontal lectures covering Windows 10 and Azure services as well as an intro to eHealth applications. In the rest of the semester we will help the students throughout the development of their projects, in review meeting as well as individual meetings.

 

0368-3527-01
 סדנה באינרנט של הדברים
 Workshop on the Internet of Things (IoT)
פרופ טולדו סיוןסדנה שרייבר מתמטי007 ב'1100-0900 סמ'  ב'
ד"ר לוי ניר

Programming Workshop: The Internet Of Things

Sivan Toledo, Tel-Aviv University
Nir Levy, Microsoft

As time goes by, more and more devices devices contain computers, and more and more of them become connected to the internet. New cars are full of computers (about 100 in some models) that control the engine, the transmission, etc. Our household appliances are controlled by computers, and so are televisions, radios, electric bicycles, and so on. Some people envision a near future in which every light bulb and every light switch will be controlled by computers and many of these will be networked and connected to the internet. This is the Internet of Things (IoT).

In the workshop, students will learn to develop IoT systems that consist of a tiny computer that is interfaced to physical devices, connected to the internet, and uploads data or downloads instructions from internet servers (the so-called cloud).

More specifically, groups of students will learn to program small-form-factor computers called Raspberry Pi 2 that run Windows 10, to interface them to devices, and to create cloud-based systems.

This is the second time we are running the workshop; the first time was in Fall 2016.

Workshop Materials

Questions and Answers

  1. How many students will be in each group? 3
  2. Can we form smaller/larger groups? No; each group will receive a hardware kit and we have a limited number of them. We may not be able to accommodate 1 and 2-person groups and we will not allow groups larger than 3.
  3. Do I need to form a group/team before the semester starts? No, you can hook up with fellow students after the semester starts.
  4. The schedule shows workshop and lab hours; do I need to be available in all 5 hours? Yes. We will not have both sessions every week, but we will use both sessions sometimes, and these meetings are mandatory. If you don’t show up, you cannot complete the course (with obvious exceptions for illness etc).
  5. Do I need to know Windows programming/C#/Azure/Raspberry Pi? No, we will teach all of these things in the workshop meetings.
  6. When will we design and implement our projects? During the semester. We will distribute a schedule for the semester which will include certain milestones during the semester (project approvals, design reviews, etc).
0368-3527-02
 סדנה באינרנט של הדברים
 Workshop on the Internet of Things (IoT)
פרופ טולדו סיוןמעבדה ד'1200-0900 סמ'  ב'

Programming Workshop: The Internet Of Things

Sivan Toledo, Tel-Aviv University
Nir Levy, Microsoft

As time goes by, more and more devices devices contain computers, and more and more of them become connected to the internet. New cars are full of computers (about 100 in some models) that control the engine, the transmission, etc. Our household appliances are controlled by computers, and so are televisions, radios, electric bicycles, and so on. Some people envision a near future in which every light bulb and every light switch will be controlled by computers and many of these will be networked and connected to the internet. This is the Internet of Things (IoT).

In the workshop, students will learn to develop IoT systems that consist of a tiny computer that is interfaced to physical devices, connected to the internet, and uploads data or downloads instructions from internet servers (the so-called cloud).

More specifically, groups of students will learn to program small-form-factor computers called Raspberry Pi 2 that run Windows 10, to interface them to devices, and to create cloud-based systems.

This is the second time we are running the workshop; the first time was in Fall 2016.

Workshop Materials

Questions and Answers

  1. How many students will be in each group? 3
  2. Can we form smaller/larger groups? No; each group will receive a hardware kit and we have a limited number of them. We may not be able to accommodate 1 and 2-person groups and we will not allow groups larger than 3.
  3. Do I need to form a group/team before the semester starts? No, you can hook up with fellow students after the semester starts.
  4. The schedule shows workshop and lab hours; do I need to be available in all 5 hours? Yes. We will not have both sessions every week, but we will use both sessions sometimes, and these meetings are mandatory. If you don’t show up, you cannot complete the course (with obvious exceptions for illness etc).
  5. Do I need to know Windows programming/C#/Azure/Raspberry Pi? No, we will teach all of these things in the workshop meetings.
  6. When will we design and implement our projects? During the semester. We will distribute a schedule for the semester which will include certain milestones during the semester (project approvals, design reviews, etc).
0368-3531-01
 סדנה בניתוח רשתות ביולוגיות
 Workshop in Analysis of Biological Networks
פרופ שרן רודדסדנה שרייבר מתמטי008 ה'2000-1800 סמ'  ב'
סדנה ה'2000-1800 סמ'  ב'

Syllabus:

http://www.cs.tau.ac.il/~roded/courses/workshop-bnet-general.pdf   

0368-3532-01
 סדנא בתכנות תחרותי
 Workshop in Competitive Programming
מר כהן שראלסדנה כיתות דן דוד210 ד'1600-1400 סמ'  ב'
סדנה ד'1600-1400 סמ'  ב'

 

Competitive programming provides a unique opportunity for computer scientists to improve their implementation skills and their understanding of the practicals of implementing algorithms. In essence, it deals with problem solving in the domain of computer science, where code and automatic testing serve as objective measurements of success. This course focuses on the development of strategies, techniques, and skills used in competitive programming scenarios (i.e., contests and interviews). The overall goal of the course is to produce well-rounded computer scientists.

  

0368-3532-02
 סדנא בתכנות תחרותי
 Workshop in Competitive Programming
מר כהן שראלמעבדה ה'2000-1700 סמ'  ב'

Competitive programming provides a unique opportunity for computer scientists to improve their implementation skills and their understanding of the practicals of implementing algorithms. In essence, it deals with problem solving in the domain of computer science, where code and automatic testing serve as objective measurements of success. This course focuses on the development of strategies, techniques, and skills used in competitive programming scenarios (i.e., contests and interviews). The overall goal of the course is to produce well-rounded computer scientists.

0368-4130-01
 שיטות מתקדמות בעיבוד שפות טבעיות
 Advanced Course in Natural Language Processing
ד"ר ברנט יהונתןשיעור כיתות דן דוד203 ג'1600-1300 סמ'  ב'

This course will focus on methods for Natural Language Processing (NLP) with an emphasis on structured prediction.

We will look at topics such as:

  1. Language modelling
  2. Tagging (POS tagging, NER, etc.)
  3. Syntactic parsing
  4. Semantic parsing

We will look at generative and discriminative models for these tasks, such as HMMs, log-linear models, MEMMs, and CRFs. We will discuss inference methods for structured prediction such as CKY, Viterbi, etc.

We will also look at deep learning methods for NLP, but it is still undetermined whether this will be a separate section or interleaved with the rest of the topics.

0368-4131-01
 תורת הקריפטוגרפיה (2) - נושאים מתקדמים
 Foundation of Cryptography, advanced topics
פרופ היטנר יפתח אילןשיעור שרייבר מתמטי008 ה'1300-1000 סמ'  ב'
פרופ אפלבאום בנימין-בני

This is an advcance course in thoretical cryptogtaphy, who starting point is the Foundation of Cryptography course (0368-4162-01) given in the first semester.

We will focus on the following topics

  1. Randomized Encoding
  2. Lower bounds
  3. Random Local Functions
  4. Computational notions of entropy

Prerequisite:  Foundation of Cryptography course (0368-4162-01)

0368-4139-01
 שיטות אלגורתימיות
 Algorithmic Methods
פרופ עזר יוסףשיעור שרייבר מתמטי006 ג'1900-1600 סמ'  א'
0368-4177-01
 לוגיקות אלטרנטיביות
 Alternative Logics
פרופ אברון ארנוןשיעור אורנשטיין102 ג'1200-0900 סמ'  א'

Alongside the classical logic which is taught in the basic courses of logic, there are several alternative logics which differ from it. In this course we shall get acquainted  with the most important and useful among them: logics for constructive reasoning (especially intuitionistic logic);  multiple-valued logics (that is: logics which  in addition to "true" and "false" make use of other truth-values); fuzzy logics (that treat fuzzy notions like "tall" or "young"); and paraconsistent logics (which are logics which make it possible to use non-trivial inconsistent theories).

0368-4178-01
 אימות אוטומטי של מערכות
 Automatic Verification of Systems
ד"ר שוהם בוכבינדר שרוןשיעור שרייבר מתמטי008 ב'1900-1600 סמ'  א'

The course introduces automatic verification of systems via model checking. 
We will review different ways to model systems and their properties (specifications) in a formal manner using formulas in temporal logic. 
We will present Model Checking algorithms, discuss their limitations and present several methods for tackling them. In particular, we will define order and equivalence relations between models, we will talk about counterexample-guided abstraction refinement, modular verification, symbolc model checking based on BDDs and based on SAT. We will present algorithms based on interpolation and property directed reachability.
 

0368-4180-01
 שיטות מתקדמות בלמידה חישובית
 Advanced Methods in Machine Learning
פרופ גלוברזון אמירשיעור אורנשטיין103 א'1500-1200 סמ'  ב'

The course covers advanced topics in machine learning, that were not covered in the introductory course. 

Among the topics are:

1. Advanced generalization bounds, based on stability arguments and Rademacher complexity.

2. Topics in graphical models and structured prediction. These are methods used for predicting complex labels, such as image segmentation and semantic analysis of sentences.

3. Selected topics in deep learning, with a focus on unsupervised learning.

0368-4181-01
 סמינר בקומבינטוריקה אדטיבית
 Seminar in Additive Combinatorics
פרופ בנבנישתי שפילקה אמירסמינר פיזיקה-שנקר104 ד'1700-1500 סמ'  א'

קומבינטוריקה אדיטיבית חוקרת שאלות כגון: בהינתן קבוצת מספרים טבעיים A, מה ניתן להגיד על (|max(|A+A|,|A*A ? אם |A+A|~|A| עד כמה קרובה הקבוצה A לתת מרחב? למרות פשוטתן, התשובה המדויקת לשאלות אינה ידועה. אולם, בשנים האחרונות חלה התקדמות רבה בהבנתנו וקשרים מעניינים לבעיות אחרות התגלו. בקורס זה אנו נציג מאמרים מהשנים האחרונות העוסקים בשאלות של קומבינטוריקה אדיטיבית ובשימושיה למדעי המחשב, כגון מציאת סדרות חשבוניות בקבוצות גדולות, בניית אקסטרקטורים וגרפים מרחיבים, הבנה טובה יותר של פולינומים מוטים ובדיקת מקומית של פולינומים ממעלה 2. 

 

 

דרישות הקורס:

 

הרקע הבסיסי הדרוש הוא אלגברה ליניארית והכרה של שדות סופיים (כמו כן שליטה בהסתברות לא תזיק) וסיבוכיות. הקורס הוא מתמטי ובעיקר דורש בגרות מתמטית מן הסטודנטים (מי שלא מבין/ה מושג זה מוזמן/ת לפנות לאמיר).

 

תלמידים ידרשו  להעביר הרצאה בסמינר ולעקוב ולהתעניין בהרצאות של תלמידים אחרים.

 

 

ספרות:

 

בתחילה נעבור על מאמר הסקירה של שחר לובט Additive Combinatorics and its Applications in Theoretical Computer Science 

 

 

בהמשך נעבור על מאמרים מהרשימה הבאה:

 

An Exposition of Sanders’ Quasi-Polynomial Freiman-Ruzsa Theorem/Shachar Lovett

 

On large subsets of F_q^n with no three-term arithmetic progression/Jordan S. EllenbergDion Gijswijt

 

Progression-free sets in Z_4^n are exponentially small\Ernie CrootVsevolod LevPeter Pach

 

0368-4182-01
 סמינר בפרוטוקולים לחישוב בטוח
 Seminar in Secure Multi-Party Computation
פרופ היטנר יפתח אילןסמינר שרייבר מתמטי008 ג'1200-1000 סמ'  ב'

In Secure Multiparty Computation, two or more parties wish to jointly compute a function of their inputs in a secure manner: the outputs received by the parties are correctly distributed, and  the privacy of each party’s input is preserved as much as possible, even in the presence of adversarial behavior.

Formally defining secure multiparty computation and implementing the secure computation for many functions of interest, is arguably one of the great achievements of theoretical cryptography.

In this student seminar will start with the basic definitions and implementations, and then move to more advanced topics, such as highly efficient computation,  necessity of the different assumptions, and more. 

 

Textbook:  The seminar will not follow any specific text, references to the the relevant material for each lecture will be given in the seminar website.

 

Presentations: Each week, a student will give a whiteboard presentation on a topic from the seminar topic list (to be published  on the seminar website).

 

Undergrad studetns. Third year students who are willing to work hard are welcome to join the seminar, but please consult me via email before registering.

Perquisite: Computational Complexity (possibly in parallel). Cryptography course, like Foundation of Cryptography or Introduction to Modern Cryptography, is recommended but not required. 

0368-4183-01
 נושאים מתקדמים בארכיטקטורה ותוכנה של מעבדים מרובי ליבות
 Advanced Topics in Multicore Architecture and Software Systems
ד"ר מוריסון אדםשיעור שרייבר מתמטי008 ד'1900-1600 סמ'  ב'

 

Course Description

 

Writing fast and scalable multi-core programs is hard.  Multi-core programming models fail to abstract away the details of the underlying computer architecture, partly because of limitations in the hardware/software interfaces (such as instruction sets and memory models).  We must thus understand the multi-core architecture, both to design efficient algorithms and systems, and to find better abstractions and interfaces.

 

This course covers the state of the art in multi-core programming and architecture.  A main objective is to introduce students to open research problems in multi-core research.  We will study cutting edge works and present the open problems that remain to be solved:

  • We will study existing architectures and understand their limitations, and we will see the innovative algorithms, techniques and systems built to extract high performance on currently available hardware
  • We will consider various computational problems and see ways to solve them both in software and in hardware, the different trade-offs involved, and the interesting similarities between software and hardware solutions.
  • We will further study research architecture designs for simplifying and speeding up parallel programming.

NOTE:  We will consider hardware only at the microarchitecture level, not at the logic/gate level; for an example of microarchitectural material, see the book A Primer on Memory Consistency and Cache Coherencehttps://lagunita.stanford.edu/c4x/Engineering/CS316/asset/A_Primer_on_Memory_Consistency_and_Coherence.pdf.)

 

 

List of Topics (Tentative)

 

- Advanced synchronizations methods for handling contention

 

- Transactions and concurrency control techniques for in-memory databases

 

- Hardware transactional memory (HTM)

  • Commercial offerings in Intel and IBM processors
  • Research improvements (conflict serializability, unbounded HTM)

- Advanced concurrent data structures

  • Optimistic concurrency control
  • NUMA-awareness

- Relaxing correctness guarantees of concurrent data structures to improve performance

 

- Multi-core graph analytics (systems and algorithms)

 

- Ordered parallelism (priority-based scheduling): software and architectural support

 

- Memory consistency models (of processors and programming languages)

  • C/C++ and Java memory models
  • Sequential consistency (SC) and total store ordering (TSO)---the x86 memory model
  • Efficient implementations of SC and TSO (software and microarchitectural)

- Cache coherence protocols

  • Commercial offerings (MESI and variants)
  • Scalability of cache coherence
  • Novel research protocols
  • Leveraging disciplined parallel programming to simplify cache coherence

- Non-volatile memory and its relation to concurrency

 

 

Requirements

 

- Research project (no exam)

 

- Problem sets

 

- Possibly: Scribe notes

 

 

 

0368-4184-01
 סמינר במערכות מחשבים מקביליות ומבוזרות
 Seminar in Parallel and Distributed Computer Systems
ד"ר מוריסון אדםסמינר קפלון118 ד'1800-1600 סמ'  א'

The seminar will cover cutting-edge practical research on parallel and distributed computer systems in areas such as operating systems, networking, databases, cloud computing, "big data" analytics and more.

 

Students will be required to (1) read a research paper, understand it, and present it in class; and (2) hand in short (< 1 page) reviews of the papers presented over the semester.

דרישות קדם: מערכות הפעלה, מבנה מחשבים

0368-4355-01
 נושאים במודלים של מערכות תוכנה
 Topics in Software and Systems Modeling
ד"ר מעוז שחרשיעור שרייבר מתמטי007 ב'1300-1000 סמ'  א'
0368-4429-01
 חישוב מבוזר
 Distributed Computation
פרופ אפק יהודהשיעור ותשרייבר מתמטי006 א'1900-1600 סמ'  ב'
0368-4483-01
 תורת המשחקים האלגוריתמית
 Algorithmic Game Theory
פרופ פלדמן מיכלשיעור ותכיתות דן דוד203 ד'1700-1400 סמ'  ב'
Algorithmic Game Theory
 
Instructor: Prof. Michal Feldman
Time & Place: Wednesday, 2-5pm (place TBA)
Prerequisites: probability theory, algorithms, complexity
 
Tentative list of topics:
Introduction to algorithms and games
Two-player zero-sum games (Minmax theorem)
Regret minimization and correlated equilibrium
Nash equilibrium
            Mixed equilibrium and Nash theorem
Pure equilibrium
Equilibrium existence
Congestion games
Quality of equilibrium: price of anarchy and smoothness
Social choice and Mechanism Design
            Introduction to social choice
            Mechanism design without money (and approximation)
            Social welfare maximization (VCG)
            Combinatorial auctions
            Revenue maximization (optimal mechanisms)
Markets and pricing
            Walrasian equilibrium
            First and second welfare theorems
            Ascending price auctions
 
Course requirements and grading: 
Problem sets (possibly including grading)  
Final project (either a research project or a survey) – max 10 pages (possibly including presentation)
Scribe notes
 
Some references
    Roughgarden, An algorithmic game theory primer (2008) http://theory.stanford.edu/~tim/papers/tcs08.pdf
    Shoham, Communications of the ACM, Computer Science and Game Theory, http://robotics.stanford.edu/~shoham/www%20papers/CSGT-CACM080417.pdf
    Halpern. Computer science and game theory: a brief survey
http://www.cs.cornell.edu/home/halpern/papers/csgt.pdf
0368-4492-01
 שיטות אלגבריות במדעי המחשב ובקומבינטוריקה
 Algebraic Methods in Computer Science and Combinatorics
פרופ בנבנישתי שפילקה אמירשיעור ותשרייבר מתמטי008 ד'1300-1000 סמ'  א'

אלגברה ליניארית היא כלי בסיסי במתמטיקה אליו כולם נחשפים בתחילת לימודיהם. אולם למרות (ואולי בשל) פשטותה נהייתה לאחד הכלים השימושים ביותר בתיאוריה של מדעי המחשב ובקומבינטוריקה. בקורס זה נכיר מספר טכניקות בסיסיות המשתמשות באלגברה ליניארית ובאמצעותן נקבל תוצאות יפות במדעי המחשב ובקומבינטוריקה. בין השאר נעבור על הנושאים הבאים:

 

 

  • משפחות נחתכות

     

  • ערכים עצמיים של מטריצות שכנויות

     

  • השיטה הפולינומיאלית

     

  • חסמים תחתונים למעגלים אריתמטיים

     

  • טרנספורם פורייה ושימושיו

     

  • משפט אפסים קומבינטורי (combinatorial nullstellensatz)

     

 

דרישות הקורס

הרקע הבסיסי הדרוש הוא אלגברה ליניארית והכרה של שדות סופיים (כמו כן שליטה בהסתברות לא תזיק). הקורס הוא מתמטי ובעיקר דורש בגרות מתמטית מן הסטודנטים (מי שלא מבין/ה מושג זה מוזמן/ת לפנות לאמיר).

רשימת ספרות

1. 
Linear Algebra Methods in Combinatorics and Computer Science/ L. Babai and P. Frankl.

2. 
Extremal Combinatorics With Applications in Computer Science/ S. Jukna

3. 
Combinatorial Nullstellensatz/ N. Alon

4. 
Algebraic Methods in Combinatorics, Lecture Notes/O. Pikhurko

0368-4493-01
 אלגוריתמים דינמיים
 Dynamic Algorithms
ד"ר צ'צ'יק שירישיעור ותכיתות דן דוד204 ג'1900-1600 סמ'  ב'

גרפים דינמיים הם גרפים שמשתנים עם הזמן (קשתות/צמתים נמחקים/מתווספים לגרף).

אלגוריתמים דינמיים הם אלגוריתמים שמתחזקים מבנה רצוי על גרף דינמי. כאשר אחת המטרות המרכזיות היא למזער את הזמן שלוקח לעדכן את מבנה הנתונים בעקבות עדכון (מחיקה או הוספה של צומת או קשת).

 נראה לדוגמא אלגוריתמים שמתחזקים עצי מסלולים קצרים ביותר תוך כדי מחיקת/הוספת קשתות/צמתים לגרף ע"י יריב כלשהוא. דוגמאות נוספות שנראה: קישוריות, עץ פורש מינימלי וכו'.

נלמד בקורס אלגוריתמים דינמיים תוך כדי מתן דגש על תוצאות מרכזיות בתחום.
0368-4502-01
 סמינר מתקדם באלגוריתמים
 Advanced Seminar
פרופ קפלן חייםסמינר קפלון324 ד'2000-1800 סמ'  א'
0368-4503-01
 סמינר באוטומטים, משחקים וסינתזה
 Advanced Seminar
פרופ רבינוביץ אלכסנדרסמינר פיזיקה-שנקר105 ד'1900-1700 סמ'  ב'

Games, logic and Automata Seminar

 

In this seminar we will study topics related to games, logic and automata and a rich interplay between them.

 

Requirements: (a) give a lecture. (b) actively participate in the lectures of other students.

 

We will use book Automata, Logic and infinite games, edited by Gradel, Thomas and Wilke, LNCS 2500.

0368-5248-01
 סמינר מתקדם בקריפטוגרפיה
 Advanced Seminar in Cryptography
פרופ היטנר יפתח אילןסמינר שרייבר מתמטי309 ה'1500-1300 סמ'  א'
סמינר שרייבר מתמטי309 ה'1500-1300 סמ'  ב'

This seminar is for gradute students whose resreach topic is related to theoretical cryptography. Plerase contact me via email if you would like to attend.

0368-8888-01
 בחינה על עבודת גמר
 Final Examination
בחינת גמ סמ'  א'
0368-9999-01
 עבודת גמר
 Thesis
עבודת גמ סמ'  א'