Extended Introduction to Computer Science CS1001.py Lecture 26: Summary; The exam Instructors: Daniel Deutch, Amir Rubinstein Teaching Assistants: Michal Kleinbort, Noam Parzanchevski, Ben Bogin School of Computer Science Tel-Aviv University Winter Semester 2019-20 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 4 Math Hedva 1+2 Algebra 1+2 Descrete math Probability and Statistics Theory oriented courses Data structures Algorithms Computational models Complexity Logic Programming / systems oriented courses Software 1 Software project Computers structure Operating systems Compilation Electives (partial list) ML (machine learning) Advanced data structures/algorithms CS theory NLP (natural language processing) Computational geometry Machine vision Game theory Networks Databases Cryptography Computational biology
אז מה זה "מדעי המחשב"? מדעי המחשב מחשבים 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