Object Oriented Programming

Gennaro PERCANNELLA Object Oriented Programming

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

OBBLIGATORIO
YEAR OF COURSE 3
YEAR OF DIDACTIC SYSTEM 2015
PRIMO SEMESTRE
CFUHOURSACTIVITY
440LESSONS
330EXERCISES
220LAB
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.
(HOURS LECTURES/EXERCITATIONS/LABORATORY 4/0/0)

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.
(HOURS LECTURES/EXERCITATIONS/LABORATORY 10/5/5)

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.
(HOURS LECTURES/EXERCITATIONS/LABORATORY 10/5/5)

ERRORS MANAGEMENT IN JAVA.
THE JAVA ERRORS MANAGEMENT MODEL. CHECKED AND UNCHECKED EXCEPTIONS. THE CLASSES OF THE JDK FOR EXCEPTION MANAGEMENT, EXCEPTIONS CREATION.
(HOURS LECTURES/EXERCITATIONS/LABORATORY 5/2/3)

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.
(HOURS LECTURES/EXERCITATIONS/LABORATORY 5/2/3)

INPUT/OUTPUT IN JAVA.
BYTE VS CHARACTER I/O. I/O PACKAGES AND CLASSES IN JAVA. EXCEPTION FOR I/O MANAGEMENT.
(HOURS LECTURES/EXERCITATIONS/LABORATORY 5/2/3)

CONCURRENT PROGRAMMING IN JAVA.
FUNDAMENTALS OF CONCURRENT AND MULTITHREAD PROGRAMMING. THREAD SYNCHRONIZATION, SHARING OF RESOURCES, PRIORITY MANAGEMENT. MULTITHREAD PROGRAMMING IN JAVA.
(HOURS LECTURES/EXERCITATIONS/LABORATORY 3/2/3)

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.
(HOURS LECTURES/EXERCITATIONS/LABORATORY 3/2/3)
Teaching Methods
THE COURSE CONTAINS THEORETICAL LECTURES, IN-CLASS EXERCITATIONS AND PRACTICAL LABORATORY EXERCITATIONS. DURING THE IN-CLASS EXERCITATIONS BASIC ALGORITHMS TOGETHER WITH THEIR IMPLEMENTATION IN JAVA ARE COMMENTED AND ANALYZED. DURING THE IN-LAB EXERCITATIONS THE STUDENTS ARE REQUIRED TO DEVELOP IN AUTONOMY PROGRAMS PROPOSED BY THE PROFESSOR. IN SOME OF THEM THE STUDENTS ARE ORGANIZED IN SMALL GROUPS (3-4 PEOPLE) FOR JOINTLY SOLVING SIMPLE PROJECTS.
DURING THE COURSE THE STUDENTS ARE PROPOSED TO FACE PRACTICAL EXERCITATIONS, EVALUATED BY THE PROFESSOR (CONTEST). SUCH ACTIVITIES ARE ORGANIZED DURING THE IN-CLASS EXERCITATIONS AND ARE AIMED AT EVALUATING THE PRACTICAL COMPETENCES ACQUIRED BY THE STUDENTS AT THAT TIME. THE CORRESPONDING TESTS ARE EVALUATED AND A SCORE IS ASSIGNED TOGETHER WITH A LIST OF INDICATIONS FOR THE CORRECTION OF THE ERRORS AND THE IMPROVEMENT OF THE PROPOSED SOLUTION.
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 8”, 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
TEACHING IN ITALIAN.
  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2019-05-14]