הרשמה אונליין
ללמוד אצלנוקורסי הלימוד

כל הקורסים

  • מבוא לבדיקות תוכנה ואוטומציה (סמ' א')

    • מדעי המחשב
    • שנה ג’
    • בחירה
    קוד הקורס: 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, אינטל, אקסודיוס ומל"מ.

  • ארכיטקטורות מחשבים

    • מדעי המחשב
    • שנה ג’
    • בחירה
    קוד הקורס: 10203072
    שם המרצה: ד"ר מרטין לנד
    דרישות קדם: מערכות חומרה תכנה ותכנות בשפת סף
    סמסטר ב' , שנה ג’
    נקודות זכות: 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. ניתוח מקרה אנדרויד.