מבוא כללי לתכנות - הפקולטה למדעים מדויקים (1111.1111)


על הקורס:

מטרת הקורס להקנות כלי תכנות בסיסיים וחלונות ידע בסיסיים למדעי המחשב כדי לאפשר לסטודנטים להבין מהם אלגוריתמים, ומהם מושגים בסיסיים כמו סיבוכיות. תילמד שפת "פייתון", יוסבר נושא הסיבוכיות תוך מתן דגש על התנסות (הרצת אלגוריתמים בעלי סיבוכיות שונה על פלטים גדלים והולכים), ונושא הדחיסה.

 

הקורס מיועד רק למי שלא למד בעבר קורס תכנות במסגרת אחרת. תלמיד שלמד בעבר קורס תכנות, יפנה לוועדת ההוראה אשר תחליט האם להעניק לו פטור מהקורס. במקרה זה, התלמיד ילמד קורס בחירה נוסף מבין קורסי הסייבר.

 

 

סדר השיעורים

 

1. מבוא, שפת התכנות פייתון

2. משפטי תנאי ולולאות

3. רשימות ומחרוזות

4. פונקציות, תכנון מודולרי

7-5. אלגוריתמים בסיסיים: חיפוש, מיון, מיזוג ומושג הסיבוכיות

8. חישוביות: בעיות בלתי כריעות ובעיית העצירה, מכונת טיורינג

9. סיבוכיות והמחלקות NP/NPC (דוגמאות נפוצות כגון: פירוק לגורמים, לוג דיסקרטי, הסוכן הנוסע, איזומורפיזם בגרפים וכו')

11-10. מבוא לקריפטוגרפיה: צפני החלפה ותדירויות אותיות בשפה טבעית, פרוטוקול דיפי-הלמן, בדיקת ראשוניות הסתברותית, RSA

13-12. עיבוד תמונה דיגיטלית: ניקוי רעש, סגמנטציה.

 

רשימת קריאה

  1. Python 3 documentation, http://docs.python.org/py3k/, is the official language manual, and a very useful resource.
  2. Think Python, by Allen B. Downey, which is available online.
  3. A book by John Zelle, ׂPython programming: an introduction to computer science׃, second edition. Fraklin, Beedle & Associates.
  4. אלגוריתמיקה, דוד הראל, הוצאת האוניברסיטה הפתוחה

 

 

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:

  1. Python programming language: variables, conditionals and loops, lists and strings,

  2. Basic algorithms (e.g. search, sort, merge) and the notion of complexity

  3. Introduction to cryptography: substitution ciphers and distribution of letters in natural languages, the Diffie-Hellman protocol.

  4. Intractability and the P vs. NP open problem

  5. Undecidability and the halting problem

  6. Error detection and correction codes: repetition and parity bit

  7. Digital images: synthetic images, basic image processing

  8. Basic notions in graph theory

  9. Recursive algorithms

 


שעות סמסטריאליות:
3

אוניברסיטת תל אביב עושה כל מאמץ לכבד זכויות יוצרים. אם בבעלותך זכויות יוצרים בתכנים שנמצאים פה ו/או השימוש
שנעשה בתכנים אלה לדעתך מפר זכויות יש לפנות למערכת הפניות >>