כל הקורסים
-
מבוא לבדיקות תוכנה ואוטומציה (סמ' א')
קוד הקורס: 10200293דרישות קדם: תכנות אינטרנט ב', או שפת מונחה עצמים אחרתסמסטר א' , שנה ג’נקודות זכות: 3מה הן בדיקות תוכנה? מה היא אוטומציה? מהם הכלים לאוטומציה של בדיקות תוכנה? כיצד לסדר סביבת עבודה מאפס? מה ההבדל בין בדיקות תוכנה של יישום אינטרנטי ליישום נייד?
בשנים האחרונות הוכח שלא רק ניתן להחליף בדיקות ידניות באוטומטיות, אלא שזוהי הדרך היחידה המאפשרת לחברת היי-טק לגדול בצורה בטוחה ללא השקעה הולכת וגדלה בגיוס בודקים ידניים. מערכות אוטומציה הבודקות מוצרי תוכנה/קושחה/חומרה, על בסיס ריצה מתוזמנת בלתי פוסקת, מהוות היום מרכיב חשוב במגוון רחב של חברות היי-טק שונות ויישומים שונים.
בקורס נציג את תחום הבדיקות ידניות והאוטומטיות של תוכנה. נלמד דרך דוגמאות מעשיות את הנושאים הבאים:
בדיקות תוכנה ידניות: אין לגשת ללימוד של אוטומציה ללא הבנה בסיסית של מתודולוגיה של בדיקות ידניות. אנו נקדיש חלק קטן של זמן ללימוד והתנסות בבדיקות ידניות. מומלץ לקחת קורס נוסף מורחב בנושא, כי מדובר במקצוע שלם שאך הוא נחוץ היום בשוק.
בדיקות תוכנה אוטומטיות: היצע של עבודה באוטומציה בשוק מתחלקת לשתיים:
1) השתלבות בצוות אוטומציה קיים,
2) הקמת מערך בדיקות אוטומטיות מאפס (בחברה בעלת בדיקות ידניות בלבד).
אנו נכסה את שתי ההצעות. הדבר יכלול: הורדה והתקנה של אקליפס, ג'אווה, מייבן, TestNG, שרת הטמאה בלתי-פוסקת Jenkins ותבנית של פרויקט אוטומציה ב-WebDriver (או שמו הישן "סלניום") שישמש כבסיס להקמת הפרויקט האמיתי. נעסוק בהעשרת הפרויקט הבסיסי במגוון טסטים אוטומטיים מסוגים שונים.
בדיקות mobile ידניות: החלק השלישי של הקורס יעסוק בנושא החם היום בשוק של בדיקות של יישומים ניידים. אנו נלמד לארגן ולתכנן את הבדיקות הידניות לשלבים של אלפא, בטה ואחרי שחרור היישום ללקוח. נתנסה בבדיקות דרך חוות המכשירים, אמולטורים וסימולטורים. הדגש יהיה על אנדרואיד (כהכי נפוץ), אך נזכיר גם iOS.
בדיקות mobile אוטומטיות: הנושא הוא יחסית חדש ולא יציב בשוק, ומתפתח לכיוונים שונים שעדיין לא ברור מה הכיוון והכלים שינצחו בסופו של דבר. אנו נלמד את Appium ככלי הנוח ביותר ודומה מאוד לסלניום. אולי נגע ונעשה שימוש ב-Cucumber ושפת Gerkin.
* הקורס יועבר בג'אווה, לכן בהתחלה נקדיש זמן קצר להסבה מ-C++.
-
אוטומטים ושפות פורמליות
קוד הקורס: 110202053שם המרצה: ד"ר פרג' שיבאןדרישות קדם: מתמטיקה דיסקרטית, מבוא לתיאוריה של מדעי המחשב, מבני נתוניםסמסטר א' , שנה ג’נקודות זכות: 3שפה פורמאלית היא אוסף מילים המקיימות תכונה מסוימת, ו/או בעלות מבנה מסוים, למשל המספרים הראשוניים, או מילים באורך זוגי עם אות זהה בהתחלה ובסוף, וכדומה. כמעט לכל בעיה (מתמטית) ניתן לבנות שפה, כך שפתרון הבעיה שקול להכרעה אם מילה נתונה נמצאת או לא נמצאת בשפה. נדון בעצמת הקושי להחליט מי נמצא בשפה (ולכן בעצמת הקושי של הבעיה שהיא מבטאת) ע"י ניתוח המורכבות של האוטומט (ה"מחשב") הנדרש לצורך ביצוע ההחלטה.
נתחיל בשפות הפשוטות הנקראות "רגולריות", להן נדרש מחשבון פשוט הנקרא "אוטומט סופי דטרמיניסטי". נאפיין שפות אלו גם ע"י ביטויים מתמטיים הנקראים ”ביטויים רגולריים", וגם ע"י תנאי מבנה הנובעים מ"משפט Nerode", שממנו גם נלמד לבנות את האוטומט הקטן יותר שניתן לבנות. נכיר תכונות מבנה רבות של שפות אלו, ונדון בבעיות הכרעה שונות על המבנה שלהן. בעזרת "למת הניפוח" נלמד איך להוכיח ששפה היא מורכבת יותר משפה רגולרית. נראה שהכנסת אקראיות לפעולת האוטומט לא עוזרת.
נכיר "תהליך דקדוקי" בונה מילים שמאפשר בניית שפות מורכבות יותר הנקראות "חופשיות הקשר", (רוב שפות התכנות הן כאלה). נאפיין שפות אלה גם בעזרת "אוטומט המחסנית" המורכב יותר. נוכיח את "למת הניפוח" ו"למת אוגדן" המאפשרות להראות שיש שפות עוד יותר מורכבות. נכיר את "ההיררכיה של חומסקי" המסווגת את כלל השפות לפי סיבוך התהליך הדקדוקי הנדרש ליצירתן.
-
תכנות אינטרנט א'
קוד הקורס: 10204153שם המרצה: ד"ר סולנג' קרסנטידרישות קדם: מבוא לתכנות מונחה עצמים והנדסת תכנה, תכנות מונחה עצמים ופיתוח משחקיםסמסטר א' , שנה ג’נקודות זכות: 4כיצד בונים אתר כמו Facebook?
הקורס מקנה ידע בטכנולוגיות תכנות המשולבות באתרים מתקדמים ,עם דגש על חוויה אינטראקטיבית עשירה, ונגישת האתר ,(Accessibility) ופיתוח אתרים המתואמים למכשירים ניידים (Responsive).
לשם בניית אתר שכזה נדרשתיכולת לעצב אתר בצורה תקינה, ידע בטכנולוגיות לפיתוח צד לקוח וצד השרת.
בצד הלקוח זה כולל: HTML5, CSS3 ,JavaScript וידע בספריות השייכות לחברות המובילות כגוןTwitter Bootstrap / React .
בצד השרת זה כולל ידע בניהול מסדי נתונים ,הקמת שרת Web רב לקוחות, פיתוח רכיבים כגון רישום משתמשים, אימות, ניהול תוכן דינמי, חיפוש במאגרי מידע, ניהול סל קניות. נלמד לפתח על בסיס ארכיטקטורה Model-View-Controller ע״י שימוש במערכות(front-end/backend frameworks) כגון Node.JS.
-
מערכות לומדות (תואר ראשון)
קוד הקורס: 110208243שם המרצה: ד"ר יורם יקותיאלידרישות קדם: אלגברה ליניארית א' + ב', חדו"א: פונקציות של משתנה אחד, חדו"א: עקומות ומשטחיםסמסטר א' , שנה ג’נקודות זכות: 3מה היא למידה? מה הן מערכות לומדות? האם מכונה יכולה ללמוד ואילו מושגים ניתנים ללמידה? כיצד ניתן ללמד מכונה? באילו שיטות ועבור אילו בעיות?
בשנים האחרונות הודגם שלא רק שמכונות יכולות ללמוד, אלא שזהו כלי חיוני מאין כמוהו לטיפול בבעיות סבוכות ובגודש המידע המציף אותנו. מערכות אוטומטיות הלומדות לזהות דפוסים משמשות כיום מרכיב חשוב במגוון עצום של תחומים וישומים.
בקורס נציג את תחום המערכות הלומדות ואת הקשר שלו לתחומים אחרים. נלמד דרך דוגמאות מעשיות את הנושאים הבאים:
רגרסיה: התאמת מודל לנתונים. שיטות מינימום שגיאה ריבועית. Support Vector machines. זיהוי – detection (האם בתמונה נמצאים פנים? היכן?) recognition (מהו האוביקט הנמצא בקלט, האם זהו אדם?) identification, individualiztion (מי החתול הזה? האם זה מיצי?), למידה מונחית – supervised learning. סיווג – classification (האם הקלט המוגש שייך לקבוצה זו או אחרת, האם זה תפוח או תפוז?) שיטת השכן הקרוב, סיווג בייס נאיבי, עצי החלטה. רשתות עצבים מלאכותיות. למידה בלתי מונחית – unsepervised learning. ניתוח אשכולות – clustering. הפחתת מימדים – dimensionality reduction. למידת חיזוק – reinforcement learning. מודלים להערכת התפלגויות - Probabalistic graphic models. אלגוריתמים גנטיים. ספריות תוכנה ובהן כלי Matlab ו Python (scikit-learn) המממשים מערכות לומדות. בקורס ינתן דגש על למידה אוטומטית מתוך מידע ביורפואי לצרכי זיהוי, אפיון, ניתוח והערכה של המידע.
-
בינה מלאכותית (תואר ראשון)
קוד הקורס: 10204183דרישות קדם: מתמטיקה דיסקרטית, מבוא לתיאוריה של מדעי המחשבסמסטר א' , שנה ג’נקודות זכות: 3 -
תכנות מערכות לומדות (תואר ראשון)
שם המרצה: ד"ר יורם יקותיאלידרישות קדם: מערכות לומדותסמסטר א' , שנה ג’נקודות זכות: 1חובה לתלמידי תואר ראשון שלוקחים את הקורס "מערכות לומדות"
-
פרויקט גמר (תואר ראשון)
קוד הקורס: 10204143דרישות קדם: סיום קורסי החובה של שנה ב'סמסטר א' וב' , שנה ג’נקודות זכות: 8תמיד חלמת לפתח אפליקציה מקורית לאיפון או לשחק עם רובוטים מונחי מצלמה? פרויקט הגמר הוא ההזדמנות שלך לפתח אפליקציות מתקדמות משלב הרעיון ועד שלב הביצוע. פרויקט הגמר מזמן מצד אחד אפשרות לעבודה עצמאית ומצד שני הנחיה וליווי של כל שלב בתכנון ובביצוע. במסגרת הפרויקט תוכל להביא את מכלול היכולות שלך לידי ביטוי ולעצב "כרטיס כניסה" מכובד לתעשייה. נושאי הפרויקטים ייבחרו על-ידי הסטודנטים תוך תיאום עם מנחי הפרויקטים מתוך מגוון תחומים כגון רובוטיקה, ממשקי משתמש מתקדמים, אינטרנט, גרפיקה, עיבוד תמונה, ראייה ממוחשבת, מיקרו-מעבדים ותכנות מתקדם. בשלב התכנון הסטודנטים ידרשו לגבש הצעת פרויקט ולאחר אישורה ימשיכו לשלב הביצוע הפרויקטים. שלב הביצוע יתמקד בבניית הפרויקט, בבדיקת הפרויקט, בתיעוד הפרויקט, באריזת הפרויקט ובהצגת הפרויקט. כדוגמא לפרויקטי גמר שבוצעו בשנים קודמות ניתן להזכיר מערכת לרוכבי אופניים לסביבת אנדרואיד, מערכת רובוטים מונחי מצלמה לצורכי אבטחה, אפליקציה לתיקון אוטומטי של שגיאות איות וניסוח, תוכנה לזיהוי כתב עברי ומחוות בזמן אמת, תוכנה לאימון דיבור לילדים חרשים ועוד. חלק מפרויקטי הגמר מבוצעים בשיתוף פעולה עם חוגים מבית הספר לתקשורת ועיצוב ועם החוג להפרעות בתקשורת וכן עם גורמים חיצוניים כמו עם המחלקה לזיהוי פלילי, מרכז וריאטי לילדים בעלי צרכים מיוחדים ועמותת מילבת וחברות מובילות בתחומן דוגמת NDS, אינטל, אקסודיוס ומל"מ.
-
ארכיטקטורות מחשבים
סמסטר ב' , שנה ג’נקודות זכות: 3ארכיטקטורה היא התחום במדעי המחשב שמספק את הפלטפורמה למימוש המעשי של החידושים בתכנות ובאלגוריתמים. הגידול העצום במספר שורות הקוד במערכות התכנה המורכבות הקיימות כיום מתאפשר רק תודות לגידול מקביל בקצב החומרה.
בקורס זה נכיר את שיטות העבודה בארכיטקטורה ונלמד את עיקרי הטכנולוגיות הקיימות במחשבים מודרניים. הנושאים הנלמדים: רענון ארגון המחשב, הגדרת קבוצת פקודות (instruction set architecture), מדידות ו- benchmarks, תורת הביצועים וניתוח כמותי של שיטות למימוש פקודות במיקרו-מעבד, המעבר משיטות CISC לשיטות RISC, חפיפת פקודות (pipelining) וניתוח מעצורים, חשבון מחשב ותכנון ALU, שיטות לניהול זיכרון ושיטות cache, תקשורת פנימית בלוח הראשי (motherboard), מערכות superscalar, מעבדים מרובי ליבות, מחשב ה- PC בימינו כמימוש הישגי ארכיטקטורה.
-
סמינר בתקשורת ובמערכות מבוזרות
קוד הקורס: 10208253שם המרצה: ד"ר מרטין לנדדרישות קדם: תכנות מערכת ומבוא לתכנות מקבילי, מערכות הפעלה ותכנות בשפות סקריפטים, תורת ההסתברות, אלגוריתמיםסמסטר ב' , שנה ג’נקודות זכות: 2הסמינר יעסוק בנושאים מתקדמים ברשתות מחשבים מודרניות. בין הנושאים שנפגוש: פרוטוקולים לארגון וניהול רשתות, רשתות ענן, שילוב ניתוב ומיתוג, תשתית מהירה (DSL, סיבאופטי, ועוד), אבטחת מידע, רשתות אלחוטיות ומערכות סלולאריות, ניתוח ביצועים, ועוד נושאים בהתאם להתעניינות המשתתפים.
-
מבוא לאבטחת מידע (תואר ראשון)
קוד הקורס: 10204193שם המרצה: בנימין הירשברגדרישות קדם: אלגברה ליניארית א'+ב', מערכות הפעלה, תקשורת מחשבים, ארכיטקטורות מחשבים, יש ללמוד את מבוא להצפנה במקבילסמסטר ב' , שנה ג’נקודות זכות: 3מטרות אבטחת מידע, איומים כללים על מערכות מידע. יסודות תורת ההצפנה, הנדסת קריפטוגרפיה: צפנים סימטריים ואסימטריים (DES, AES), צפני גושיים וצפני זרם (RC4). שיטות החלפת מפתחות (Diffie-Helman). אלגוריתמי גיבוב (HASH) קריפטוגרפים וחתימות דיגיטליות. סרטיפיקטים ותשתיות מפתחות פומביים (PKI). מדיניות אבטחה ויסודות הגנה: הגנה לעומק , הפרדת אחריויות והרשאות, זיהוי, אימות, הרשאות ועיקרון של זכות מינימלית, Bell LaPadua model. מושגים וטכניקות של התקפות. תוקפים ואתיקה. יסודות אבטחת רשתות, ניתוח מקרה SSL, יסודות אבטחת מחשבים, מערכות הפעלה ו-Trusted Computing. ניתוח מקרה אנדרויד.