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

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

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

קרא עוד

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

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

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

המספרים הממשיים. פונקציות. סדרות. גבול של סדרה. גבולות ורציפות. משפט ערכי הביניים ומשפט Weierstrass . הנגזרת וחשבון נגזרות. משפט Fermat, משפט Rolle, משפט Lagrange, כלל l'Hopital. שימושים: עליה וירידה, קודות קיצון, קמירות, קעירות ונקודת פיתול. נוסחת Taylor עם שארית Lagrange. חקירת פונקציות. אינטגרל לא מסוים ואינטגרל מסוים ׁׁ(אינטגרל Riemann). המשפט היסודי של החשבון האינטגרלי ונוסחת Newton-Leibniz. שיטות אינטגרציה. אינטגרל לא אמיתי, קריטריוני השוואה.
לוגיקה - מושגים בסיסיים, תחשיב הפסוקים. תורת הקבוצות - מושג הקבוצה, יחסים, יחסי שקילות, יחסי סדר חלקיים, אינדוקציה מתמטית, פונקציות, עוצמות. קומבינטוריקה: קומבינטוריקה בסיסית, בינום ניוטון, עקרון ההכלה וההפרדה, עקרון שובך היונים, רקורסיה, פונקציות יוצרות. גרפים: מושגים יסודיים, משפט אויילר.
בקורס הסטודנטים ילמדו את יסודות התכנות המונחה עצמים: מחלקות ואובייקטים, קונסטרקטורים ירושה, פולימורפיזם וממשקים. כמו כן ילמדו על מנגנון ה- generics ועל שימוש ב- collections ב- JAVA. הסטודנטים ילמדו לתכנן מערכת והצגת באמצעות diagram class.
הקורס מציג את המושגים הבסיסים של ארגון המחשב ברמות ההפשטה השונות. במבוא נעסוק בהערכת ביצועי המעבד, ייצוג מספרים במחשב, יסודות האלגברה הבולאנית, וביישום של מעגלים לוגיים. נלמד את עקרונות התכנון של שפת האסמבלי של מעבד פשוט. נדגים עקרונות אלו בלימוד שפת האסמבלי של מעבד MIPS ונכיר מנגנוני תכנות בסיסיים. בהמשך נבנה את היחידות הבסיסיות בלוגיקה צירופית וסדרתית המרכיבות את מעבד זה. נציג את מימוש המעבד באופן עבודה חד מחזורי רב מחזורי וצנרת. נלמד לבצע שיפור ביצועים במימושים השונים. נכיר גם את מנגנון הפסיקה ועקרונות ניהול הזיכרון במחשב.
טורים. טורי חזקות. פונקציות של מס' משתנים. גבולות ורציפות. נגזרת חלקית ומכוונת. קירובים ליניאריים. גרדיאנט. כלל השרשרת. נגזרות חלקיות מסדר שני, קירוב ריבועי ופולינום Taylor של פונקציות של מס' משתנים. נקודות קיצון מקומיים/מוחלטים. כופלי Lagrange. אינטגרלים מרובים. משפט Fubini. החלפת משתנים ויעקוביאן (Jacobi). אינטגרלים קווים ומשטחיים. אי-תלות אינטגרל קווי במסילה ומשפט Green. משפט Gauss-Ostrogradski ומשפט Stokes.
שפת תחשיב הפסוקים: תחביר וסמנטיקה , שקילות לוגית וגרירה לוגית. תורת ההיסק של תחשיב הפסוקים מערכת לוקשביץ, משפט הדדוקציה, נאותות ושלמות של מערכת ההיסק. מערכות נוספות. שפת תחשיב הפרדיקטים: תחביר פורמלי. שמות עצם ותבניות. סמנטיקה בסיסית: מבנים והשמות תבניות אמיתיות במבנה והשמה. תבניות אמיתיות לוגית. תורת ההיסק מסדר ראשון: אקסיומות, כללי היסק, הוכחות. משפט הנאותות, משפט הדדוקציה ומשפטי השלמות והקומפקטיות. משפטי אי השלמות של Godel. אימות תוכנה.
בקורס ילמדו הנושאים הבאים: קלט ופלט, ביטויים אריתמטיים ולוגיים משפטי תנאי, לולאות, פונקציות, רשימות, מילונים, מיונים וחיפושים ורקורסיות. הנושאים ילמדו תוך יישומם בשפת פייתון שתלמד במהלך הקורס.
התעשייה עתירת הידע חושפת את עובדיה ללא מעט אתגרים מוסרים והתלבטויות אתיות : האם לגיטמי לעבוד בחברה ללא קוד מוסרי מה לגבי חברות שיוצאות נגד ישראל באופן מבוהק ? האם מוסרי לעבוד בחברה שעוסקת בהימורים ומה אריסטו וקאנט יגידו על כול זה ? בכול שיעור יוצגו דילמות מחיי היום יום בתעשייה בלימודים ובכלל, חלק מהדוגמאות קשות לשמיעה ומכילות טריגרים לגזענות שובינזים החפצה ניצול רצח ועוד
המספרים הממשיים. פונקציות. סדרות. גבול של סדרה. גבולות ורציפות. משפט ערכי הביניים ומשפט Weierstrass . הנגזרת וחשבון נגזרות. משפט Fermat, משפט Rolle, משפט Lagrange, כלל l'Hopital. שימושים: עליה וירידה, קודות קיצון, קמירות, קעירות ונקודת פיתול. נוסחת Taylor עם שארית Lagrange. חקירת פונקציות. אינטגרל לא מסוים ואינטגרל מסוים ׁׁ(אינטגרל Riemann). המשפט היסודי של החשבון האינטגרלי ונוסחת Newton-Leibniz. שיטות אינטגרציה. אינטגרל לא אמיתי, קריטריוני השוואה.
טורים. טורי חזקות. פונקציות של מס' משתנים. גבולות ורציפות. נגזרת חלקית ומכוונת. קירובים ליניאריים. גרדיאנט. כלל השרשרת. נגזרות חלקיות מסדר שני, קירוב ריבועי ופולינום Taylor של פונקציות של מס' משתנים. נקודות קיצון מקומיים/מוחלטים. כופלי Lagrange. אינטגרלים מרובים. משפט Fubini. החלפת משתנים ויעקוביאן (Jacobi). אינטגרלים קווים ומשטחיים. אי-תלות אינטגרל קווי במסילה ומשפט Green. משפט Gauss-Ostrogradski ומשפט Stokes.
שפת תחשיב הפסוקים: תחביר וסמנטיקה , שקילות לוגית וגרירה לוגית. תורת ההיסק של תחשיב הפסוקים מערכת לוקשביץ, משפט הדדוקציה, נאותות ושלמות של מערכת ההיסק. מערכות נוספות. שפת תחשיב הפרדיקטים: תחביר פורמלי. שמות עצם ותבניות. סמנטיקה בסיסית: מבנים והשמות תבניות אמיתיות במבנה והשמה. תבניות אמיתיות לוגית. תורת ההיסק מסדר ראשון: אקסיומות, כללי היסק, הוכחות. משפט הנאותות, משפט הדדוקציה ומשפטי השלמות והקומפקטיות. משפטי אי השלמות של Godel. אימות תוכנה.
לוגיקה - מושגים בסיסיים, תחשיב הפסוקים. תורת הקבוצות - מושג הקבוצה, יחסים, יחסי שקילות, יחסי סדר חלקיים, אינדוקציה מתמטית, פונקציות, עוצמות. קומבינטוריקה: קומבינטוריקה בסיסית, בינום ניוטון, עקרון ההכלה וההפרדה, עקרון שובך היונים, רקורסיה, פונקציות יוצרות. גרפים: מושגים יסודיים, משפט אויילר.
בקורס ילמדו הנושאים הבאים: קלט ופלט, ביטויים אריתמטיים ולוגיים משפטי תנאי, לולאות, פונקציות, רשימות, מילונים, מיונים וחיפושים ורקורסיות. הנושאים ילמדו תוך יישומם בשפת פייתון שתלמד במהלך הקורס.
בקורס הסטודנטים ילמדו את יסודות התכנות המונחה עצמים: מחלקות ואובייקטים, קונסטרקטורים ירושה, פולימורפיזם וממשקים. כמו כן ילמדו על מנגנון ה- generics ועל שימוש ב- collections ב- JAVA. הסטודנטים ילמדו לתכנן מערכת והצגת באמצעות diagram class.
הקורס מציג את המושגים הבסיסים של ארגון המחשב ברמות ההפשטה השונות. במבוא נעסוק בהערכת ביצועי המעבד, ייצוג מספרים במחשב, יסודות האלגברה הבולאנית, וביישום של מעגלים לוגיים. נלמד את עקרונות התכנון של שפת האסמבלי של מעבד פשוט. נדגים עקרונות אלו בלימוד שפת האסמבלי של מעבד MIPS ונכיר מנגנוני תכנות בסיסיים. בהמשך נבנה את היחידות הבסיסיות בלוגיקה צירופית וסדרתית המרכיבות את מעבד זה. נציג את מימוש המעבד באופן עבודה חד מחזורי רב מחזורי וצנרת. נלמד לבצע שיפור ביצועים במימושים השונים. נכיר גם את מנגנון הפסיקה ועקרונות ניהול הזיכרון במחשב.
התעשייה עתירת הידע חושפת את עובדיה ללא מעט אתגרים מוסרים והתלבטויות אתיות : האם לגיטמי לעבוד בחברה ללא קוד מוסרי מה לגבי חברות שיוצאות נגד ישראל באופן מבוהק ? האם מוסרי לעבוד בחברה שעוסקת בהימורים ומה אריסטו וקאנט יגידו על כול זה ? בכול שיעור יוצגו דילמות מחיי היום יום בתעשייה בלימודים ובכלל, חלק מהדוגמאות קשות לשמיעה ומכילות טריגרים לגזענות שובינזים החפצה ניצול רצח ועוד
מושגים בסיסיים בהסתברות: מרחב מדגם ומשפטים בסיסיים, חישובים קומבינטוריים, הסתברויות מותנות ואי תלות, משתנים מקריים בדידים ורציפים, תוחלת ושונות של משתנה מקרי, משתנים בעלי התפלגויות מיוחדות, משתנים רב ממדיים ומשפט הגבול המרכזי. מושגים בסיסיים בסטטיסטיקה: בעיות עמידה ובדיקת השערות במודלים הסתברותיים בדידים ורציפים.
במהלך הקורס נלמד על עקרונות בבניית רשתות תקשורת מחשבים, ועל המנגנונים השונים המופעלים ברשתות אלה. הדגש בקורס יהיה על רשת האינטרנט, כולל המבנה הפיזי והמבנה הלוגי שלה. כמו כן נכלול יסודות של בניית יישומים רשתיים מעליה. הקורס מנוהל בגישת "מלמעלה למטה" כלומר מפרוטוקולי היישום עד הפרוטוקולים של השכבות הנמוכות. גישה שהכניסו ללימודי התקשורת 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, OpenMP ,CUDA, מחשוב מקבילי עם מעבד גראפי , אלגוריתמים מקביליים ויישומם.
חומר הקורס כולל: זרימה ברשתות ושימושים בה; התאמת מחרוזות; אלגוריתמי קירוב; מחלקות סיבוכיות וסיווג בעיות לפי השתייכות למחלקות האלו.
מימוש תשתית מרובת תהליכים; תכנות ריאקטיבי 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)
מערכת הפעלה הינה תוכנה שמנהלת את משאבי החומרה במחשב. מערכת ההפעלה נותנת שירותים מקובלים לאפליקציות השונות. הקורס מציג את הנושאים המרכזיים של מערכות הפעלה מודרניות. בפרט: פסיקות, ניהול תהליכים (זימון, החלפת הקשר, תיאום, בעיית הקטע הקריטי), ניהול זיכרון (דפדוף, זיכרון וירטואלי) וניהול התקני זיכרון משני (מערכת הקבצים).
ניתוח לקסיקלי, יצור אוטומטי של מנתחים לקסיקליים ניתוח תחבירי מלמעלה למטה: predictive parsing ו- recursive descent ניתוח תחבירי מלמטה למעלה: shift reduce parsing תרגומים מונחי תחביר (syntax directed definitions) bison: כלי ליצור אוטומטי של מנתחים תחביריים סביבת זמן ריצה, יצור קוד ביניים עבור משפטי השמה, ביטויים ומבני בקרה בסיסיים linker, אופטימיזציות בסיסיות LLVM ונושאים נוספים ככל שיותיר הזמן
תקציר נושאי הקורס: מבוא לתכנון לינארי. סימפלכס , בעיה פרימלית ודואלית. בעיית התובלה ובעיית ההשמה. תכנות דינאמי .טיפוס נתונים גרף, ייצוגים שונים של גרפים. ואלגוריתמים בסיסיים עליהם. אלגוריתמים למציאת סגור טרנזיטיבי: באמצעות כפל מטריצות ולפי האלגוריתם של וורשל. מסלולי אוילר והמילטון. חיפוש לרוחב - BFS, חיפוש לעומק - DFS. רכיבים קשירים היטב(רק"חים) וגרף על . מיון טופולוגי , מסלולים קריטיים, מסלולים קצרים בגרף – DAG. מסלולים קצרים ביותר ממקור יחיד – מסלולים קצרים ביותר. האלגוריתמים של דייקסטרה ושל בלמן-פורד. מסלולים קצרים ביותר בין כל הזוגות. האלגוריתם: פלויד-וורשאל. אלגוריתמים חמדניים קידוד ועצי הופמן. עץ פורש מינימלי – "הצמחת" עץ פורש מינימלי, האלגוריתמים של קרוסקל ושל פרים. מסלולי אוילר והמילטון.
חומר הקורס כולל: זרימה ברשתות ושימושים בה; התאמת מחרוזות; אלגוריתמי קירוב; מחלקות סיבוכיות וסיווג בעיות לפי השתייכות למחלקות האלו.
מערכות ניהול בסיסי נתונים (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, OpenMP ,CUDA, מחשוב מקבילי עם מעבד גראפי , אלגוריתמים מקביליים ויישומם.
ניתוח לקסיקלי, יצור אוטומטי של מנתחים לקסיקליים ניתוח תחבירי מלמעלה למטה: predictive parsing ו- recursive descent ניתוח תחבירי מלמטה למעלה: shift reduce parsing תרגומים מונחי תחביר (syntax directed definitions) bison: כלי ליצור אוטומטי של מנתחים תחביריים סביבת זמן ריצה, יצור קוד ביניים עבור משפטי השמה, ביטויים ומבני בקרה בסיסיים linker, אופטימיזציות בסיסיות LLVM ונושאים נוספים ככל שיותיר הזמן
בקורס נכיר ונפתח יישומים בתחום הדיגיטאלי במערכת אלקטרונית הניתנות לתיכון: במהלך הקורס נתבסס על מחשבים בטכנולוגיה RISC(Reduced Instruction Set Computer) וזאת בניגוד לתפיסה של יצרני המחשבים של בנית מעבדים מסובכים ומורכבים עם אוצר פקודות רב ומורכב מאד. נתבסס על ארכיטקטורה פון נוימן וארכיטקטורה מחשבי PIC כולל מבנה הזיכרון, ומבנה כללי של הפריפריה ,שפות המחשב בקורס הינם אסמבלר של המכונה וסט הפקודות ושפת C. נדון גם בכמה נושאים בפיתוח ארכיטקטורה כרטיס המעבדה כולל DAC,LCD,GLCD ופריפריות פנימיות WDT + TIMER, A/D, Interrupt, CCP , Usart Micro peripherals Non volatile memory ומימוש לאפליקציות מעשיות.
בקורס יוצגו עקרונות ושיטות לאבטחת איכות תוכנה, וכיצד בתהליך פיתוח התוכנה ניתן לשפר את איכות מוצר התוכנה. במהלך הקורס ייסקרו הפעילויות לשיפור איכות התוכנה דרך תכנון עיצוב ובצוע בדיקות, מעקב ובקרה, מדידה ושיפור של תהליכי פיתוח התוכנה ותחזוקתה, התקנים הנהוגים בתעשייה, שיטות העבודה הנהוגות בתעשייה, והכלים התומכים בפעילויות אלו.
בקורס נכיר ונפתח יישומים בתחום הדיגיטאלי במערכת אלקטרונית הניתנות לתיכון: במהלך הקורס נתבסס על מחשבים בטכנולוגיה RISC(Reduced Instruction Set Computer) וזאת בניגוד לתפיסה של יצרני המחשבים של בנית מעבדים מסובכים ומורכבים עם אוצר פקודות רב ומורכב מאד. נתבסס על ארכיטקטורה פון נוימן וארכיטקטורה מחשבי PIC כולל מבנה הזיכרון, ומבנה כללי של הפריפריה ,שפות המחשב בקורס הינם אסמבלר של המכונה וסט הפקודות ושפת C. נדון גם בכמה נושאים בפיתוח ארכיטקטורה כרטיס המעבדה כולל DAC,LCD,GLCD ופריפריות פנימיות WDT + TIMER, A/D, Interrupt, CCP , Usart Micro peripherals Non volatile memory ומימוש לאפליקציות מעשיות.
בקורס יוצגו עקרונות ושיטות לאבטחת איכות תוכנה, וכיצד בתהליך פיתוח התוכנה ניתן לשפר את איכות מוצר התוכנה. במהלך הקורס ייסקרו הפעילויות לשיפור איכות התוכנה דרך תכנון עיצוב ובצוע בדיקות, מעקב ובקרה, מדידה ושיפור של תהליכי פיתוח התוכנה ותחזוקתה, התקנים הנהוגים בתעשייה, שיטות העבודה הנהוגות בתעשייה, והכלים התומכים בפעילויות אלו.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

סגל אקדמי

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

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

דוד פיטלסון

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

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

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

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

צרו קשר

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

טלפון: 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