הנדסת תוכנה: לצלול לעומק האלגוריתם

מפגש מתעניינים

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


לבדיקת סיכויי קבלה  להרשמה לתוכנית

מה זה הנדסת תוכנה?

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

למה כדאי לי ללמוד את התחום?

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

מי עומד בראש התוכנית?

בראש התוכנית עומד פרופ' הלל קוגלר, המתמחה באימות פורמלי וסינתזה, שפות ויזואליות, חישוב ביולוגי וביולוגיה התפתחותית.

מהם תנאי הקבלה?

  • ציון פסיכומטרי 650 לפחות
  • בגרות 5 יחידות מתמטיקה בציון  80 לפחות

מה נלמד במהלך התואר?

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

מהן ההתמחויות המוצעות בתוכנית?

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

ואיך אוכל ליישם את הידע שלי בעולם האמיתי?

כלים חדשים לפיתוח קוד: פרוייקטי תוכנה גדולים, המפותחים ע"י מספר צוותים של מפתחים, משתמשים בשגרה בתוכנות לניהול קוד, שמאפשרות שמירת גרסאות של הפרויקט ומעקב אחר שינויי קוד, באגים, השוואת גרסאות, טסטים אוטומטיים ובנייה של המערכת. סביבה אחת כזו היא GitHub. פיתוחים אחרונים מאפשרים למערכות כאלה להסתייע ביכולות בינה מלאכותית (AI) ומאגרי מידע מרוכזים (SE) בשביל לשפר קוד קיים, להציע קוד חדש ובגדול – להשיג קוד משובח יותר ביעילות פיתוח גבוהה יותר. דוגמה לחברה בתחום זה היא tabnine, שמציעה פתרונות לסביבות פיתוח קוד תוך שימת  דגש על אבטחת מידע וזכויות יוצרים, שהן נקודות מפתח בהרבה פרויקטים אסטרטגיים.

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

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

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

לבדיקת סיכויי קבלה להרשמה לתוכנית