שבוע 15: תוכנית למידה

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

השבוע (15) נלמד 3 נושאים:

  1. ביטויים רגולריים
  2. מבוא לבדיקות תוכנה
  3. מבוא ליעילות

פרסום תרגילים: יום חמישי בערב (17/12).
הגשה: 4/1; בשעה 19:00.

תתי נושאים (רשימת תיוג)

ביטויים רגולריים

  1. מבוא: תבניות, חיפושים במלל, ממשק לשחק בו עם Regular Expressios.
  2. כמתים (Quantifiers); הכמתים ?, *, +, {x, y}.
  3. תווים מיוחדים: ., מחלקות תווים (class; מחלקות שלילה), קיצורים לקבוצות תווים.
  4. מצב “חיפוש פר שורה”, התווים המיוחדים $ ו־^.
  5. קבוצות (groups), “או” בקבוצות, תפיסת ביטויים, התייחסות לקבוצות עבר (Backreference), קבוצות ללא תפיסה.
  6. חמדנות.
  7. חיפושים מתקדמים: Lookaround.
  8. הגדרת שם לקבוצות (Named Groups)
  9. חיבור לפייתון:
    9.1. findall/finditer.
    9.2. חיפושים שמניבים אובייקט match, לדוגמה search, match או fullmatch.
    9.3. דגלים (flags) לשימוש בפייתון.
    9.4. הידור ביטויי Regular Expressions.
    9.5. קבוצות, קבוצות בעלות שם ותוצאות כמילון (groups, groupdict).
    9.6. החלפה באמצעות sub.

מבוא לחישוביות

  1. מה זה “סיבוכיות”?
    1.1. סוגי יעילות (סיבוכיות זמן ריצה, סיבוכיות מקום, סיבוכיות תוכנה)
  2. מה זה סיבוכיות ציקלומטית, איך מחשבים אותה ואיך מורידים אותה?
  3. סיבוכיות מקום וזמן ריצה
    3.1. ספירת הוראות בתוכנה ולמה זה לא אפקטיבי
    3.2. איך נכון למדוד? מה זה Big O, תטא ואומגה.
    3.3. מה זה סיבוכיות קבועה.
    3.4. מה זה סיבוכיות פולינומית
    3.5 האם יש גרוע יותר מסיבוכיות פולינומית?
  4. אנקדוטלי: על מחלקות סיבוכיות, P ו־NP.

מבוא לבדיקות תוכנה

  1. תיאוריה
    1.1. מונחים: בדיקות יחידה (unittests), בדיקות כִּלּוּל (integration tests), בדיקות קצה לקצה (end to end tests)
    1.2. מונחים: בדיקות קבלה (acceptence tests).
    1.3. מונחים: TDD, BDD, Coverage, Whitebox Testing, Blackbox Testing.
  2. מילת המפתח assert
  3. המודול pytest
    3.1. בדיקות פשוטות
    3.2. בדיקה ש־Exception נזרק
    3.3. דילוג על בדיקות
    3.4. conftest.py
    3.5. יצירת fixtures
    3.6. יצירת parameterization
  4. תוספים ופלאגינים ל־Pytest
    5.1. הטלאת קופים (Monkey patching; העברית זו המצאה שלי :stuck_out_tongue: )
    5.2. חיקוי חלקים במערכת (Mock באמצעות pytest-mock)
    5.3. רוחב כיסוי (coverage)
    5.4. pytest-flask

קישורים ללמידה עצמאית

ביטויים רגולריים

  1. בסיס אינטרקטיבי.
  2. מדריך מאוד מפורט אך מעט חופר.
  3. קישור של Regular Expressions לפייתון.
  4. התיעוד של מודול re בפייתון או מדריך ל־Regular Expression בפייתון.

מבוא לבדיקות תוכנה

  1. הקדמה לבדיקות
  2. קורס מקוצר ל־pytest
  3. העשרה: בלוג הטסטים של גוגל

מבוא ליעילות

  1. מבוא עדין לניתוח של סיבוכיות נתונים (מתורגם. למעדיפים באנגלית: כאן).
  2. הרצאה של דיוויד מלן (המרצה האהוב עליי), חומר כתוב של CS50 (הקורס שהוא מעביר).

לייבים – כל יום בשבוע הבא משעה 20:00 ועד 22:00 בערך.
יתכנו ביטולים או הזזות (עדכונים בקבוצת הטלגרם).

17 לייקים