תוכן הקורס ומטרתו
בקורס מבואי זה יוצגו מושגי יסוד במדעי המחשב, לצד מושגים בתכנות ובשפות תכנות. השפה בה נשתמש תהיה פייתון, גרסה 3, והיא תהווה פלטפורמה להצגה וטיפול במגוון נושאים בעלי עניין כללי במדעי המחשב.
לקורס 3 מטרות:
1. חשיפה ראשונית לצורת המחשבה, לשפה ול"תרבות" במדעי המחשב (חשיבה חישובית ואלגוריתמית)
2. עיצוב תפישה רחבה ומאוזנת של מהות התחום של מדעי המחשב, באמצעות חשיפה לבעיות ולתת-תחומים מגוונים
3. רכישת מיומנות בתכנות בשפת התכנות פייתון
נושאים ממדעי המחשב אליהם נחשף בקורס: השיטה הבינארית וייצוג מספרים, תווים ומחרוזות; מיון וחיפוש; סיבוכיות של אלגוריתמים; רקורסיה; מבוא למבני נתונים: רשימות מקושרות, עצי חיפוש, טבלאות ערבול (hash tables); ייצוג ועיבוד תמונה בסיסי; קודים לתיקון שגיאות; דחיסת טקסט; חישובים נומריים ויציבותם; פעולות על מספרים גדולים מאוד ושימושיהן בתורת המספרים (בדיקת ראשוניות) ובתורת ההצפנות (יצירת מפתח סודי משותף); תכנות מונחה עצמים; ייצוג עצמים אינסופיים במחשב (איטרטורים), ועוד.
בחלק מהנושאים נציג מספר גישות לפתרון הבעיה, ונשווה ביניהן. יינתן דגש על נכונות הפתרונות, ועל הסיבוכיות שלהם - הן סיבוכיות אסימפטוטית, והן זמן ריצה בפועל.
הקורס שם דגש על חשיפה למגוון תחומים במדעי המחשב, ועל כן אינו קורס תכנות "טהור". יחד עם זאת, המטלות בו יכללו כתיבת תכניות מחשב בהיקף משמעותי.
לסילבוס המפורט