OO PROGRAMMING

Computer science OO PROGRAMMING

0512100053
DIPARTIMENTO DI INFORMATICA
EQF6
COMPUTER SCIENCE
2017/2018



OBBLIGATORIO
YEAR OF COURSE 2
YEAR OF DIDACTIC SYSTEM 2015
PRIMO SEMESTRE
CFUHOURSACTIVITY
756LESSONS
330LAB


Objectives
KNOWLEDGE AND UNDERSTANDING
• ACQUISITION OF BASIC SKILLS FOR THE OBJECT-ORIENTED DESIGN THROUGH THE UNDERSTANDING OF DATA ABSTRACTION CONCEPT, ENCAPSULATION, COHESION, COUPLING, AND CODE REUSE
• UNDERSTANDING THE DIFFERENCES BETWEEN THE PROCEDURAL PARADIGM PROGRAMMING AND OBJECT ORIENTED PROGRAMMING
• LEARNING THE JAVA PROGRAMMING LANGUAGE USING JAVA FOR THE DEFINITION OF CLASSES AND FOR SOFTWARE REUSING

APPLYING KNOWLEDGE AND UNDERSTANDING
• ABILITY OF PERFORMING PROBLEM ANALYSIS, REQUIREMENTS SPECIFICATION AND PROBLEM SOLVING IN THE OBJECT-ORIENTED PARADIGM, WITH IMPLEMENTATION IN THE JAVA LANGUAGE, BY GUARANTEEING A RIGHT BALANCE BETWEEN QUALITY AND EFFICIENCY OF THE RESULTING SOFTWARE
• DEVELOPMENT OF PROJECTS WITH INDIVIDUAL AND GROUP ACTIVITIES
Prerequisites
GOOD SKILLS OF C LANGUAGE PROGRAMMING TECHNIQUES, PROCEDURAL PROGRAMMING PARADIGM AND GOOD KNOWLEDGE OF THE ISSUES RELATED TO CODING SIMPLE ALGORITHMS. BASIC KNOWLEDGE AND FAMILIARITY WITH AN OPERATING SYSTEM (WINDOWS, LINUX, ...).
Contents
AFTER INTRODUCING OBJECT-ORIENTED PROGRAMMING, ALSO HIGHLIGHTING THE MAIN DIFFERENCES WITH OTHER PARADIGMS, THE COURSE WILL FOCUS ON THE FOLLOWING TOPICS:
•OBJECT-ORIENTED PROGRAMMING, CONCEPTS OF DATA ABSTRACTION AND ENCAPSULATION.
•INTRODUCTION TO JAVA AND THE BUILD PROCESS
•INTRODUCTION TO PROGRAMMING TOOLKIT JDK 8
•OBJECTS, VARIABLES, REFERENCES, CLASSES AND METHODS, COMMUNICATION BETWEEN OBJECTS, PARAMETERS EXPLICIT AND IMPLICIT, THE "THIS" REFERENCE
•FUNDAMENTAL DATA TYPES. ARITHMETIC AND MATHEMATICAL FUNCTIONS
•INVOCATION OF STATIC METHODS
•THE STRING CLASS
•FILES AND STREAMS. READ AND WRITE TEXT FILES, BINARY AND TEXT FORMAT
•REMIND OF THE CONTROL CONSTRUCTS
•THE JAVA COLLECTIONS
•NOTES ON GENERIC TYPES, ENUMERATED TYPES AND MECHANISMS OF 'AUTOBOXING' AND 'UNBOXING'. GENERIC FOR (FOR EACH)
•DESIGNING CLASSES. UNDERSTANDING THE CONCEPTS OF COHESION AND COUPLING
•INTERFACES AND POLYMORPHISM
•INHERITANCE AND REUSE
•EXCEPTION HANDLING MECHANISM
•TESTING: CHECKING THE BEHAVIOR OF OBJECTS, CHOICE OF TEST CASES, INTEGRATION OF CLASSES. DEBUGGING
•LAMBDA EXPRESSIONS TO DEFINE ANONYMOUS FUNCTIONS
•GRAPHICAL PROGRAMMING
•PROGRAM EVENTS
Teaching Methods
THE LECTURES ON THE THEORETICAL ASPECTS OF THE COURSE TOPICS ARE HELD IN A STANDARD CLASSROOM (7 CFUS, 56 HOURS)), BY USING POWERPOINT PRESENTATIONS OR SIMILAR. ON EACH TOPIC, THE STUDENTS ARE INVOLVED IN AN ACCURATE DISCUSSION AND, WHERE APPROPRIATE, COMPARISONS WITH ALTERNATIVE SOLUTIONS ARE DONE.
THE LECTURES ON THE PRACTICAL ASPECTS ARE HELD IN A PC LABORATORY WHERE EACH STUDENT CAN DIRECTLY EXPERIMENT ON A MACHINE THE TECHNIQUES AND THE CONCEPTS PRESENTED IN THE CLASSROOM (3 CFUS, 30 HOURS). THE FOLLOWED APPROACH IS TO ASSIGN AN EXERCISE AND ANALYZE IT TOGETHER, THEN LEAVE A SHORT PERIOD OF TIME TO COME UP WITH AN INDIVIDUAL SOLUTION, THEN DISCUSS THE SOLUTIONS TOGETHER AND THEN LET EACH ONE INDIVIDUALLY IMPLEMENT THE PROGRAM.
HOMEWORKS, CONSISTING IN SOFTWARE DEVELOPMENT PROJECTS, CAN BE ALSO ASSIGNED.
Verification of learning

TO REACH THE OBJECTIVE OF THE COURSE STUDENTS ARE ASKED TO PASS A FINAL EXAM (SCORE IN THE RANGE [1..30]) THAT IS COMPOSED OF A PRACTICE TEST AND AN ORAL DISCUSSION. A TYPICAL PRACTICE TEST REQUIRES TO SOLVE PROGRAMMING EXERCISES AND TO IMPLEMENT THEM IN JAVA ON A PC BY USING THE SOFTWARE DEVELOPMENT ENVIRONMENT LEARNT AT THE LECTURES.
THE ORAL DISCUSSION CONSISTS OF AN INTERVIEW ON THE SOFTWARE PROJECTS AND THE TOPICS COVERED AT THE LECTURES, AND THE ANALYSIS OF THE EXERCISES FROM THE PRACTICE TEST.
THE ABILITY OF APPROPRIATELY APPLYING THE STUDIED OBJECT-ORIENTED PROGRAMMING TECHNIQUES, IMPLEMENTING CORRECT PROGRAMS, AND IDENTIFYING THE MAIN ASPECTS OF THE PROPOSED ISSUES, AND MOREOVER, THE UNDERSTANDING OF THE TECHNICAL DETAILS AND THE PRACTICAL CONSEQUENCES, AND THE CLARITY OF PRESENTATION ARE POSITIVELY EVALUATED.
Texts
CAY S. HORSTMANN, JAVA CONCEPTS. EARLY OBJECTS, 8TH EDITION, WILEY.
More Information
IT IS HIGHLY RECOMMENDED TO COMPLETE ALL THE ASSIGNMENTS AND ATTEND ALL THE LECTURES (INCLUDING THE LABORATORY PRACTICE). A GOOD PREPARATION TAKES ABOUT TWO HOURS OF INDIVIDUAL STUDY FOR EACH HOUR AT THE LECTURES AND THREE ADDITIONAL HOURS PER WEEK OF INDIVIDUAL PRACTICE WITH THE JAVA LANGUAGE PROGRAMMING AND THE USE OF AN INTEGRATED DEVELOPMENT ENVIRONMENT.
  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2019-05-14]