סדר השיעורים
1. מבוא, שפת התכנות פייתון
2. משפטי תנאי ולולאות
3. רשימות ומחרוזות
4. פונקציות, תכנון מודולרי
7-5. אלגוריתמים בסיסיים: חיפוש, מיון, מיזוג ומושג הסיבוכיות
8. חישוביות: בעיות בלתי כריעות ובעיית העצירה, מכונת טיורינג
9. סיבוכיות והמחלקות NP/NPC (דוגמאות נפוצות כגון: פירוק לגורמים, לוג דיסקרטי, הסוכן הנוסע, איזומורפיזם בגרפים וכו')
11-10. מבוא לקריפטוגרפיה: צפני החלפה ותדירויות אותיות בשפה טבעית, פרוטוקול דיפי-הלמן, בדיקת ראשוניות הסתברותית, RSA
13-12. עיבוד תמונה דיגיטלית: ניקוי רעש, סגמנטציה.
רשימת קריאה
- Python 3 documentation, http://docs.python.org/py3k/, is the official language manual, and a very useful resource.
- Think Python, by Allen B. Downey, which is available online.
- A book by John Zelle, ׂPython programming: an introduction to computer science׃, second edition. Fraklin, Beedle & Associates.
- אלגוריתמיקה, דוד הראל, הוצאת האוניברסיטה הפתוחה
Computers and computer communication have experienced a revolution in the last 30 years. Following this technological revolution, computers are widely used in most modern societies, and in fact society itself has been changed in many nontechnological Most users of computers and powerful processors (e.g. in smart phones) are not aware at all of what happens "under the hood".
In this course, we will introduce some of the elegant concepts and ideas underlying Computer Science. We will demonstrate course topics using a modern programming language called Python.
Course topics:
-
Python programming language: variables, conditionals and loops, lists and strings,
-
Basic algorithms (e.g. search, sort, merge) and the notion of complexity
-
Introduction to cryptography: substitution ciphers and distribution of letters in natural languages, the Diffie-Hellman protocol.
-
Intractability and the P vs. NP open problem
-
Undecidability and the halting problem
-
Error detection and correction codes: repetition and parity bit
-
Digital images: synthetic images, basic image processing
-
Basic notions in graph theory
-
Recursive algorithms