Extended Introduction to Computer Science CS1001.py Lecture 25: Summary; The exam Instructors: Jonathan Berant, Amir Rubinstein Teaching Assistants: Michal Kleinbort, Noam Parzanchevski, Ben Bogin School of Computer Science Tel-Aviv University Spring Semester 2018-9 http://tau-cs1001-py.wikidot.com
נושאי הקורס )לא בדיוק לפי הסדר וייתכנו שינויים( 1) Basics and infrastructure Programming in Python: Types, functions, conditionals, loops, the memory model The binary system and Natural number representation Basic algorithms on sequences: binary search, selection sort, merging sorted lists Complexity and the O notation High order functions and lambda expressions Randomness 2) Numerical computations and floating point numbers Floating point representation for real numbers Numerical derivatives and integrals Newton-Raphson method for finding roots of real functions 2 3) Number theory related problems Integer exponentiation using iterated squaring Primality testing using Fermat s little theorem Diffie-Hellman key exchange Integer greatest common divisor (GCD)
נושאי הקורס )לא בדיוק לפי הסדר וייתכנו שינויים( 4) Recursion Quicksort, mergesort, Fibonacci, munch!, Memoization 5) Data structures and object oriented programming (OOP) Classes, fields and methods Linked lists, trees, hash tables Iterators (finite and infinite) 6) Text related topics ASCII and Unicode representation of characters String matching: Karp-Rabin's algorithm Compression Huffman and Lempel-Ziv 3 7) Miscellaneous topics Error detection and correction codes Image representation and processing The Halting problem
Beyond Intro to CS Theory oriented courses Hedva 1+2 Algebra 1+2 Descrete math Data Structures Algorithms Computational Models Probability and Statistics Complexity Logic Programming / systems oriented courses Software 1 Software Project Computers Structure Operating Systems Compilation 4
אז מה זה "מדעי המחשב"? מדעי המחשב מחשבים Computer Science is no more about computers than astronomy is about telescopes. E. W. Dijkstra (1930-2002) מדעי המחשב הוא תחום שעניינו ההיבטים השונים של מושג שנקרא חישוב. אז מה זה חישוב? 5
אז מה זה "חישוב" חישוב.computing בעברית קיימת מילה אחת עבור שתי המילים.computing calculating calculation מתייחס בד"כ לפעולות חשבוניות המשמעות של computing היא רחבה יותר, )חיבור, כפל(. לא רק 3+7*2... דוגמאות לחישובים: ספירת תאים בתמונה ביולוגית חישובים מתמטיים חיפוש טקסט מציאת מסלול קצר בין שתי נקודות )waze( מיון נתונים הגדרה פורמלית תינתן בקורס מודלים חישוביים.)Computer Science בחלק מהאוניברסיטאות בעולם, התחום נקרא Computing Science )ולא 6
המבחן החומר המחייב למבחן הוא כל מה שנלמד, בהרצאות, תרגולים ותרגילי הבית, בשקפים כ- " only ", for reference או שקפים שנאמר עליהם שאינם בחומר. למעט הנושאים המסומנים יש צורך להכיר את הפעולות העיקריות על מבני הנתונים הבסיסיים המובנים של פייתון )כגון רשימות, מילונים(, ולהיות מסוגלים לכתוב קוד שמשתמש בהן, אבל אין צורך לשנן פרטים נידחים )כגון פקודה שהשתמשנו בה רק פעם או פעמיים(. המבחן יכלול שאלות חצי סגורות )בחירה מרובה ו/או תשובה קצרה(, ושאלות פתוחות, או שילוב. נושאי השאלות יכולים להתייחס לפעולה של אלגוריתם מסוים שנלמד או שינוי שלו, קטעי קוד, מציאת שגיאות בתוכניות ותיקונן, ניתוח סיבוכיות וכד'. כתיבה או השלמה של בשאלות שבהן יידרש לכתוב קוד, משמעות התכנית(. לא תהיה הקפדה על טעויות תחביר קלות )בתנאי שאינן משנות את אנו ממליצים בחום לכתוב תחילה פתרון על דפי הטיוטא ורק לאחר מכן להעתיק אותו לטופס המבחן באופן מסודר. תשובות לא מסודרות עלולות לאבד נקודות המבחן ללא חומר, פרט ל 2 דפים דו צדדיים 4 של הדפים מומלצת כחלק מהלמידה למבחן )או עמודים( כתובים בכתב יד או מודפסים. הכנה עצמאית 7
איך להתכונן להתמקד ברעיונות ובעקרונות לא נצפה שתזכרו כל פרט שולי מהקורס אבל בהחלט כן שתזכרו פרטים משמעותיים ומרכזיים )"תוכל להזכיר כמה זמן עולה לגשת לאיבר במילון?" לא...(. כמו כן אנחנו מצפים שתבינו באופן מעמיק את פרטי האלגוריתמים שלמדנו 8
מהלך הבחינה אנחנו מקצים מקום לרישום התשובות בטופס הבחינה עצמו מחברות שיחולקו ישמשו לטיוטה בלבד ולא ייבדקו השתמשו במחברת הטיוטה כאשר אתם מתחילים לפתור שאלה. רק לאחר שהפתרון שלכם יציב העתיקו אותו במסודר למחברת. פתרונות מבולגנים ובלתי קריאים לא ייבדקו והציון עליהם יהיה בהתאם. היו ברורים ומדוייקים ככל שתוכלו בתשובות שלכם תכננו את הזמן 9
תודות למתרגלים הנהדרים שלנו: מיכל, כימים בקורס נעם ובן, שהשקיעו לילות לבודקי התרגילים: יוסי, עדי ורז שעמלו )ועדיין( איכותי ומשמעותי, בזמן קצר ככל שניתן לספק משוב למרצה המייסד והיוצר של הקורס, פרופ' המייסד שלו, דר' רני הוד בני שור, ולמתרגל לכם, על התרומה לדיונים בכיתה, והסקרנות 10