| |||||||||||||||||||||||||
![]() |
![]() |
||||||||||||||||||||||||
מבוא מורחב למדעי המחשב
Extended Introduction to Computer Science |
0368-1105-04 | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
מדעים מדויקים | |||||||||||||||||||||||||
|
בקורס מבואי זה יוצגו מושגי יסוד במדעי המחשב, לצד מושגים בתכנות ובשפות תכנות. השפה בה נשתמש תהיה פייתון, גרסא 3, והיא תהווה פלטפורמה להצגה וטיפול במגוון נושאים בעלי עניין כללי במדעי המחשב.
נושאים לדוגמא: מיון וחיפוש; מבוא למבני נתונים; טבלאות ערבול (hash tables); ייצוג תווים ומחרוזות, התאמת מחרוזות; ייצוג ועיבוד תמונה; קודים לתיקון טעויות; דחיסת טקסט; חישובים נומריים ויציבותם; פעולות על מספרים גדולים מאוד ושימושיהן בתורת המספרים (בדיקת ראשוניות) ובתורת ההצפנות (יצירת מפתח סודי משותף); תכנות מונחה עצמים; רקורסיה; מושגים בתכנות פונקציונלי, ייצוג עצמים אינסופיים במחשב, ועוד.
בחלק מהנושאים נציג ונשווה בין מספר גישות לפתרון הבעיה. יינתן דגש על נכונות הפתרונות, ועל הסיבוכיות שלהם, הן סיבוכיות אסימפטוטית והן זמן ריצה בפועל.
הקורס שם דגש על חשיפה למגוון תחומים במדעי המחשב, ועל כן אינו קורס "טהור" בתכנות, אך המטלות בו יכללו כתיבת תכניות מחשב בהיקף משמעותי.
This introductory course presents fundamental concepts of computer science, along with foundations of programming and programming languages. The language used is python, version 3, which will serve as the platform for presenting a variety of topics of general interest in computer science.
Sample topics: Sorting and searching; introduction to data structures; hash tables; representation of characters and strings, string matching; image representation and processing; error correcting codes; text compression; numerical computations and their stability; operations on very large numbers and their applications in number theory (primality testing) and in cryptography (generating a joint secret key); object oriented programming; recursion; concepts in functional programming, representation of infinite object; etc.
Several approaches for representing each problem and its input, and for finding a solution, will be presented. The emphasis will be on structured solutions, their correctness and their complexity, both asymptotic and actual run time.
The main goal of the course is to expose students to a variety of areas in computer science, hence it is not a "pure" programming course. However, homework assignments will include writing a significant volume of computer programs