Object Oriented Programming

Luca GRECO Object Oriented Programming

0612700009
DIPARTIMENTO DI INGEGNERIA DELL'INFORMAZIONE ED ELETTRICA E MATEMATICA APPLICATA
EQF6
COMPUTER ENGINEERING
2020/2021



OBBLIGATORIO
YEAR OF COURSE 3
YEAR OF DIDACTIC SYSTEM 2017
PRIMO SEMESTRE
CFUHOURSACTIVITY
324LESSONS
324EXERCISES
324LAB


Objectives
THE COURSE IS AIMED AT TEACHING THE OBJECT ORIENTED PROGRAMMING PARADIGM. IT PROVIDES THE STUDENTS WITH THE COMPETENCES FOR BOTH THE COMPREHENSION OF THE DOCUMENTS OF DESIGN OF A SOFTWARE APPLICATION FORMALIZED THROUGH UML AND ITS IMPLEMENTATION USING THE JAVA PROGRAMMING LANGUAGE.

KNOWLEDGE AND UNDERSTANDING
KNOWLEDGE OF THE OBJECT ORIENTED PROGRAMMING TERMINOLOGY, AND PARTICULARLY WHEN REFERRING TO UML DIAGRAMS, JAVADOC STANDARD AND JAVA SOURCE CODE.

APPLIED KNOWLEDGE AND UNDERSTANDING
ABILITY TO IMPLEMENT IN JAVA AN ALREADY DESIGNED SOFTWARE STARTING FROM ITS CLASS DIAGRAMS; ADOPTING THE CLASSES DEFINED IN THE STANDARD PACKAGES OF THE JAVA LIBRARIES; DESIGN UML DIAGRAMS FOR SIMPLE APPLICATIONS.
Prerequisites
PREREQUISITES: IN ORDER TO ACHIEVE THE GOALS OF THE COURSE, IT IS REQUIRED A GOOD PROGRAMMING EXPERIENCE WITH THE C LANGUAGE.
PROPAEDEUTICAL COURSES: ALGORITHMS AND DATA STRUCTURES
Contents
INTRODUCTION.
PRESENTATION OF THE COURSE. THE ROLE OF THE OBJECT ORIENTED PROGRAMMING IN THE PRODUCTION OF THE SOFTWARE. BASICS OF SOFTWARE ENGINEERING.


THE OBJECT ORIENTED MODEL.
INFORMATION HIDING. CLASSES VS OBJECTS. CONSTRUCTORS AND DESTRUCTORS. ACCESS METHODS. OBJECTS' REFERENCES. FRIENDLY CLASSES AND METHODS. OPERATORS OVERLOADING. MEMORY MANAGEMENT AND DYNAMIC ALLOCATIONS OF OBJECTS. COMPOSITION AND INHERITANCE. DERIVED CLASSES AND SCOPE. POLYMORPHISM. VIRTUAL METHODS AND ABSTRACT CLASSES. GENERICS. BASICS OF THE UML LANGUAGE: USE CASE DIAGRAM AND CLASS DIAGRAM.


THE JAVA LANGUAGE.
THE TYPES SYSTEM, THE OPERATORS, THE STRUCTURES FOR FLOW CONTROL IN JAVA. CONCEPTS OF CLASSES, OBJECTS AND METHODS. INHERITANCE AND POYMORPHISM IN JAVA. SCOPE RULES FOR ATTRIBUTES AND METHODS. ABSTRACT CLASSES AND INTERFACES. PACKAGE.


ERRORS MANAGEMENT IN JAVA.
THE JAVA ERRORS MANAGEMENT MODEL. CHECKED AND UNCHECKED EXCEPTIONS. THE CLASSES OF THE JDK FOR EXCEPTION MANAGEMENT, EXCEPTIONS CREATION.


COLLECTIONS OF DATA STRUCTURES IN JAVA.
ABSTRACT AND CONCRETE IMPLEMENTATION OF LIST, QUEUE, SET AND MAP. ITERATORS. IMPLEMENTATION OF ALGORITHMS FOR COLLECTION SEARCHING AND SORTING.


INPUT/OUTPUT IN JAVA.
BYTE VS CHARACTER I/O. I/O PACKAGES AND CLASSES IN JAVA. EXCEPTION FOR I/O MANAGEMENT.


CONCURRENT PROGRAMMING IN JAVA.
FUNDAMENTALS OF CONCURRENT AND MULTITHREAD PROGRAMMING. THREAD SYNCHRONIZATION, SHARING OF RESOURCES, PRIORITY MANAGEMENT. MULTITHREAD PROGRAMMING IN JAVA.


DESIGN OF GRAPHICAL USER INTERFACES.
BASIC COMPONENTS FOR THE DESIGN OF A GRAPHICAL USER INTERFACE (GUI). THE AWT AND SWING PACKAGES. EVENT MANAGEMENT IN THE JDK 1.2. LAYOUT MANAGEMENT.

Teaching Methods
IN ORDER TO PROVIDE THE STUDENT WITH THEORETICAL AND METHODOLOGICAL KNOWLEDGE AND WITH PRACTICAL PROJECT SKILLS, THE COURSE WILL CONTAIN BOTH LECTURES AND INTERACTIVE EXERCISES.

IN ORDER TO PARTICIPATE TO THE FINAL ASSESSMENT AND TO GAIN THE CREDITS CORRESPONDING TO THE COURSE, THE STUDENT MUST HAVE ATTENDED AT LEAST 70% OF THE HOURS OF ASSISTED TEACHING ACTIVITIES.
Verification of learning
THE EXAMINATION AIMS AT EVALUATING, AS A WHOLE: THE KNOWLEDGE AND UNDERSTANDING OF THE CONCEPTS PRESENTED IN THE COURSE, THE ABILITY TO APPLY THAT KNOWLEDGE TO SOLVE PROBLEMS THROUGH THE ADOPTION OF THE OBJECT ORIENTED PROGRAMMING PARADIGM AND OF THE USE OF THE JAVA LANGUAGE; INDEPENDENCE OF JUDGMENT, COMMUNICATION SKILLS AND THE ABILITY TO LEARN. THE EXAMINATION IS COMPOSED BY A PRACTICAL TEST AND AN ORAL ONE.
THE PRACTICAL EXAMINATION IS AIMED AT EVALUATING THE ABILITY TO IMPLEMENTS PROGRAMS IN JAVA AND IS REALIZED DIRECTLY ON A PC. MINIMAL REQUIRED ABILITY ARE THE IMPLEMENTATION OF A PROGRAM FOR SOLVING THE PROPOSED PROBLEM WITHOUT SIGNIFICANT SYNTACTIC ERRORS; VICE VERSA MAXIMAL ABILITIES ARE THOSE OF IMPLEMENTING EFFICIENT PROGRAMS USING THE MOST APPROPRIATE ALGORITHMS AND DATA STRUCTURES, CORRECTLY EXPLOITING THE LIBRARIES OF THE LANGUAGE. STUDENTS WHO PASSED THE CONTESTS DURING THE COURSE ARE DIRECTLY ADMITTED TO THE ORAL EXAMINATION.
THE ORAL EXAMINATION WILL COVER ALL THE TOPICS OF THE COURSE AND ASSESSMENT WILL TAKE INTO ACCOUNT THE KNOWLEDGE DEMONSTRATED BY THE STUDENT AND THE DEGREE OF ITS DEPTH, PROVEN ABILITY TO LEARN, THE QUALITY OF THE PRESENTATION.
IN THE FINAL EVALUATION, EXPRESSED IN THIRTIETHS, THE EVALUATION OF THE PRACTICAL EXAMINATION WILL ACCOUNT FOR 60% WHILE THE ORAL TEST FOR 40%. THE CUM LAUDE MAY BE GIVEN TO STUDENTS WHO DEMONSTRATE THAT THEY CAN APPLY THE KNOWLEDGE AUTONOMOUSLY EVEN IN CONTEXTS OTHER THAN THOSE PROPOSED IN THE COURSE.
Texts
CLAUDIO DE SIO CESARI, “MANUALE DI JAVA 9”, HOEPLI INFORMATICA

CONSULTATION AND DEEPENING TEXTBOOKS AND URLS
- BRUCE ECKEL, "THINKING IN JAVA (4TH ED.)", PRENTICE HALL
- HERBERT SCHILDT, “JAVA – THE COMPLETE REFERENCE (9TH ED.), ORACLE PRESS
- JAVA TUTORIALS - HTTP://DOCS.ORACLE.COM/JAVASE/TUTORIAL/
More Information
COURSE LANGUAGE IS ITALIAN.
  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2022-05-23]