
קורס פייתון / Python
בחסות האוניברסיטה הפתוחה
מערך לימודי החוץ
Python היא שפת פיתוח עילית הפופולרית בעולם המבוססת על קוד פתוח. השפה פותחה אי שם בשנות ה-90 ומאז עברה שינויים ושדרוגים המקלים על עבודתו של מפתח Python. שפת Python נחשבת לאלגנטית מאוד וזאת בשל התחביר הייחודי שלה והיא נקראת על שם חבורת הקומיקאים הבריטיים "מונטי פייטון". רק נציין שמנוע החיפוש של גוגל מבוסס על Python, מה שמראה על שפה נחשקת ומבוקשת מאוד בשוק העבודה.
מהו קורס Python ומה לומדים בו?
Python היא אחת משפות התכנות המבוקשות בעולם ההייטק. מדובר על שפה המבוססת על קוד פתוח, המאפשרת פיתוח יעיל ומהיר של מגוון פלטפורמות ואפליקציות. השפה גמישה מאוד, נוחה לעבודה ופשוטה, ולכן הלימודים קלים יחסית. במהלך הקורס נכיר ותרגל את כל הכלים לתכנות בשפת Python.
תיאור הקורס
המסלול מתחיל במבוא ויסודות לשפת ה-Python . לאחר מכן נמשיך במסדי נתונים, רשתות תקשורת, פרוטוקולים וכתיבת סקריפטים במערכת ההפעלה LINUX ונסיים בפרויקט מסכם.
היקף השעות
240 שעות לימוד אקדמיות + 40 שיות עבודה על "פרויקט לתעשייה"
תנאי קבלה
הקורס פונה למועמדים חסרי רקע בעלי:
- אנגלית ברמה טובה
- ידע בסיסי בעבודה מול מחשב ואוריינטציה טכנית
- יש לעבור מבחן פילת
קהל היעד
הקורס מתאים לכולם, גם לחסרי רקע בפיתוח תוכנה אשר מעוניינים לרכוש כלים ולפתח פלטפורמות ואפליקציות בשפת Python.
יתרונות הקורס
• המסלול היחיד שמאפשר לבוגרים לרכוש מקצוע מבוקש ולפתח קריירה, הן כמפתח עצמאי והן
כמפתח שכיר תוך התנסות עם הטכנולוגיות בתחום פיתוח שרת, אבטחת המידע ו – DevOps.
• שרתים אשר פותחו בשפה זו, מפורסמים בזכות היציבות שלהם. ידע ב-Python מאפשר השתלבות
בחברות כמפתח שרתים לכל דבר.
• Python הינה שפת Script – באמצעותה ניתן לפתח תוכנות קצרות וארוכות ולהריץ אותם במערכת
ההפעלה Linux .קורס זה מקנה ניסיון בפיתוח עם Python המאפשר להשתלב בחברות
כאיש DevOps.
איפה משתלבים בשוק העבודה אחרי הקורס?
כמפתח במשרות פיתוח בחברות המפתחות פלטפורמות, אפליקציות, כלי ניטור למערכות, פיתוח Micro-Services או לעבוד כעצמאי ולהעניק שירות לחברות כפרילנסר.
תעודות והסמכות
דרישות לזכאות תעודת גמר:
- השתתפות בלפחות 85% משעות הקורס
- נוכחות חובה בהגשת פרויקט הגמר
- חובת הגשת כל מטלות הקורס וקבלת ציון עובר (מבחנים, תרגילים, עבודות, פרויקטים)
שאלות נפוצות על קורס Python
בקורס זה נדרש הבנה ברמת 4 יחידות באנגלית. ניתן לעבור מכינה באנגלית לפני הצטרפות לקורס.
מפתח ג'וניור מרוויח 16-17 אלף שקלים וסניור סביב 32-35 אלף שקלים.
הכרת הטכנולוגיות, יכולת לתכנן מערכת, מתן פתרון לבעיות טכניות, יצירתיות, כתיבת קוד ועבודה בצוות.
וודאי. שפת Python עובדת עם חלונות, לינוקס, ו-OSX ויש לה תמיכה מעולה למערכות של מייקרוסופט.
סטודנטים ממליצים על הקורס

"נרשמתי לקורס Python במכללת INT דרך המלצות של חברים שלמדו שם. הגישה של המכללה שתמיד מעלה את כל התכנים למערכת הלמידה הכי תרמה לי. יכולתי לחזור אחורה לנקודות ספציפיות שחיפשתי ורציתי לחזק והמטלות שניתנו לנו על החומר הנלמד תמיד עזרו לי ללמוד את החומר בצורה המיטבית".

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

"באתי ללמוד קורס Python במכללת INT כי רציתי לתרגל את השפה שתעזור לי במסגרת תפקידי בחברת Raft Technologies. בתפקידי הקודם בחברה לא היה לי ניסיון בשפת Python וכדי להתקדם הלאה הייתי צריך לרכוש ידע וניסיון בשפה זו. הקורס של INT נתן לי בדיוק את המענה הדרוש. המרצה בקורס היה תמיד זמין לכל שאלה ובעיה".
תוכנית לימודים

שלב ראשון
• Installing Python and an IDE (PyCharm)
• Hello World
• Standard in/out
• Running code in CMD / Terminal
• Python syntax (rules, conventions, indentation)
• Variables
• Operators (arithmetic / logical)
• Flow control (loops, conditions, context managers)
• Functions, arguments, scopes, default values and return values
• Data types, sequences and mutability
o String + string methods
o Bool and none
o List and list methods
o Tuple and set,
o Dict and dict methods)
• Lambda (anonymous) functions
• Exception handling
• Debugging
• File IO operations
• How to learn new libraries
• Creating modules / packages / libraries
• Project
תכנות בסיסי
בשלב זה נכיר את שפת Python, נרכוש מיומנויות בסיסיות בתכנות ונכיר את סביבות הפיתוח השונות.

שלב שני
Linux Basics

שלב שלישי
- Creating venv’s
- Installing packages
- Creating and using requirements file
- Packaging an app as an executable

שלב רביעי
- Data types in depth
- OOP as a concept / why Python is OO as a given
- Defining classes
- Creating objects
- Attributes and methods
- Magic methods
- Inheritance
Project

שלב חמישי
- Git & GitHub
- Public repo for the course
- Project Submission as a git repo
- Starting template for a project will be pulled by the students and then pushed as a new version/branch.
- Committing new features/functions/fixes etc.…
- .ignore

שלב שישי
- Planning ahead vs. Jumping to code
- Algorithms, diagrams, and flow visualisationvisualization
- Avoiding “spaghetti” code
- Planning
- Constantly testing
- High cohesion
- Low coupling
- Clear code
- Functional approach
- OOP approach
- Scripting approach
- Architecture concepts
- Separating UI from logic
- Scalability

שלב שביעי
- Writing unit tests
- Test Driven Development (TDD)
- Using test modules vs. print statements vs. debuggers

שלב שמיני
- Comments, docstrings
- Type hints
- Readme files
- Self-explanatory code vs. complex code

שלב תשיעי
- Serializing data
- Serializing / de-serializing custom objects
- Pickle
- JSON
- CSV
- XML
- Binary data stream
- Databases
- Creating databases
- Connecting and querying a DB
- CRUD
- SQL (SQlite3) vs. MongoDB (Mongoose)
- SQLAlchemy as an ORM
- Project

שלב עשירי
- 7 Layer model
- TCP sockets in Python
- Client / Server architecture
- Multithreading in Python + deadlock
- Python requests module
- Basic web-scraping using Beautiful Soup
- Building a web app backend / API
- Flask, routes, return values (JSON / HTML)
- Rendering HTML pages
- Extending a base.html file
- Redirects
- Handling HTTP requests (get, post, delete, put)
- Jinja2 templating
- Flask SQLAlchemy
- Sessions and cookies
- Authentication
- Basic password encryption
- Deploy a web app to Python Anywhere
- Flask socketIO for real-time communication
- Project

שלב אחד עשרה
- Creating 2D graphics with PyGame
- Understanding game logic and dynamic programming vs. hard coding
- Event loops
- Sprites and resources
- Playing sounds
Project

שלב שני עשר
- yQt6 Basics
- Creating windows
- Basic widgets and layouts
- Widget properties
- Extending widgets/components classes
- Signals and slots
- Threads in QT
- Using QT designer
- Project

שלב שלוש עשרה
- Basic searching algorithms
- Comparing sorting algorithms
- Optimizing code for faster runtime

שלב ארבע עשרה
- Pandas
- NumPy
- TensorFlow
- OpenCv
- MatPlotLib
- Regex

שלב חמש עשרה
- Hashing vs. encryption
- SSL
- SQL injection
- DDOS
- Removing keys from your code!

שלב שש עשרה

שלב שבע עשרה
המרצים בקורס
