כבר למעלה מ-20 שנה אני מעביר קורסים שונים ומשתתף בהשתלמות על מנת להישאר עדכני בטרנדים הכי חמים בעולם התוכנה.
מבני נתונים
הקורס סוקר נושאים שונים במבני נתונים ואלגוריתמים ומיועד לסטודנטים בעלי רקע בסיסי בתכנות. במהלך הקורס נלמד על מבני הנתונים הבסיסיים: מערך, מחסנית, תור, רשימה מקושרת, עץ, ערמה, טבלת גיבוב עצי B-tree ועוד. כמו כן אציג אלגוריתמים בסיסיים לשימוש במבני נתונים הללו, בכללם חיפושים ומיונים. הסטודנטים בקורס יתכנתו מבני נתונים שונים בשפת JAVA.
- מיון מיזוג
- רשימה חד-כיוונית, דו-כיוונית, מעגלית וממוינת
- מחסנית ותור
- עצים אדומים-שחורים
- עץ AVL
- עצי B-tree
מבוא לתכנות מונחה עצמים ב-Java
הקורס סוקר נושאים בפיתוח תוכנה תוך התמקדות בתכנות מונחה עצמים (OOP – Object-Oriented Programming) ושימוש בשפת Java.
הקורס סוקר מתודולוגיות לפיתוח קוד בגישת מונחית עצמים באמצעות שימוש בכלי פיתוח מתקדמים (Eclipse). הנושאים הנלמדים: הכלה, ירושה, ממשקים, שימוש בקלט ופלט, טיפול בחריגים, שימוש במבני נתונים קיימים (אוספים), בנייה של ממשקים גראפיים ומבוא לתכנות מרובה משימות (Threading).
- ממשקים, קומפרטורים
- פונקציות ומחלקות ג'נריות
- טיפול בחריגים, חריגים והורשה
- שימוש בקבצים – קלט ופלט
- בניית ממשקים גראפיים
- מבוא לתכנות מרובה תהליכים – Threads
- Design Patterns
מבוא לחישוב ב-Java
הקורס סוקר נושאים בסיסיים בפיתוח תוכנה תוך התמקדות בשפת java, קורס זה מיועד לסטודנטים ללא רקע בתכנות ולפיכך מתחיל בלימוד בסיסי של שפת התכנות וכן שימוש בסביבת פיתוח (Eclipse). בקורס יילמדו נושאים שונים ביניהם משתנים, תנאים, מערכים ומחרוזות, פונקציות, שימוש במחלקות, שימוש בקבצים, ומבוא לתכנות מונחה עצמים – כתיבת מחלקות ושימוש בחבילות של API java.
- עקרונות שפת תכנות - מהו אלגוריתם, מושגים בסיסיים
- דקדוק בסיסי - משתנים, תנאים, לולאות,
- מבוא לפונקציות דקדוק בסיסי דוגמאות
- מערכים ומחרוזות
- רקורסיה
- מיון וחיפוש
- מבוא לתכנות מונחה עצמים: שימוש במחלקות קיימות
- כתיבת מחלקות: אובייקטים, שיטות, מידע,
- שימוש בהכלה וממשקים
- שימוש בקבצי טקסט
- תיאור מחלקות (javadoc) ובדיקות תוכנה (JUnit)
פיתוח אפליקציות מובייל למכשירי Android
הקורס סוקר נושאים בפיתוח תוכנה תוך התמקדות בתכנות מונחה עצמים (OOP – Object-Oriented Programming) ושימוש בשפת Java (בעיקר).
מערכת ההפעלה של Android מאפשרת חופש פעולה רחב למפתח. הקורס סוקר מתודולוגיות לפיתוח קוד בגישה מונחית עצמים באמצעות שימוש בכלי פיתוח מתקדמים (Android Studio).
את תוצרי העבודה אפשר להריץ על כל התקן מבוסס ליבת לינוקס, ועל כֵּן, האפליקציה יכולה לרוץ על סמארטפונים, טאבלטים וכֵן על טלוויזיות ושעונים חכמים.
- Activities, Intents
- Sound & Video
- Thread & AsyncTask & Handler (חישוב מקבילי)
- Broadcast Receiver (מקלט שידורים)
- Sensors (חיישנים)
- Content Provider
- Maps
- Fire Base
- SQL
תכנות מערכות בשפת C
הקורס מקנה מושגי יסוד ועקרונות, עליהם מושתתת פרדיגמת מדעי המחשב. כמו כן, הקורס מלמד עקרונות של החשיבה הפרוצדולרית ומלמד כיצד פותרים בעיות באמצעות אלגוריתמים. בנוסף, הקורס תורם להעמקת והרחבת החומר הנלמד במקצוע מדעי המחשב וכן במיומנויות הכתיבה בשפת C.
- מבוא לפיתוח אלגוריתמים
- ביצוע מותנה
- ביצוע חוזר – לולאות ומבני בקרה
- תת-משימות: פונקציות/פעולות
- מערכים חד-ממדיים
- מערכים דו-ממדיים ורב ממדיים
- מצביעים ומימוש פרוצדורות
- תווים ומחרוזות
- טיפוסי נתונים
- יחידת ספרייה ומאקרו
- הקצאת זיכרון דינמית ומערך דינמי
- קלט/פלט בקבצים
- רשימות מקושרות
תכנות מונחה עצמים ב-CPP
שפת CPP נחשבת פופולרית בתעשיית פיתוח תוכנה, החל בפיתוח מערכות משובצות מחשב (Embedded Systems), פיתוח מערכות זמן אמת (Real Time Systems), מהווה בסיס לפיתוח אפליקציות מורכבות במערכות ההפעלה, פיתוח GUI וכלה באפליקציות Data Base.
שפת CPP משלבת מספר מודלים תכנותיים בנוסף ליכולות תכנות מונחה עצמים (Object Oriented Programming) וכן תכנות פרוצדורלי הנגזר משפת C.
מתכנת רצוי שישלוט בשפה זו מפני שמצד אחד היא תומכת ביכולות של שפה עילית אך מצד שני משלבת יכולות תכנות Low Level על גבי חומרה.
- מבוא לשפת CPP
- מחלקות ועצמים
- הורשה ופולימורפיזם
- מערכים, מחרוזות וSTL
- ממשקים
- מצביעים
- קלט / פלט
- תהליכונים וסנכרון
- טיפול בשגיאות
- מחלקות ופונקציות "חברות"
- איסוף אשפה
- מבוא ל-Design Patterns
- מבוא ל-CPP וחריגים
- תכנות ג'נרי (Template)
- העמסת אופרטורים
מבוא למערכת ההפעלה
מה"פ מנהלת את משאבי המערכת ומשתפת אותם בין תהליכים, תכניות, ומשתמשים. מערכת ההפעלה מספקת לתכנית שרצה אשליה כאילו המכונה (זיכרון עצום, מעבד ייעודי חזק מאוד ועוד) כולה עומדת לרשותה בלבד אף על פי שזוהי אבסטרקציה בלבד.
בקורס זה אשים דגש במושגים ובעקרונות ההבנה של עקרונות התכנון והשימוש במערכות הפעלה ונדגים את העקרונות השונים.
- מבנים במערכת המחשב
- תהליכים
- זימון תהליכים
- תהליכונים (Threads)
- תיאום בין תהליכים
- פסיקות
- ניהול זיכרון
- הזיכרון בפועל
- מערכת הקבצים
- מימוש מערכת הקבצים
- מערכת האחסון המשני
- רשתות ותקשורת
בניית אתרים (מבוסס צד שרת)
מבוא לרשתות מחשבים , מבוא לאינטרנט, מה זה שרת אינטרנט מה זה דפדפן היפרלינקים פרוטוקולי תקשורת בסיסיים DNS ,HTTP וכן HTML כבסיס.
- מבוא
- בקרת זרימה
- מערכים ומחרוזות
- תכנות מונחה עצמים ב-PHP
- טפסים ב-HTML, עיבוד והעברת מידע ע"י PHP
- סשנים ועוגיות (Sessions & Cookies)
- משלוח מייל ע"י שימוש בפונקציית ()mail של PHP
- טיפול בקבצים