PROGRAMMING II

Computer science PROGRAMMING II

0512100010
DIPARTIMENTO DI INFORMATICA
COMPUTER SCIENCE
2013/2014



OBBLIGATORIO
YEAR OF COURSE 2
YEAR OF DIDACTIC SYSTEM 2008
PRIMO SEMESTRE
CFUHOURSACTIVITY
648LESSONS
336LAB
012OTHER


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.
KNOWLEDGE OF THE MAIN CLASSES OF THEJDK 7.
KNOWLEDGE OF THE THEORETICAL FOUNDATIONS OF THE POLYMORPHISM AND THE INHERITANCE MECHANISM.
KNOWLEDGE OF THE CONCEPTS OF ABSTRACT CLASSES, INTERFACES THE MECHANISM OF EXCEPTION HANDLING. RUDIMENTS OF GRAPHICS AND PROGRAMMING WITH EVENTS IN JAVA. REALIZATION AND USE OF PROGRAMS DOCUMENTATION.
-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.
-MAKING JUDGEMENTS:
DISCUSSION ABOUT THE PROS AND THE CONS OF THE STUDIED TECHNIQUES AND SOLUTIONS.
ANALYSIS OF THE DEVELOPED PROJECTS.
-COMMUNICATION SKILLS:
PARTICIPATION TO THE DESIGN A SOLUTION FOR THE PROPOSED PROBLEMS. PRESENTATION AND DISCUSSION OF THE DETERMINED SOLUTIONS.
-LEARNING SKILLS:
INDIVIDUAL USE OF THE DOCUMENTATION OF THE JAVA LIBRARIES. SEARCHING EXISTING CLASSES AND DETERMINING NEW METHODS TO SOLVING THE GIVEN PROBLEMS.
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, ...). ABILITY TO INSTALL SOFTWARE.
Contents
INTRODUCTION TO OBJECT-ORIENTED PROGRAMMING, CONCEPTS OF DATA ABSTRACTION AND ENCAPSULATION. INTRODUCTION TO JAVA AND THE BUILD PROCESS. INTRODUCTION TO PROGRAMMING TOOLKIT JDK 7. 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, THE INPUT DIALOG BOX. LEARN HOW TO ACQUIRE INPUT FROM THE CONSOLE; KNOW THE CHAR DATA TYPE; KNOW HOW TO GET INPUT FROM FILE. FILES AND STREAMS. READ AND WRITE TEXT FILES, BINARY AND TEXT FORMAT.
USING ARRAYS IN JAVA. REMIND OF THE CONTROL CONSTRUCTS. THE COLLECTIONS IN JAVA: ACQUIRE FAMILIARITY WITH THE USE OF VECTORS (ARRAY LISTS) AS COLLECTORS OF OBJECTS; UNDERSTAND WHEN USE APPROPRIATE VECTORS AND ARRAYS IN OUR PROGRAMS; WRAPPER CLASSES. NOTES ON GENERIC TYPES, ENUMERATED TYPES AND MECHANISMS OF 'AUTOBOXING' AND 'UNBOXING'.
DESIGNING CLASSES. LEARN HOW TO CHOOSE APPROPRIATE CLASSES TO IMPLEMENT, UNDERSTANDING THE CONCEPTS OF COHESION AND COUPLING; MINIMIZE THE SIDE EFFECTS, UNDERSTAND THE DIFFERENCE BETWEEN STATIC METHODS AND INSTANCE METHODS, UNDERSTAND THE SCOPE OF LOCAL VARIABLES AND INSTANCE VARIABLES; CALL BY VALUE AND CALL BY REFERENCE; DOCUMENT THE RESPONSIBILITIES OF METHODS AND THEIR CALLERS WITH PRECONDITIONS AND POSTCONDITIONS. OUTLINE ON HOW TO USE CRC CARDS IN THE DESIGN OF THE CLASSES. PACKAGES.
INTERFACES AND POLYMORPHISM. LEARN WHAT ARE THE INTERFACES; BE ABLE TO CONVERT CLASS REFERENCES TO INTERFACES REFERENCES; UNDERSTAND THE CONCEPT OF POLYMORPHISM; APPRECIATE HOW INTERFACES CAN BE USED TO REDUCE THE COUPLING BETWEEN THE CLASSES; INNER CLASSES.
INHERITANCE AND REUSE. UNDERSTANDING THE INHERITANCE RELATIONSHIP BETWEEN CLASSES; REWRITING METHODS, REDEFINE FIELDS, THE TYPE CONVERSION BETWEEN SUBCLASS AND SUPERCLASS. POLYMORPHISM AND DYNAMIC BINDING, ABSTRACT CLASSES, ACCESS CONTROL AND THE UNIVERSAL SUPERCLASS OBJECT.
EXCEPTION HANDLING MECHANISM. LEARN WHAT ARE THE CONTROLLED AND UNCONTROLLED EXCEPTIONS AND THE TRY-CATCH-FINALLY CYCLE, DESIGN EXCEPTIONS.
TESTING: CHECKING THE BEHAVIOR OF OBJECTS, CHOICE OF TEST CASES, INTEGRATION OF CLASSES.
GRAPHICAL PROGRAMMING AND APPLETS. INTRODUCTION TO APPLETS AND GRAPHICS PROGRAMMING: MANAGEMENT OF DESIGN, COLORS AND FONT, USE OF COMPONENTS FOR INPUT; PRIMITIVES FOR THE MANAGEMENT OF THE GRAPHICS CONTEXT, CUSTOM PANELS, LAYOUT MANAGEMENT, MANAGEMENT THE MAIN SWING COMPONENTS. PROGRAM EVENTS: UNDERSTANDING THE EVENT MODEL OF JAVA INSTALLED (OR RECORD) LISTENER OR MOUSE ACTIONS.
Teaching Methods
THE LECTURES ON THE THEORETICAL ASPECTS OF THE COURSE TOPICS ARE HELD IN A STANDARD CLASSROOM, 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. 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
STUDENTS ARE ASKED TO PASS A FINAL EXAM WHICH 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, BIG JAVA: COMPATIBLE WITH JAVA 5, 6 AND 7, 4TH EDITION, WILEY.
More Information
DO ALL THE ASSIGNMENTS AND ATTEND THE COURSE IS HIGHLY RECOMMENDED. A GOOD PREPARATION TAKES ABOUT TWO HOURS OF STUDY FOR EACH HOUR SPENT IN THE CLASSROOM. FOR THIS SUBJECT IT'S STRICTLY RECOMMENDED ACQUIRE ADEQUATE SKILLS WITH JAVA LANGUAGE PROGRAMMING AND WITH A INTEGRATED DEVELOPMENT ENVIRONMENT. THIS REQUIRES A WEEKLY COMMITMENT OF ABOUT 3 HOURS, IN ADDITION TO THE NORMAL ACTIVITIES OF THE LABORATORY, FOR THE ENTIRE DURATION OF THE COURSE.
  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2016-09-30]