תכנות מונחה עצמים
Introduction to Object Oriented Programming
89-1111
סוג הקורס: הרצאה + תרגול
Course type: lecture + recitation
שנת לימודים: תשפ"ג
סמסטר: ב'
היקף שעות שבועיות: 2+3
אתר הקורס באינטרנט: פיאצה
א. מטרות הקורס: הקניית ידע בתכנות ועיצוב קוד מונחה עצמים. התנסות בשפת התכנות ג'אווה.
Outcomes: Fundamentals of programming and design of objectoriented code. Practicing the Java programming language.
ב. תוכן הקורס: להלן רשימת הנושאים שידונו בקורס, לא בהכרח בסדר הזה:
The course will introduce the following topics, not necessarily in this order:
• מבוא לשפת ג'אווה Introduction to Java
• מחלקות ועצמים Classes and objects
• קוד מונחה בדיקות \ חוזים בתכנות Test driven development/ Design by contract
• היררכיית האוספים בג'אווה The Java collection hierarchy
• הכמסה והסתרת מידע Encapsulation
• ממשקים ובניית ממשקים Interfaces, API's and interface design
• פולמורפיזם Polymorphism
• טיפוסים מוכללים Generics
• מנגנון החריגים בג'אווה והתמודדות עם שגיאות Exception Handling
• הורשה לעומת הכלה והאצלה Inheritance versus composition and delegation
• טיפוסים מקובעים Immutability
• תבניות עיצוב Design Patterns
• Iterations
• סדרות פלט/וקלט Serialization and I/O
• תכנות מונחה עצמים בשפות אחרות (פייתון) OO in other languages (Python)
חובות / דרישות / מטלות: מבחן + תרגילים מעשיים
מרכיבי הציון הסופי (ציון מספרי / ציון עובר): %80 מבחן + %20 תרגול.
כדי לעבור את הקורס יש לקבל ציון עובר הן ברכיב התרגילים והן ברכיב המבחן
Assignments and other duties: final exam + programming exercises
Grade: 80% final exam, 20% assignments. A passing grade in both is required to pass the course
הקורס יינתן בעברית או באנגלית, לבחירת המרצה.
הנוכחות חובה. המבחן פרונטלי.
חובה לעבור בציון עובר (60 ומעלה( את כל אחת מהמטלות המפורטות בסילבוס, כולל תרגילי בית, בחינה, בחנים, השתתפות בתרגילים וכו׳. יש לקבל ציון עובר (60 ומעלה) בכל אחד ממרכיבי הציון.
דרישות קדם: הקורס 89-110
Requirements: Prerequisites: course 89-110
Bibliorgaphy:
Recommended reading:
The JavaTM Tutorials https://docs.oracle.com/javase/tutorial/, Specifically https://docs.oracle.com/javase/tutorial/java/index.html
Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, John Vlissides, Ralph Johnson, and Richard Helm
Java in a Nutshell: A Desktop Quick Reference by Ben Evans and David Flanagan, 2018.
Building Java Programs: A Back to Basics Approach, 5th edition by Stuart Reges and Marty Stepp, 2019