לימודי הנדסת תוכנה

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

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

למידע נוסף

ייחודיות תואר ראשון בהנדסת תוכנה באפקה

  • תוכנית לימודים שנבנתה בשיתוף התעשייה ומתעדכנת באופן שוטף, בהתאם לטכנולוגיות ולמיומנויות הנדרשות בעולם פיתוח התוכנה.
  • התמחות בתעשייה כבר במהלך הלימודים, המאפשרת לצבור ניסיון מקצועי ולהשתלב בשוק העבודה עוד לפני סיום התואר.
  • מסלול מוביל לעתודה האקדמית,  המעניק בסיס הנדסי רחב והכשרה בטכנולוגיות המובילות את עולם התוכנה, ומכין את הסטודנטיות והסטודנטים להשתלבות בתפקידי פיתוח טכנולוגיים בצה"ל ובתעשייה.
  • תוכנית לימודים מקיפה הכוללת פיתוח מערכות תוכנה מורכבות כגון: תכנון וארכיטקטורת מערכות, מידול תוכנה, מחשוב ענן, אבטחת מידע וסייבר.
  • התמחות בטכנולוגיות AI מתקדמות, באמצעות קורסים בלמידת מכונה, רשתות נוירונים ולמידה עמוקה, ראייה ממוחשבת, ניתוח נתוני עתק ויישומי AI בעולם הרכב האוטונומי ופיתוח המשחקים.
  • התנסות בטכנולוגיות העתיד, ובהן בלוקצ'יין, קריפטוגרפיה, מחשוב ענן ופיתוח מערכות מאובטחות.
  • פרויקט גמר יישומי, המאפשר להתמודד עם אתגרי פיתוח אמיתיים וליישם טכנולוגיות מתקדמות בסביבה המדמה את התעשייה. 
  • סקילבוס, תוכנית פיתוח מיומנויות חיוניות לעולם העבודה משולבת לאורך התואר, ובהן עבודה בצוותים רב־תחומיים, למידה עצמאית, חשיבה ביקורתית ותקשורת אפקטיבית.
  • סגל אקדמי המשלב מומחיות ומומחים מובילים מהאקדמיה ומהתעשייה, המביאים לכיתה ניסיון עדכני בפיתוח, מחקר וחדשנות.
  • בחירה בין לימודי יום ללימודי ערב, המאפשרת להתאים את התואר לשלב החיים ולשלב בין לימודים, עבודה ושירות צבאי.

תקצירי קורסים וסילבוסים בתואר ראשון בהנדסת תוכנה

לוגיקה - מושגים בסיסיים, תחשיב הפסוקים. תורת הקבוצות - מושג הקבוצה, יחסים, יחסי שקילות, יחסי סדר חלקיים, אינדוקציה מתמטית, פונקציות, עוצמות. קומבינטוריקה: קומבינטוריקה בסיסית, בינום ניוטון, עקרון ההכלה וההפרדה, עקרון שובך היונים, רקורסיה, פונקציות יוצרות. גרפים: מושגים יסודיים, משפט אויילר.
בקורס הסטודנטים ילמדו את יסודות התכנות המונחה עצמים: מחלקות ואובייקטים, קונסטרקטורים ירושה, פולימורפיזם וממשקים. כמו כן ילמדו על מנגנון ה- generics. הסטודנטים ילמדו לתכנן מערכת והצגת באמצעות diagram class.
הקורס מציג את המושגים הבסיסים של ארגון המחשב ברמות ההפשטה השונות. במבוא נעסוק בהערכת ביצועי המעבד, ייצוג מספרים במחשב, יסודות האלגברה הבולאנית, וביישום של מעגלים לוגיים. נלמד את עקרונות התכנון של שפת האסמבלי של מעבד פשוט. נדגים עקרונות אלו בלימוד שפת האסמבלי של מעבד RISC V ונכיר מנגנוני תכנות בסיסיים. בהמשך נבנה את היחידות הבסיסיות בלוגיקה צירופית וסדרתית המרכיבות את מעבד זה. נציג את מימוש המעבד באופן עבודה חד מחזורי רב מחזורי וצנרת. נלמד לבצע שיפור ביצועים במימושים השונים. נכיר גם את מנגנון הפסיקה ועקרונות ניהול הזיכרון במחשב.
שפת תחשיב הפסוקים: תחביר וסמנטיקה , שקילות לוגית וגרירה לוגית. תורת ההיסק של תחשיב הפסוקים מערכת לוקשביץ, משפט הדדוקציה, נאותות ושלמות של מערכת ההיסק. מערכות נוספות. שפת תחשיב הפרדיקטים: תחביר פורמלי. שמות עצם ותבניות. סמנטיקה בסיסית: מבנים והשמות תבניות אמיתיות במבנה והשמה. תבניות אמיתיות לוגית. תורת ההיסק מסדר ראשון: אקסיומות, כללי היסק, הוכחות. משפט הנאותות, משפט הדדוקציה ומשפטי השלמות והקומפקטיות. משפטי אי השלמות של Godel. אימות תוכנה.
בקורס ילמדו הנושאים הבאים: קלט ופלט, ביטויים אריתמטיים ולוגיים משפטי תנאי, לולאות, פונקציות, רשימות, מילונים, מיונים וחיפושים ורקורסיות. הנושאים ילמדו תוך יישומם בשפת פייתון שתלמד במהלך הקורס.
מבוא ללינוקס, שימוש בטרמינל ועורכי קבצים, ארכיטקטורת מערכת קבצים, היכרות עם באש (Bash), פקודות בסיסיות, ניהול ועבודה עם קבצי אצווה, צינורות והפניות, כתיבת סקריפטים בבאש (Bash). כלים שונים לפיתוח ותפעול הפיתוח (DEVOPS) בסביבת LINUX, עבודה עם גיט (GIT) ועם DOCKER CONTAINERS.
התעשייה עתירת הידע חושפת את עובדיה ללא מעט אתגרים מוסרים והתלבטויות אתיות : האם לגיטמי לעבוד בחברה ללא קוד מוסרי מה לגבי חברות שיוצאות נגד ישראל באופן מבוהק ? האם מוסרי לעבוד בחברה שעוסקת בהימורים ומה אריסטו וקאנט יגידו על כול זה ? בכול שיעור יוצגו דילמות מחיי היום יום בתעשייה בלימודים ובכלל, חלק מהדוגמאות קשות לשמיעה ומכילות טריגרים לגזענות שובינזים החפצה ניצול רצח ועוד
שפת תחשיב הפסוקים: תחביר וסמנטיקה , שקילות לוגית וגרירה לוגית. תורת ההיסק של תחשיב הפסוקים מערכת לוקשביץ, משפט הדדוקציה, נאותות ושלמות של מערכת ההיסק. מערכות נוספות. שפת תחשיב הפרדיקטים: תחביר פורמלי. שמות עצם ותבניות. סמנטיקה בסיסית: מבנים והשמות תבניות אמיתיות במבנה והשמה. תבניות אמיתיות לוגית. תורת ההיסק מסדר ראשון: אקסיומות, כללי היסק, הוכחות. משפט הנאותות, משפט הדדוקציה ומשפטי השלמות והקומפקטיות. משפטי אי השלמות של Godel. אימות תוכנה.
לוגיקה - מושגים בסיסיים, תחשיב הפסוקים. תורת הקבוצות - מושג הקבוצה, יחסים, יחסי שקילות, יחסי סדר חלקיים, אינדוקציה מתמטית, פונקציות, עוצמות. קומבינטוריקה: קומבינטוריקה בסיסית, בינום ניוטון, עקרון ההכלה וההפרדה, עקרון שובך היונים, רקורסיה, פונקציות יוצרות. גרפים: מושגים יסודיים, משפט אויילר.
בקורס ילמדו הנושאים הבאים: קלט ופלט, ביטויים אריתמטיים ולוגיים משפטי תנאי, לולאות, פונקציות, רשימות, מילונים, מיונים וחיפושים ורקורסיות. הנושאים ילמדו תוך יישומם בשפת פייתון שתלמד במהלך הקורס.
בקורס הסטודנטים ילמדו את יסודות התכנות המונחה עצמים: מחלקות ואובייקטים, קונסטרקטורים ירושה, פולימורפיזם וממשקים. כמו כן ילמדו על מנגנון ה- generics. הסטודנטים ילמדו לתכנן מערכת והצגת באמצעות diagram class.
מבוא ללינוקס, שימוש בטרמינל ועורכי קבצים, ארכיטקטורת מערכת קבצים, היכרות עם באש (Bash), פקודות בסיסיות, ניהול ועבודה עם קבצי אצווה, צינורות והפניות, כתיבת סקריפטים בבאש (Bash). כלים שונים לפיתוח ותפעול הפיתוח (DEVOPS) בסביבת LINUX, עבודה עם גיט (GIT) ועם DOCKER CONTAINERS.
הקורס מציג את המושגים הבסיסים של ארגון המחשב ברמות ההפשטה השונות. במבוא נעסוק בהערכת ביצועי המעבד, ייצוג מספרים במחשב, יסודות האלגברה הבולאנית, וביישום של מעגלים לוגיים. נלמד את עקרונות התכנון של שפת האסמבלי של מעבד פשוט. נדגים עקרונות אלו בלימוד שפת האסמבלי של מעבד RISC V ונכיר מנגנוני תכנות בסיסיים. בהמשך נבנה את היחידות הבסיסיות בלוגיקה צירופית וסדרתית המרכיבות את מעבד זה. נציג את מימוש המעבד באופן עבודה חד מחזורי רב מחזורי וצנרת. נלמד לבצע שיפור ביצועים במימושים השונים. נכיר גם את מנגנון הפסיקה ועקרונות ניהול הזיכרון במחשב.
התעשייה עתירת הידע חושפת את עובדיה ללא מעט אתגרים מוסרים והתלבטויות אתיות : האם לגיטמי לעבוד בחברה ללא קוד מוסרי מה לגבי חברות שיוצאות נגד ישראל באופן מבוהק ? האם מוסרי לעבוד בחברה שעוסקת בהימורים ומה אריסטו וקאנט יגידו על כול זה ? בכול שיעור יוצגו דילמות מחיי היום יום בתעשייה בלימודים ובכלל, חלק מהדוגמאות קשות לשמיעה ומכילות טריגרים לגזענות שובינזים החפצה ניצול רצח ועוד
מושגים בסיסיים בהסתברות: מרחב מדגם ומשפטים בסיסיים, חישובים קומבינטוריים, הסתברויות מותנות ואי תלות, משתנים מקריים בדידים ורציפים, תוחלת ושונות של משתנה מקרי, משתנים בעלי התפלגויות מיוחדות, משתנים רב ממדיים ומשפט הגבול המרכזי. מושגים בסיסיים בסטטיסטיקה: בעיות עמידה ובדיקת השערות במודלים הסתברותיים בדידים ורציפים.
במהלך הקורס נלמד על עקרונות בבניית רשתות תקשורת מחשבים, ועל המנגנונים השונים המופעלים ברשתות אלה. הדגש בקורס יהיה על רשת האינטרנט, כולל המבנה הפיזי והמבנה הלוגי שלה. כמו כן נכלול יסודות של בניית יישומים רשתיים מעליה. הקורס מנוהל בגישת "מלמעלה למטה" כלומר מפרוטוקולי היישום עד הפרוטוקולים של השכבות הנמוכות. גישה שהכניסו ללימודי התקשורת Kurose & Ross שספרם (במהדורה השמינית) מהווה את הטקסט המרכזי בקורס.
ניתוח אלגוריתמים ושיעור הגידול, גידול של פונקציות וסכומים, משפט האב לרקוסיות. חיפוש איבר ברשימה ממוינת ולא ממוינת, מיזוג סדרות ממוינות, ניתוח סיבוכיות זמני הריצה שלהם. שיטות מיון שונות טיפוסי נתונים, ייצוגם ושימושיהם. רשימה כטיפוס נתון מופשט ,ורשימות דו-כיווניות, מחסנית, תור. עץ בינארי, יישומים בעזרת עצים.סריקות שונות של עצים ועץ חיפוש בינארי , עצים כלליים ועצים מאוזנים. ערמה, מיון באמצעות ערימה, מיון מהיר, מיון מנייה, מיון בסיס, מיון דלי, ניתוח סיבוכיות זמני הריצה שלהם. טבלאות גיבוב - Hashing.
שפות פורמליות, מכונות מצבים סופיות דטרמיניסטיות ולא דטרמיניסטיות, שפות רגולריות, ביטויים רגולריים, דקדוקים חסרי הקשר, מכונות מחסנית, מכונות טיורינג ושפות כריעות וכריעות למחצה.
הקורס בונה קשר ישיר בין הרקע התיאורטי לניתוח , עיצוב והערכת ממשקי אדם מכונה לבין מערכות ויישומים שאנו משתמשים בהם יום יום. בין הנושאים שהקורס בוחן: 1. שימוש במתודולוגיות, כלי עבודה, וטכניקות לפיתוח ממשקים ליישומים לציוד נייח ונייד, תוך שימת דגש על תהליך בניית הממשק, החל מהגדרות הממשק וכלה בתיכון ועיצוב מפורט. 2. שימוש בטכניקות שונות לפיתוח, איסוף, הבנה והגדרה של צרכי המשתמש 3. יישום שיטות להערכת איכות ממשק המשתמש 4. פיתוח POC המיישם את הנושאים הנלמדים שימו לב! הגשת התרגילים והפרויקט הוא בקבוצות (זוגות – רביעיות) לפי הנושא מתוך אותה קבוצת לימוד. לא יתאפשר ביצוע פרויקטים עם סטודנטים מקבוצות אחרות!
הקורס ידון במטרות אבטחה וסוגי תקיפה של תקשורת, בהצפנה בעזרת מפתח סימטרי ובמפתח פומבי. יוצגו ויתורגלו שיטות של תקיפת צפנים, פרוטוקולים להפצת מפתחות הצפנה, ועקרונות ההצפנה באינטרנט. יידונו ויודגמו מושגים באבטחת מערכת מחשב. הקורס יכלול רקע מתמטי הנדרש להבנת שיטות הצפנה והתנסות בהצפנה ופיענוח של צפנים פשוטים.
בקורס נלמדים העקרונות הבסיסיים והמתקדמים של שפת התכנות C: מצביעים, הקצאות זיכרון, מבנה פרויקט מורכב, פונקציות גנריות, סיביות וקבצים, תהליך וכלי פיתוח.
אנאליזה סטטיסטית מהווה כלי בסיסי הדרוש לכל חוקר. בקורס זה נלמד היקש סטטיסטי, נלמד להשוות בין התפלגויות של מדדים מסוגים שונים בקבוצות מדגם שונות. נלמד מבחנים פרמטריים ולא-פרמטריים, נלמד לערוך אנאליזת שונויות,, מבחני מתאם ורגרסיה לינארית. הנושאים ילמדו בצורה תאורטית, ויתורגלו מעשית בתרגילי מחשב בשפת R במעבדת המחשבים.
הקורס עוסק בעקרונות תכנות ובתבניות עיצוב Design Patterns.
הקורס מלמד את התאוריה ומתרגל את הפרקטיקה של הוכחות נכונות קוד בעזרת שימוש בשפה ובכלי (Dafny) שתומכים בפעילות זו על ידי אוטומציה חלקית של תהליך ההוכחה. במהלך הקורס הסטודנטים ילמדו בהדרגה תאוריה וטכניקות שיאפשרו להם לתאר דרישות נכונות ולהוכיח נכונות של תוכניות במורכבות הולכת וגדלה.
ניתוח הדרישות הוא השלב הראשון והכי משמעותי במחזור החיים של פיתוח, שבו מזהים את בעיית הלקוח ואת הדרישות למערכת תוכנה שתפתור את בעיית הלקוח. נציגי הפיתוח מזהים את צרכי הלקוח ומתרגמים אותם לאפיון (טכני) שישמש הן את צוותי פיתוח התוכנה והן את צוותי הבדיקות, המאשרים את המוצר. המחקר מראה שיותר מ-75% מהתקלות שמתגלות אצל הלקוחות לאחר התקנה מקורן באפיון הדרישות. בשנים האחרונות התפתחה דיסציפלינה חדשה של הנדסת דרישות הכוללת שיטות, מודלים, ותהליכים שמטרתם לשפר את הגדרת הדרישות, ניהול הדרישות והבקרה על השינויים בדרישות, מרגע שאופינו, בהתאם לצרכי הלקוח, ועד פריסת מערכת שפותחה לשביעות רצון הלקוחות.
במסגרת הקורס יינתן בסיס מקיף ליסודות של בינה מלאכותית. חלקו הראשון של הקורס יתמקד במושגי בינה מלאכותית של Search & Planning. החלק השני יתמקד בשיטות של Probabilistic Reasoning. החומר התיאורטי ילווה בדוגמאות.
מושגים בסיסיים בהסתברות: מרחב מדגם ומשפטים בסיסיים, חישובים קומבינטוריים, הסתברויות מותנות ואי תלות, משתנים מקריים בדידים ורציפים, תוחלת ושונות של משתנה מקרי, משתנים בעלי התפלגויות מיוחדות, משתנים רב ממדיים ומשפט הגבול המרכזי. מושגים בסיסיים בסטטיסטיקה: בעיות עמידה ובדיקת השערות במודלים הסתברותיים בדידים ורציפים.
בקורס נלמדים העקרונות הבסיסיים והמתקדמים של שפת התכנות C: מצביעים, הקצאות זיכרון, מבנה פרויקט מורכב, פונקציות גנריות, סיביות וקבצים, תהליך וכלי פיתוח.
במהלך הקורס נלמד על עקרונות בבניית רשתות תקשורת מחשבים, ועל המנגנונים השונים המופעלים ברשתות אלה. הדגש בקורס יהיה על רשת האינטרנט, כולל המבנה הפיזי והמבנה הלוגי שלה. כמו כן נכלול יסודות של בניית יישומים רשתיים מעליה. הקורס מנוהל בגישת "מלמעלה למטה" כלומר מפרוטוקולי היישום עד הפרוטוקולים של השכבות הנמוכות. גישה שהכניסו ללימודי התקשורת Kurose & Ross שספרם (במהדורה השמינית) מהווה את הטקסט המרכזי בקורס.
אנאליזה סטטיסטית מהווה כלי בסיסי הדרוש לכל חוקר. בקורס זה נלמד היקש סטטיסטי, נלמד להשוות בין התפלגויות של מדדים מסוגים שונים בקבוצות מדגם שונות. נלמד מבחנים פרמטריים ולא-פרמטריים, נלמד לערוך אנאליזת שונויות,, מבחני מתאם ורגרסיה לינארית. הנושאים ילמדו בצורה תאורטית, ויתורגלו מעשית בתרגילי מחשב בשפת R במעבדת המחשבים.
ניתוח אלגוריתמים ושיעור הגידול, גידול של פונקציות וסכומים, משפט האב לרקוסיות. חיפוש איבר ברשימה ממוינת ולא ממוינת, מיזוג סדרות ממוינות, ניתוח סיבוכיות זמני הריצה שלהם. שיטות מיון שונות טיפוסי נתונים, ייצוגם ושימושיהם. רשימה כטיפוס נתון מופשט ,ורשימות דו-כיווניות, מחסנית, תור. עץ בינארי, יישומים בעזרת עצים.סריקות שונות של עצים ועץ חיפוש בינארי , עצים כלליים ועצים מאוזנים. ערמה, מיון באמצעות ערימה, מיון מהיר, מיון מנייה, מיון בסיס, מיון דלי, ניתוח סיבוכיות זמני הריצה שלהם. טבלאות גיבוב - Hashing.
הקורס עוסק בעקרונות תכנות ובתבניות עיצוב Design Patterns.
שפות פורמליות, מכונות מצבים סופיות דטרמיניסטיות ולא דטרמיניסטיות, שפות רגולריות, ביטויים רגולריים, דקדוקים חסרי הקשר, מכונות מחסנית, מכונות טיורינג ושפות כריעות וכריעות למחצה.
הקורס מלמד את התאוריה ומתרגל את הפרקטיקה של הוכחות נכונות קוד בעזרת שימוש בשפה ובכלי (Dafny) שתומכים בפעילות זו על ידי אוטומציה חלקית של תהליך ההוכחה. במהלך הקורס הסטודנטים ילמדו בהדרגה תאוריה וטכניקות שיאפשרו להם לתאר דרישות נכונות ולהוכיח נכונות של תוכניות במורכבות הולכת וגדלה.
הקורס בונה קשר ישיר בין הרקע התיאורטי לניתוח , עיצוב והערכת ממשקי אדם מכונה לבין מערכות ויישומים שאנו משתמשים בהם יום יום. בין הנושאים שהקורס בוחן: 1. שימוש במתודולוגיות, כלי עבודה, וטכניקות לפיתוח ממשקים ליישומים לציוד נייח ונייד, תוך שימת דגש על תהליך בניית הממשק, החל מהגדרות הממשק וכלה בתיכון ועיצוב מפורט. 2. שימוש בטכניקות שונות לפיתוח, איסוף, הבנה והגדרה של צרכי המשתמש 3. יישום שיטות להערכת איכות ממשק המשתמש 4. פיתוח POC המיישם את הנושאים הנלמדים שימו לב! הגשת התרגילים והפרויקט הוא בקבוצות (זוגות – רביעיות) לפי הנושא מתוך אותה קבוצת לימוד. לא יתאפשר ביצוע פרויקטים עם סטודנטים מקבוצות אחרות!
ניתוח הדרישות הוא השלב הראשון והכי משמעותי במחזור החיים של פיתוח, שבו מזהים את בעיית הלקוח ואת הדרישות למערכת תוכנה שתפתור את בעיית הלקוח. נציגי הפיתוח מזהים את צרכי הלקוח ומתרגמים אותם לאפיון (טכני) שישמש הן את צוותי פיתוח התוכנה והן את צוותי הבדיקות, המאשרים את המוצר. המחקר מראה שיותר מ-75% מהתקלות שמתגלות אצל הלקוחות לאחר התקנה מקורן באפיון הדרישות. בשנים האחרונות התפתחה דיסציפלינה חדשה של הנדסת דרישות הכוללת שיטות, מודלים, ותהליכים שמטרתם לשפר את הגדרת הדרישות, ניהול הדרישות והבקרה על השינויים בדרישות, מרגע שאופינו, בהתאם לצרכי הלקוח, ועד פריסת מערכת שפותחה לשביעות רצון הלקוחות.
הקורס ידון במטרות אבטחה וסוגי תקיפה של תקשורת, בהצפנה בעזרת מפתח סימטרי ובמפתח פומבי. יוצגו ויתורגלו שיטות של תקיפת צפנים, פרוטוקולים להפצת מפתחות הצפנה, ועקרונות ההצפנה באינטרנט. יידונו ויודגמו מושגים באבטחת מערכת מחשב. הקורס יכלול רקע מתמטי הנדרש להבנת שיטות הצפנה והתנסות בהצפנה ופיענוח של צפנים פשוטים.
במסגרת הקורס יינתן בסיס מקיף ליסודות של בינה מלאכותית. חלקו הראשון של הקורס יתמקד במושגי בינה מלאכותית של Search & Planning. החלק השני יתמקד בשיטות של Probabilistic Reasoning. החומר התיאורטי ילווה בדוגמאות.
במהלך הקורס יילמדו שיטות יסוד לפתרון בעיות אלגוריתמיות, ובהן הפרד ומשול ונוסחאות נסיגה (חזרה), אלגוריתמים חמדניים, תכנון ליניארי ותכנון דינמי. מחצית השניה של הקורס מוקדשת לתורת הגרפים, תוך הצגת גרפים כמודל אוניברסלי לייצוג בעיות ולפתרונן באמצעות כלים אלגוריתמיים. במסגרת זו יילמדו ייצוגים של גרפים, סגור טרנזיטיבי, מסלולי אוילר והמילטון, סריקות BFS ו־DFS, רכיבים קשירים היטב, גרף על ומיון טופולוגי. בהמשך יידונו אלגוריתמים למציאת מסלולים קצרים ביותר, ובהם מסלולים קצרים בגרף DAG, אלגוריתם דייקסטרה, אלגוריתם בלמן-פורד ואלגוריתם פלויד-וורשל. לבסוף, הקורס יעסוק בעצים פורשים מינימליים ובאלגוריתמים הקלאסיים של קרוסקל ופרים. לאורך הקורס יודגש הקשר בין ניסוח הבעיה, בחירת השיטה האלגוריתמית המתאימה, הוכחת נכונות הפתרון וניתוח יעילותו.
מערכות ניהול בסיסי נתונים (DBMS = Database Management System) הם טכנולוגיית ליבה ביישומים עסקיים. הקורס נועד לתת לסטודנטים הבנה של התיאוריה והפרקטיקה של DBMS. נושאים מרכזיים כוללים: היכרות עם מערכות ניהול בסיסי נתונים, המודל הרלציוני, מודל ישויות/יחסים (Entity-Relationship Model),SQL, תכנון בסיס הנתונים, כתיבת טרנסאקציות, הרשאות, ושילוב בסיסי נתונים בתוך מערכות תוכנה. נושאים נוספים שהקורס נוגע בהם כוללים אבטחת בסיסי נתונים, ביזור בסיסי נתונים, ובסיסי נתונים שאינם רלציונים. נשתמש ב-PostgreSQL כדי לקבל ניסיון מעשי. נלמד גם שימוש נכון במערכות LLM לבניית בסיסי נתונים.
הקורס מחולק לשני חלקים. בחלק הראשון נלמד איך לתאר מערכות תגובתיות כמכונות מצבים (transition systems) ואיך לתאר תכונות בטיחות וחיות בעזרת נוסחאות בלוגיקה טמפורלית. נשתמש בכלי NuSMV כדי לבדוק באופן אוטומטי האם התכונות הרצויות מתקיימות. בחלק השני נלמד איך לתאר מערכות עתירות מידע בעזרת לוגיקה רלציונית ואיך לנסח תכונות מבניות (structural invariants) והתנהגותיות בעזרת הלוגיקה הרלציונית והכלי Alloy analyzer.
בוגרות ובוגרי הקורס ירכשו במהלכו מיומנויות בתכנון מערכות תוכנה גדולות ומורכבות, כך שיהיה קל ליישם, לתחזק ולשדרג אותן, תחת אילוצי איכות ותקציב, ובהתאם לתשתיות החומרה והתוכנה הזמינות להם. הקורס מתבסס על הידע שנרכש בקורסי הקדם לקורס זה, באפיון מערכות תוכנה ומודלים מופשטים להגדרת הדרישות והפונקציונאליות שלהן. במהלך הקורס, נלמד להתאים את יישום מערכות תוכנה אלה, לטכנולוגיות והתשתיות שנחוצות להקמתן ושזמינות עבור מערכות תוכנה אלה, להגדיר את רכיבי התוכנה הנחוצים ליישומן, ואת הזיקה בין רכיבים אלה, כך שיישומי התוכנה, שיפותחו על בסיסם, יעמדו בדרישות של ביצועים, אמינות ותמיכה בתחזוקה עתידית של מערכות התוכנה. הקורס מלווה את תהליכי התיכון והעיצוב של ארכיטקטורות מערכות תוכנה, שלאחריהן, מיישמים את המודלים והארכיטקטורות שנבחרו ליישום מערכות תוכנה אלה.
ארכיטקטורת מחשבים מקביליים, תיכון ותכנות מקבילי, MPI, JAVA multithreading, OpenMP ,CUDA, מחשוב מקבילי עם מעבד גראפי , אלגוריתמים מקביליים ויישומם.
הקורס עוסק בנושאים מתקדמים בתכנון וניתוח אלגוריתמים. במהלך הקורס נלמד אלגוריתמים לזרימה ברשתות ושידוכים, התאמת מחרוזות באמצעות KMP, אלגוריתמים מקוונים ואלגוריתמי קירוב. בנוסף יילמדו נושאים מרכזיים בתורת הסיבוכיות, ובהם המחלקות P, NP, coNP ו-PSPACE, רדוקציות פולינומיות, משפט Cook ובעיות NP-שלמות.
מימוש תשתית מרובת תהליכים; תכנות ריאקטיבי Reactive Programming; שימוש ב-Logger; ארכיטקטורת MVC; בדיקות יחידה, Mocking, בדיקות אינטגרציה; חיבור לבסיסי נתונים טבלאיים (Relational Databases) ובסיסי נתונים של NoSQL; פיתוח Client-Server; פיתוח Web-Services; יישום IoC תוך שימוש בתשתיות תוכנה מקובלות בתעשיה. הסטודנטיות והסטודנטים בקורס יתנסו בכתיבת פרויקט של מערכת עם מספר ממשקי משתמש שונים לאותה לוגיקה עסקית, באמצעות מבחר של יישומי קצה. הפרויקט ישלב מימושים בשפת Java לנושאים שנלמדו בקורסים קודמים בתכנית הלימודים: מערכות הפעלה, תקשורת ובסיסי נתונים, תוך שימוש ויישום עקרונות הנדסת תוכנה. יישום הפרויקט מחייב, בנוסף לחומר הנלמד בקורס, שליטה ומיומנות מלאים בנושאי הקורסים מבוא למדעי המחשב, תכנות מונחה עצמים ושיטות בהנדסת תוכנה. כמו כן לצורך היישום פרויקט בקורס, יהיה צורך בלמידה עצמאית של מחלקות ותשתיות תוכנה לפי הנחית סגל הקורס.
קורס זה עוסק ביחסי הגומלין שבין מידול בעיה ושפות תכנות. פתרון בעיות נסמך על שימוש במודלים טובים הממומשים בשפת תכנות המסוגלת לתמוך בהם. החומר הנלמד בקורס מהווה שילוב של תיאוריה ומעשה. כל העקרוות התאוריטים הנלמדים ממומשים בתוכנה, וכל התרגילים בקורס דורשים תכנות. הקורס משלב שתי גישות בלימוד עקרונות שפות תכנות: (1) שימוש בשפה אחת להדגמת כל מאפייני השפות הנלמדים בקורס (2) שימוש במספר שפות לייצוג אספקטים ופרדיגמות שונות. הגישה הראשונה תבוא לידי ביטוי בלימוד שפת Scheme – שפה זו מאפשרת, באמצעים פשוטים יחסית, לתמוך באלמנטים מורכבים כגון: העברת פרוצדורות כארגומנטים, יצירת פרוצדורות (גם חסרות שם) בזמן ריצה, מבנים אין-סופיים, ביצוע מניפולציות על הסביבה ועל ה-Call Stack , מימוש תכנות מונחה-עצמים ועוד. בשפה זו נבנה מפרש (interpreter) המקבל כקלט תוכנית וקלט לתכנית, ומחזיר כפלט את הערכים שהתוכנית מחשבת. נסקור גם שפות תכנות נוספות הממשות פרדיגמות תכנותיות שונות כגון Prolog המבטאת את הפרדיגמה הלוגית ו -Python בה ממומשים תכנות אימפרטיבי ועקרונות נוספים. מטלות הקורס יבוצעו בעיקר ב - Scheme (בסביבה Dr Racket)
מערכת הפעלה הינה תוכנה שמנהלת את משאבי החומרה במחשב. מערכת ההפעלה נותנת שירותים מקובלים לאפליקציות השונות. הקורס מציג את הנושאים המרכזיים של מערכות הפעלה מודרניות. בפרט: פסיקות, ניהול תהליכים (זימון, החלפת הקשר, תיאום, בעיית הקטע הקריטי), ניהול זיכרון (דפדוף, זיכרון וירטואלי) וניהול התקני זיכרון משני (מערכת הקבצים).
הקורס מציג את תהליך הקומפילציה המלא, תוך מתן דגש מוגבר על ייצוגי ביניים, ניתוח, אופטימיזציה ויצירת קוד באמצעות LLVM. הסטודנטים ילמדו את עקרונות הניתוח הלקסיקלי, הניתוח התחבירי, הניתוח הסמנטי וסביבת זמן הריצה במידה הנדרשת להבנת האופן שבו החלק הקדמי של המהדר מפיק ייצוג ביניים. בהמשך ישתמשו בכלי LLVM וב-LLVM IR כדי לבחון כיצד מהדרים מודרניים מתמירים ומריצים תוכניות.
במהלך הקורס יילמדו שיטות יסוד לפתרון בעיות אלגוריתמיות, ובהן הפרד ומשול ונוסחאות נסיגה (חזרה), אלגוריתמים חמדניים, תכנון ליניארי ותכנון דינמי. מחצית השניה של הקורס מוקדשת לתורת הגרפים, תוך הצגת גרפים כמודל אוניברסלי לייצוג בעיות ולפתרונן באמצעות כלים אלגוריתמיים. במסגרת זו יילמדו ייצוגים של גרפים, סגור טרנזיטיבי, מסלולי אוילר והמילטון, סריקות BFS ו־DFS, רכיבים קשירים היטב, גרף על ומיון טופולוגי. בהמשך יידונו אלגוריתמים למציאת מסלולים קצרים ביותר, ובהם מסלולים קצרים בגרף DAG, אלגוריתם דייקסטרה, אלגוריתם בלמן-פורד ואלגוריתם פלויד-וורשל. לבסוף, הקורס יעסוק בעצים פורשים מינימליים ובאלגוריתמים הקלאסיים של קרוסקל ופרים. לאורך הקורס יודגש הקשר בין ניסוח הבעיה, בחירת השיטה האלגוריתמית המתאימה, הוכחת נכונות הפתרון וניתוח יעילותו.
הקורס עוסק בנושאים מתקדמים בתכנון וניתוח אלגוריתמים. במהלך הקורס נלמד אלגוריתמים לזרימה ברשתות ושידוכים, התאמת מחרוזות באמצעות KMP, אלגוריתמים מקוונים ואלגוריתמי קירוב. בנוסף יילמדו נושאים מרכזיים בתורת הסיבוכיות, ובהם המחלקות P, NP, coNP ו-PSPACE, רדוקציות פולינומיות, משפט Cook ובעיות NP-שלמות.
מערכות ניהול בסיסי נתונים (DBMS = Database Management System) הם טכנולוגיית ליבה ביישומים עסקיים. הקורס נועד לתת לסטודנטים הבנה של התיאוריה והפרקטיקה של DBMS. נושאים מרכזיים כוללים: היכרות עם מערכות ניהול בסיסי נתונים, המודל הרלציוני, מודל ישויות/יחסים (Entity-Relationship Model),SQL, תכנון בסיס הנתונים, כתיבת טרנסאקציות, הרשאות, ושילוב בסיסי נתונים בתוך מערכות תוכנה. נושאים נוספים שהקורס נוגע בהם כוללים אבטחת בסיסי נתונים, ביזור בסיסי נתונים, ובסיסי נתונים שאינם רלציונים. נשתמש ב-PostgreSQL כדי לקבל ניסיון מעשי. נלמד גם שימוש נכון במערכות LLM לבניית בסיסי נתונים.
מימוש תשתית מרובת תהליכים; תכנות ריאקטיבי Reactive Programming; שימוש ב-Logger; ארכיטקטורת MVC; בדיקות יחידה, Mocking, בדיקות אינטגרציה; חיבור לבסיסי נתונים טבלאיים (Relational Databases) ובסיסי נתונים של NoSQL; פיתוח Client-Server; פיתוח Web-Services; יישום IoC תוך שימוש בתשתיות תוכנה מקובלות בתעשיה. הסטודנטיות והסטודנטים בקורס יתנסו בכתיבת פרויקט של מערכת עם מספר ממשקי משתמש שונים לאותה לוגיקה עסקית, באמצעות מבחר של יישומי קצה. הפרויקט ישלב מימושים בשפת Java לנושאים שנלמדו בקורסים קודמים בתכנית הלימודים: מערכות הפעלה, תקשורת ובסיסי נתונים, תוך שימוש ויישום עקרונות הנדסת תוכנה. יישום הפרויקט מחייב, בנוסף לחומר הנלמד בקורס, שליטה ומיומנות מלאים בנושאי הקורסים מבוא למדעי המחשב, תכנות מונחה עצמים ושיטות בהנדסת תוכנה. כמו כן לצורך היישום פרויקט בקורס, יהיה צורך בלמידה עצמאית של מחלקות ותשתיות תוכנה לפי הנחית סגל הקורס.
הקורס מחולק לשני חלקים. בחלק הראשון נלמד איך לתאר מערכות תגובתיות כמכונות מצבים (transition systems) ואיך לתאר תכונות בטיחות וחיות בעזרת נוסחאות בלוגיקה טמפורלית. נשתמש בכלי NuSMV כדי לבדוק באופן אוטומטי האם התכונות הרצויות מתקיימות. בחלק השני נלמד איך לתאר מערכות עתירות מידע בעזרת לוגיקה רלציונית ואיך לנסח תכונות מבניות (structural invariants) והתנהגותיות בעזרת הלוגיקה הרלציונית והכלי Alloy analyzer.
קורס זה עוסק ביחסי הגומלין שבין מידול בעיה ושפות תכנות. פתרון בעיות נסמך על שימוש במודלים טובים הממומשים בשפת תכנות המסוגלת לתמוך בהם. החומר הנלמד בקורס מהווה שילוב של תיאוריה ומעשה. כל העקרוות התאוריטים הנלמדים ממומשים בתוכנה, וכל התרגילים בקורס דורשים תכנות. הקורס משלב שתי גישות בלימוד עקרונות שפות תכנות: (1) שימוש בשפה אחת להדגמת כל מאפייני השפות הנלמדים בקורס (2) שימוש במספר שפות לייצוג אספקטים ופרדיגמות שונות. הגישה הראשונה תבוא לידי ביטוי בלימוד שפת Scheme – שפה זו מאפשרת, באמצעים פשוטים יחסית, לתמוך באלמנטים מורכבים כגון: העברת פרוצדורות כארגומנטים, יצירת פרוצדורות (גם חסרות שם) בזמן ריצה, מבנים אין-סופיים, ביצוע מניפולציות על הסביבה ועל ה-Call Stack , מימוש תכנות מונחה-עצמים ועוד. בשפה זו נבנה מפרש (interpreter) המקבל כקלט תוכנית וקלט לתכנית, ומחזיר כפלט את הערכים שהתוכנית מחשבת. נסקור גם שפות תכנות נוספות הממשות פרדיגמות תכנותיות שונות כגון Prolog המבטאת את הפרדיגמה הלוגית ו -Python בה ממומשים תכנות אימפרטיבי ועקרונות נוספים. מטלות הקורס יבוצעו בעיקר ב - Scheme (בסביבה Dr Racket)
בוגרות ובוגרי הקורס ירכשו במהלכו מיומנויות בתכנון מערכות תוכנה גדולות ומורכבות, כך שיהיה קל ליישם, לתחזק ולשדרג אותן, תחת אילוצי איכות ותקציב, ובהתאם לתשתיות החומרה והתוכנה הזמינות להם. הקורס מתבסס על הידע שנרכש בקורסי הקדם לקורס זה, באפיון מערכות תוכנה ומודלים מופשטים להגדרת הדרישות והפונקציונאליות שלהן. במהלך הקורס, נלמד להתאים את יישום מערכות תוכנה אלה, לטכנולוגיות והתשתיות שנחוצות להקמתן ושזמינות עבור מערכות תוכנה אלה, להגדיר את רכיבי התוכנה הנחוצים ליישומן, ואת הזיקה בין רכיבים אלה, כך שיישומי התוכנה, שיפותחו על בסיסם, יעמדו בדרישות של ביצועים, אמינות ותמיכה בתחזוקה עתידית של מערכות התוכנה. הקורס מלווה את תהליכי התיכון והעיצוב של ארכיטקטורות מערכות תוכנה, שלאחריהן, מיישמים את המודלים והארכיטקטורות שנבחרו ליישום מערכות תוכנה אלה.
מערכת הפעלה הינה תוכנה שמנהלת את משאבי החומרה במחשב. מערכת ההפעלה נותנת שירותים מקובלים לאפליקציות השונות. הקורס מציג את הנושאים המרכזיים של מערכות הפעלה מודרניות. בפרט: פסיקות, ניהול תהליכים (זימון, החלפת הקשר, תיאום, בעיית הקטע הקריטי), ניהול זיכרון (דפדוף, זיכרון וירטואלי) וניהול התקני זיכרון משני (מערכת הקבצים).
ארכיטקטורת מחשבים מקביליים, תיכון ותכנות מקבילי, MPI, JAVA multithreading, OpenMP ,CUDA, מחשוב מקבילי עם מעבד גראפי , אלגוריתמים מקביליים ויישומם.
הקורס מציג את תהליך הקומפילציה המלא, תוך מתן דגש מוגבר על ייצוגי ביניים, ניתוח, אופטימיזציה ויצירת קוד באמצעות LLVM. הסטודנטים ילמדו את עקרונות הניתוח הלקסיקלי, הניתוח התחבירי, הניתוח הסמנטי וסביבת זמן הריצה במידה הנדרשת להבנת האופן שבו החלק הקדמי של המהדר מפיק ייצוג ביניים. בהמשך ישתמשו בכלי LLVM וב-LLVM IR כדי לבחון כיצד מהדרים מודרניים מתמירים ומריצים תוכניות.
הקורס עוסק בפיתוח מערכות משובצות מחשב על בסיס המיקרו-בקר STM32L552ZE (Arm Cortex-M33), לוח NUCLEO-L552ZE-Q וערכת STM Kit החדשה של אפקה. העבודה תתבצע בסביבת STM32CubeIDE / CubeMX ובשפת C, תוך שימוש ב-HAL ובכלי Debug. במהלך הקורס יפותחו יישומים המשלבים GPIO, פסיקות, Timers, UART ו-CLI, DMA, LCD, ADC ו-IWDG. הדגש הוא על תכן מונחה-אירועים, מכונות מצבים, תזמון לא-חוסם (Non-blocking scheduling), Debouncing, הפרדה בין שכבת החומרה ללוגיקת היישום, אינטגרציה ובדיקות.
בקורס יוצגו עקרונות ושיטות לאבטחת איכות תוכנה, וכיצד בתהליך פיתוח התוכנה ניתן לשפר את איכות מוצר התוכנה. במהלך הקורס ייסקרו הפעילויות לשיפור איכות התוכנה דרך תכנון עיצוב ובצוע בדיקות, מעקב ובקרה, מדידה ושיפור של תהליכי פיתוח התוכנה ותחזוקתה, התקנים הנהוגים בתעשייה, שיטות עבודה הנהוגות בתעשייה, וכלים התומכים בפעילויות אלו. כממוצע "מטלות / תרגילים / שעורי בית" המשמש לשקלול הציון הסופי בקורס, ישמש הציון הממוצע של הבחנים שיתקיימו במהלך הרצאות ותרגול פרונטלי בקורס. כלומר, הציון המשוקלל של הקורס יחושב בין ציון המבחן לממוצע ציוני הבחנים. לתשומת לב הסטודנטים: שעורי בית / מטלות / תרגילים לפתרון בבית, לא יבדקו ולא יקבלו ציון כלשהו. מטרתם לסייע לסטודנטים בהפנמת ובהבנת החומר הנלמד.
הקורס עוסק בפיתוח מערכות משובצות מחשב על בסיס המיקרו-בקר STM32L552ZE (Arm Cortex-M33), לוח NUCLEO-L552ZE-Q וערכת STM Kit החדשה של אפקה. העבודה תתבצע בסביבת STM32CubeIDE / CubeMX ובשפת C, תוך שימוש ב-HAL ובכלי Debug. במהלך הקורס יפותחו יישומים המשלבים GPIO, פסיקות, Timers, UART ו-CLI, DMA, LCD, ADC ו-IWDG. הדגש הוא על תכן מונחה-אירועים, מכונות מצבים, תזמון לא-חוסם (Non-blocking scheduling), Debouncing, הפרדה בין שכבת החומרה ללוגיקת היישום, אינטגרציה ובדיקות.
בקורס יוצגו עקרונות ושיטות לאבטחת איכות תוכנה, וכיצד בתהליך פיתוח התוכנה ניתן לשפר את איכות מוצר התוכנה. במהלך הקורס ייסקרו הפעילויות לשיפור איכות התוכנה דרך תכנון עיצוב ובצוע בדיקות, מעקב ובקרה, מדידה ושיפור של תהליכי פיתוח התוכנה ותחזוקתה, התקנים הנהוגים בתעשייה, שיטות עבודה הנהוגות בתעשייה, וכלים התומכים בפעילויות אלו. כממוצע "מטלות / תרגילים / שעורי בית" המשמש לשקלול הציון הסופי בקורס, ישמש הציון הממוצע של הבחנים שיתקיימו במהלך הרצאות ותרגול פרונטלי בקורס. כלומר, הציון המשוקלל של הקורס יחושב בין ציון המבחן לממוצע ציוני הבחנים. לתשומת לב הסטודנטים: שעורי בית / מטלות / תרגילים לפתרון בבית, לא יבדקו ולא יקבלו ציון כלשהו. מטרתם לסייע לסטודנטים בהפנמת ובהבנת החומר הנלמד.

פרויקטי גמר נבחרים

ZOOM IN על הנדסת תוכנה

שאלות ותשובות על תואר ראשון בהנדסת תוכנה

הלימודים אורכים בין 4-5 שנים בהתאם למסלול בו בוחר הסטודנט ללמוד.

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

לקריאה על שני המסלולים לחץ כאן

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

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

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

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

השכר ההתחלתי גבוה יחסית לשוק, אך משתנה בהתאם לניסיון, התמחות וסוג החברה.

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

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

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

בוגרות ובוגרי התואר יכולים להשתלב במגוון רחב של תפקידים, ובהם פיתוח תוכנהFull Stack,   פיתוח Web ומובייל,DevOps , מחשוב ענן, אבטחת מידע וסייבר, בינה מלאכותית (AI)  למידת מכונה (Machine Learning), ראייה ממוחשבת, פיתוח מערכותEmbedded, ארכיטקטורת תוכנה, מחקר ופיתוח וניהול טכנולוגי. השילוב בין ידע הנדסי רחב, ניסיון מעשי וחיבור לתעשייה מאפשר לבוגרות ולבוגרים להשתלב במגוון רחב של חברות הייטק וארגונים טכנולוגיים.

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

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

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

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

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

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

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

כן, ניתן להמשיך לתואר שני בתחומים כמו מדעי המחשב, הנדסת תוכנה, מערכות מידע ובינה מלאכותית.

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

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

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

סגל אקדמי

ד"ר דוד פייטלסון

מילה מראש בית הספר להנדסת תוכנה:

דוד פיטלסון

ד"ר דוד פייטלסון

מילה מראש בית הספר להנדסת תוכנה:

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

לכל חברות וחברי הסגל

צרו קשר

לשכת הנהלה אקדמית

טלפון: 03-7688691/744
פקס: 03-7688692
דוא"ל: AcademicHeadsBox@afeka.ac.il

מחלקת ייעוץ לימודים 

ימים א'-ה': 09:00-19:00 | יום ו': 09:00-13:00
חייגו: 1-800-37-37-10 (שלוחה 1)
פקס: 03-7688679
מייל להרשמה: mirsham@afeka.ac.il