#תעודה

#טכנולוגיות
-
PYTHON
-
HTML
-
CSS
-
SQL
-
GIT
#סילבוס_הקורס
פרק 1
פרק זה מאפשר נחיתה רכה לעולם התכנות ומניח את היסודות לקראת הפרקים הבאים. בפרק החניכים לומדים להשתמש בלוגיקה בוליאנית ובאופרטורים של השוואה, ומתרגלים כתיבת תוכנית בסיסית המקבלת קלט ומחזירה פלט.
רשימת נושאים:- הקדמה
- אריתמטיקה
- טיפוסי נתונים
- קלט ופלט
- משתנים
- לוגיקה בוליאנית
פרק 2
בפרק זה החניכים נפגשים לראשונה עם היכולת להשפיע על מבנה זרימת התוכנית ועם עקרון החלוקה ליחידות קטנות שלהן אחריות יחידה. בשלב זה החניכים מכירים ומשתמשים לראשונה במבנה נתונים מסוג רשימה. החניכים מקבלים לראשונה תרגיל שמעודד אותם לחקור את התיעוד בעצמם. העידוד למחקר עצמאי הולך וגובר ככל שהקורס מתקדם, ונעשה בחציו השני של הקורס לערך מרכזי בעבודה.
רשימת נושאים:- תנאים
- פונקציות
- רשימות
- פעולות על מחרוזות
- תיעוד
פרק 3
החניכים לומדים לראשונה לולאות המבוססות על ביטוי בוליאני. במהלך הפרק הם מבצעים לראשונה debugging מורכב ולא טריוויאלי. בפרק זה החניכים מקבלים לראשונה כלים להתמודדות עם בעיות מהעולם האמיתי (קבצים, לולאות). בשלב זה הם גם פוגשים לראשונה מבנה נתונים Immutable־י, ולומדים לראשונה על מאפיין תכנותי מורכב שדורש הבנה של התנהגות השפה מאחורי הקלעים.
רשימת נושאים:- לולאות while
- חיתוך מחרוזות ורשימות
- קבצים
- פעולות על רשימות
- Mutability וטאפלים
פרק 4
בפרק זה החניכים משתמשים לראשונה בתכונת ה־iterable־יות של מבני נתונים באמצעות לולאת ה־for של פייתון. בפרק דנים על מילונים ומבני נתונים מקוננים, תוך כדי ניסיון להקנות אינטואיציה לבחירת מבנה נתונים המתאים לסוג הבעיה. זה גם הפרק שבו הם משתמשים לראשונה בטכניקות שיעשו את הקוד לקריא יותר, תוך כדי שימוש בתחביר "פייתוני". בסיום הפרק החניכים קוראים על אוטומט סופי דטרמיניסטי. כתרגיל, עליהם לכתוב תוכנית שמקבלת כקלט מצבים, כללי מעבר וקלטים, ומחזירה את המצב הסופי שאליו הגיעה בסיום ריצת האוטומט עבור כל קלט.
רשימת נושאים:- לולאות for
- מילונים ופעולות עליהם
- Unpacking
- פונקציות מובנות בשפה
פרק 5
בפרק זה גובר הצורך להשתמש במקורות מידע חיצוניים כדי למצוא כלים מתוך המודולים הסטנדרטיים הקיימים בפייתון. לחניכים מוצג לראשונה באופן מסודר הרעיון של מוסכמות כתיבה ו־PEP8, והם לומדים על טכניקות מתקדמות יותר של קבלת ארגומנטים בפונקציות. בחלק האחרון של הפרק החניכים לומדים על generators ועל מילת המפתח yield.
רשימת נושאים:- מודולים
- מוסכמות סגנון
- פרמטרים לפונקציות (לפי מיקום, לפי שם, *args, **kwargs, ערכי ברירת מחדל)
- Generators
פרק 6
בפרק זה החניכים לומדים על רעיונות פונקציונליים, כמוmap, filter, lambda ואת משמעות המונח higher order function. הם לומדים גם על סוגי ה־comprehensions השונים הקיימים בפייתון וכיצד להשתמש בהם. בחלק האחרון של הפרק החניכים לומדים על מציאת מודולים צד שלישי באינטרנט, זיהוי מודולים רלוונטיים והתקנה שלהם.
רשימת נושאים:- קבוצות
- מבוא לתכנות פונקציונלי
- מודולים חיצוניים
- ניהול מודולים
פרק 7
בפרק זה החניכים לומדים על מחלקות ומכירים את קצה הקרחון של תכנות מונחה עצמים. תחילה הם נפגשים עם הרעיון של מחלקות, מופעים, תכונות, פעולות אתחול ופונקציות מיוחדות; ולאחר מכן הם נדרשים להבין גם רעיונות כמו הכלה וכימוס. בין לבין, החניכים מקבלים סקירה מעמיקה של טכניקות ומוסכמות תיעוד קוד, ומתבקשים לתרגל כתיבה של מחלקות מתועדות היטב.
רשימת נושאים:- מחלקות
- מוסכמות תיעוד
פרק 8
בפרק זה החניכים לומדים להכיר את הגמישות שבשימוש במחלקות. לאורך הפרק מודגשות הבעיות שעלולות לצוץ בשימוש שגוי במחלקות (תסמונת המחלקה השברירית, עקרון ההחלפה של ליסקוב, הבדלים בין הכלה לירושה). החניכים מתבקשים לשנות קוד של משחק שחמט שעושה שימוש במחלקות אבסטרקטיות וב־Mixins, ובכך מתרגלים כניסה לקוד קיים ומתנסים בשימוש בירושה ובטכניקות מתקדמות שקשורות לירושה. בהמשך הפרק החניכים לומדים על טיפול בחריגות, על זריקת חריגות ועל יצירה שלהן, ונחשפים לדיון על טיפול בשגיאות ולשיטות עבודה נכונות בשגיאות.
רשימת נושאים:- ירושה
- Design Patterns בסיסיות (ירושה מרובה, מחלקות מופשטות, Mixins)
- חריגות וטיפול בחריגות
פרק 9
בפרק זה החניכים עובדים לראשונה על IDE ולומדים את סביבת העבודה החדשה ואת יתרונותיה – כמו כלים לניפוי שגיאות, שבעזרתם הם מתקנים תוכנית שבה הוכמנו טעויות מכוונות. בהמשך הפרק החניכים לומדים על פיצול הפרויקט לקבצים ומתנסים בכך בעצמם. החניכים מתנסים גם בכתיבת קוד עם type annotations, הוספת type annotations לקוד קיים ובדיקת הקוד באמצעות mypy. לבסוף, החניכים לומדים על decorators ומחדדים את ההבנה שלהם בנוגע לתכונות הפונקציונליות של פייתון כשפה.
רשימת נושאים:- סביבת פיתוח
- ניפוי שגיאות
- פיצול קוד לקבצים
- Type annotations
- Decorators
פרק 10
בפרק זה החניכים מתוודעים לרעיון ניהול הגרסאות. בפרק הם מתנסים בכתיבת מערכת משלהם לניהול גרסאות, שכוללת פקודות, כמו add, branch, commit, status ו־checkout. החניכים מממשים גם merge בסיסי ו־graph, שהוא מעין log גרפי. בהמשך הפרק החניכים לומדים כיצד להעלות את הקוד שכתבו ל־GitHub בעזרת git, וכן כיצד לנווט ב־GitHub ולמצוא פרויקטים שניתן לסמוך עליהם.
רשימת נושאים:- עבודה עם נתיבים
- Git
- GitHub
פרק 11
בפרק זה החניכים לומדים HTML ו־CSS ברמה בסיסית, ובסופו הם מעצבים בעצמם אתר סטטי רספונסיבי ותקני. החומרים כוללים מונחים בסיסיים, היכרות עם HTML בדגש על HTML סמנטי, כתיבת CSS רספונסיבי ועבודה מול MDN.
רשימת נושאים:- HTML
- CSS
- DevTools
פרק 12
בפרק זה לומדים כיצד לבנות אתר – מרמת ה־wireframing ועד העלאת האתר לאינטרנט. במסגרת הפרויקט החניכים כותבים קוד פייתון שעושה שימוש ב־API חיצוני, כדי להשיג מידע שיוצג באתר שלהם. החניכים לומדים לראשונה על Flask כ־microframework ל־web applications, ובונים את התצוגה למשתמש בעזרת מנוע התבניות Jinja2. הפרק מסתיים בתהליך deploy של האתר ל־Heroku (שירות PaaS) כדי להפוך אותו לפומבי.
רשימת נושאים:- אינטרנט
- סביבה וירטואלית
- Wireframing
- Serialization
- APIs
- Templating Engine
- Web Frameworks
- Heroku
פרק 13
בפרק זה החניכים לומדים על היתרונות של שימוש במסדי נתונים. במסגרת התרגול, הם שולפים מידע ממסדי נתונים ומשתמשים בשאילתות עם מילות המפתחSELECT, FROM, WHERE, JOIN, GROUP BY, HAVING, ORDER BY ו־LIMIT. הפרק מסתיים בדיון ותרגול של נרמול נתונים במסדי נתונים רלציוניים.
רשימת נושאים:- מבוא למסדי נתונים רלציוניים
- SQL
פרק 14
בפרק זה החניכים כותבים פרויקט שממחיש את הקשר בין מסדי נתונים רלציוניים ליישומי אינטרנט. החניכים מתכננים ERD שבו שלוש טבלאות או יותר, כותבים שאילתות ליצירה, קריאה, עדכון ומחיקה של הישויות בטבלאות ומשתמשים ב־ORM לבחירתם (peewee או SQLAlchemy) כשכבת הפשטה לשאילתות ולגישור בין מסד הנתונים לאובייקטים בקוד.
רשימת נושאים:- פעולות CRUD
- שימוש ב־ORM
- פרויקט
פרק 15
בפרק זה החניכים מעמיקים בביטויים רגולריים ולומדים להשתמש בהם, הן בפייתון והן לשימושים כלליים אחרים. החניכים לומדים להשתמש ב־pytest וכותבים בדיקות עבור “משחק החיים” (שכתבו בעצמם) ועבור הפרויקט שכתבו בפרק הקודם. בסיום הפרק החניכים לומדים מונחים בסיסיים ביעילות אלגוריתמית, רוכשים אינטואיציה ומחשבים זמני ריצה של תוכניות שונות.
רשימת נושאים:- Regular Expressions
- מבוא ליעילות אלגוריתמית
- pytest
פרק 16
בפרק זה החניכים עובדים יחד על פרויקט, שבו כל חניך לוקח על עצמו עבודה על שלושה issues – לפחות פיצ’ר אחד ועד שני תיקוני באגים. במהלך העבודה החניכים לומדים על עבודה בצוות, שימוש ב־Git, פתרון קונפליקטים, קבלת CR־ים מעמיתים והשתלבות בקוד של אחרים.
רשימת נושאים:- פרויקט סיום