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

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

מפת למידה

  1. שאילתות JOIN – צפויה לצאת מחברת ביומיים הקרובים.
  2. תתי־שאילתות (SUBQUERIES) – תצא מחברת עד מוצ"ש.
  3. שאילתות CRUD – כדאי ללמוד עצמאית. מומלץ להבין מה המונח אומר מכאן, ואז ללמוד על שאילתות ליצירת טבלאות והשפעה על שורות: CREATE, REMOVE, UPDATE, DELETE ו־INSERT מכאן, שיעורים 13–16 ו־18. לא מדובר על נושאים סבוכים אלא בעיקר טכניים, ואתם בקלות יכולים ללמוד אותם בעצמכם בלי להתקל בקשיים רציניים.
  4. איך מתממשקים למסדי נתונים באמצעות פייתון? קראו על המודול sqlite3 בתור התחלה, וודאו שאתם מצליחים להחזיר נתונים בעזרת שאילתות שהרצתם. ודאו שאתם מבינים את רעיון הסמן, ושאתם יכולים להחזיר תוצאה אחת או יותר.
  5. ללמוד על ORM־ים – מה זה ORM? בחרו ונסו את Peewee (קל) או את SQLAlchemy (נפוץ ומלא בפיצ’רים). נסו להתחבר בעזרתם למסד הסרטים ולמצוא כמה שחקנים שיחקו בסרט שקיבל הכי הרבה הצבעות בשנת 2018.

שידורים חיים

אתן לכולם קצת זמן להתאפס על כל החומרים, ואעלה ביום שלישי (1/12) לשידור־חי ראשון לשבוע 14.
נקבע שידורים נוספים לפי הצורך.

מטרות השבוע

  1. לשלוט בביצוע JOIN, SUBQUERIES.
  2. להבין את המונח CRUD בהקשרי תוכנה, ולדעת איך ליצור/לערוך טבלאות ומסדי נתונים.
  3. לדעת לבנות אתר קצה לקצה, עם כל הרכיבים, כולל מסד נתונים.

תרגילים

  1. בחוברות ה־JOIN וה־Subqueries יופיעו תרגילים להגשה.
  2. חשבו על אפליקציה משלכם, או על הפרויקט שלכם, ואיך לשלב בו מסד נתונים. תוכלו גם להחליט לבנות פרויקט אחר, נוסף, לתיק העבודות שלכם. בנו את הפרויקט עם מסד נתונים והעלו ל־Heroku.

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

תאריך ההגשה הוא עד יום חמישי בעוד שבועיים, כלומר 10/12.


פרויקטים (מכובדים) לדוגמה

אתר חידות

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

באתר תהיה “טבלת מנצחים” שתראה את האנשים שצברו הכי הרבה נקודות.

ארון הקוקטיילים

צרו טבלה של בקבוקי אלכוהול פופולריים והמחיר שלהם.
צרו טבלה נוספת של קוקטיילים פופולריים.

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

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

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

חיקוי Wordle

  1. בכל יום, בחרו מילה אקראית בת 5 אותיות.
  2. המשתמשים שלכם צריכים להקליד באתר ניחוש – מה היא המילה היומית?
  3. אם הניחוש שהכניסו הוא בן 5 אותיות, יוצג להם אילו אותיות הם ניחשו נכון: בצהוב יוצגו אותיות שקיימות במילה שהוגרלה וגם בניחוש, אך לא באותו מקום. בירוק יוצגו אותיות שקיימות במילה שהוגרלה וגם בניחוש, והן כן באותו מקום. באפור יוצגו אותיות שקיימות בניחוש אבל לא במילה.
  4. למשתמש יש עד 6 נסיונות לנחש מה היא המילה שהוגרלה.
  5. שמרו את הניסיונות וההצלחות של המשתמשים במסד הנתונים, כך שיוכלו לשחק בקלות מכל מקום. הציגו למשתמש עמוד משתמש עם סטטיסטיקות: כמה פעמים קלע תוך ניחוש אחד, שני ניחושים, שלושה וכך הלאה. הציגו לו גם מה ה¯Streak שלו כרגע (בכמה ימים רצופים ניצח) ומה ה¯Streak הכי גבוה שהגיע אליו.

אני ממליץ, עבור מי שמעוניין, להרחיב על pandas.
זה מתקשר לשבוע שלנו מאוד וזה אחלה מודול להתעסקות עם נתונים.

13 לייקים

היי ים,

יש לך המלצה לאתר טוב שמלמד pandas?

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

אם קובי בונה api ברמה גבוהה , אני מתנדב לבנות לו את הפרונט …

לייק 1

נראים פרויקטים נהדרים !
רק שאלה להבהרה - בפרויקט האלכוהול , אמורים לאפשר לחנות להוסיף \ להוריד משקאות שמהם המשתמשים בוחרים ? או שלוקחים אותם מקובץ , api וכדומה ?
(כנ"ל לגבי רשימת החידות)

לייק 1

אפשר בנוסף, לא במקום :slight_smile:

לא בשלוף, אחפש ואשלח בהמשך השבועיים

לייק 1

בפרויקט אנו ניצור מסד נתונים שהוא סטטי והאתר יתן אפשרות לגשת אליו
או שמא זה צריך להיות טבלאות שגם באינטראקציה עם האתר אמורות להתעדכן
במסד עצמו?

המידע במסד יתעדכן באינטרקציה עם האתר

לייק 1

מסד הנתונים צריך להיות SQLITE?

לא. עקרונית ככה"נ הכי נוח יהיה להשתמש באחד של Heroku, ואז הייתי בוחר PostgreSQL

אנחנו נלמד גם על אבטחה של מסד הנתונים?

סרטון הסברה על PostgreSQL

לייק 1

זה לא ב־scope, לצערי