רשימת הקורסים: תואר ראשון ושני

נקה
  • תכנות מודולארי

    מדעי המחשב | שנה א’ | חובה
    קוד הקורס: 10204021
    דרישות קדם: מבוא למדעי המחשב
    סמסטר ב' , שנה א’
    נקודות זכות: 5

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

    הנושאים הנלמדים: טיפול בקבצים חיצוניים (פתיחה\סגירה לקריאה\כתיבה, מצביעי get/put, קריאה וכתיבה על-גבי אותו קובץ בו זמנית). הקצאה דינאמית של מערכים (כולל: הגדרה, הקצאת זיכרון דינמית, שחרור זיכרון,  אריתמטיקה של מצביעים, ההבדלים בין זיכרון סטטי לדינמי, העברה/החזרה של מצביעים מפונקציות, מצביע למצביע) מבנים. רשימות מקושרות (כולל מיון מיזוג של רשימות, טיפול ברשימות באמצעות מצביע למצביע). עצים בינאריים (בעיקר עצי חיפוש בינאריים, כולל הכנסה, חיפוש, מחיקה, ואלגוריתמים שונים על עצים). מצביעים לפונקציות (וכתיבת callback functions). מצביעים גנריים (void *) ושימושיהם לכתיבת תכניות פולימורפיות בשפת C (גם בעזרת מצביעים לפונקציות). חלוקת תוכנית לקבצים, הצהרה לעומת הגדרה, הנחיות מהדר (preprocessor), ושימוש ב- makefile. תהליך ההידור והכריכה (compilation and linking) ב- C. מרחבי שמות. טיפול בחריגות. נושאים שונים: מחרוזות ב- C++, inline functions, function overloading, assert, sizeof, typedef ספריות: ספריות סטנדרטיות של C, בנייה והוספה, ספריה סטאטית ודינמית. שימוש בספריה. שיטות לבדיקת תוכנה (כדוגמת valgrind). scanf/printf, argc/argv. פונקציות תבניתיות (template functions). כלי תכנות ב- Linux, כולל מנפים (debuggers).