ADVANCED PROGRAMMING

Computer science ADVANCED PROGRAMMING

0512100047
DIPARTIMENTO DI INFORMATICA
EQF6
COMPUTER SCIENCE
2018/2019

YEAR OF COURSE 3
YEAR OF DIDACTIC SYSTEM 2015
SECONDO SEMESTRE
CFUHOURSACTIVITY
648LESSONS
Objectives
KNOWLEDGE AND UNDERSTANDING
THE STUDENT WILL ACQUIRE KNOWLEDGE, SKILLS, AND PRACTICAL EXPERIENCES NEEDED TO DESIGN
AND IMPLEMENT COMPLEX PROGRAMS.
THE STUDENT WILL BE AWARE OF THE ISSUES ARISING IN ADVANCED PROGRAMMING ALONG WITH THEIR SOLUTIONS.

DURING THE INITIAL PART OF THE COURSE THE STUDENT WILL UNDERSTAND THE TECHNOLOGIES (STATE OF THE ART) NEEDED TO DESIGN A COMPLEX PROGRAM. LATER ON, THE STUDENT WILL BE ENCOURAGED TO APPLY THE ACQUIRED KNOWLEDGE IN DESIGNING AND DEVELOPING
A MORE COMPLEX APPLICATION WITH ROBUSTNESS AND EFFICIENCY REQUIREMENTS.

APPLYING KNOWLEDGE AND UNDERSTANDING
AT THE END OF THE COURSE, THE STUDENT WILL BECOME FAMILIAR WITH THE MOST IMPORTANT TECHNOLOGIES OF OBJECT-ORIENTED PROGRAMMING AND FUNCTIONAL PROGRAMMING.
THE STUDENT WILL BE ABLE TO DESIGN AND DEVELOP COMPLEX PROGRAMS,
AND TO VERIFY THEIR CORRECTNESS.

Prerequisites
BASIC KNOWLEDGE OF AN IMPERATIVE PROGRAMMING LANGUAGE AND AN OBJECT ORIENTED PROGRAMMING LANGUAGE.
Contents
CREATIONAL DESIGN PATTERNS (2 HOURS)
STRUCTURAL DESIGN PATTERN (3 HOURS)
BEHAVIORAL DESIGN PATTERNS (3 HOURS)
GENERIC DEFINITIONS (4 HOURS)
ANNOTATIONS (2 HOURS)
REFLECTION (2 HOURS)
MEMORY MANAGEMENT, GARBAGE COLLECTION (4 HOURS)
INPUT-OUTPUT, SERIALIZATION (3 HOURS)
MULTITHREADING (6 HOURS)
EXCEPTIONS, ASSERTIONS (3 HOURS)
FUNCTIONAL PROGRAMMING WITH JAVA: LAMBDA EXPRESSIONS AND FUNCTIONAL INTERFACES (12 HOURS)


Teaching Methods
THE COURSE CONSISTS OF 48 HOURS OF CLASS LECTURES AIMED AT SHOWING CONCEPTS OF ADVANCED PROGRAMMING ALSO THROUGH MANY EXAMPLES OF CODE FRAGMENTS BASED BOTH ON THE PARADIGM OF OBJECT-ORIENTED PROGRAMMING AND ON THE PARADIGM OF FUNCTIONAL PROGRAMMING.
Verification of learning
THE EXAM CONSISTS IN A WRITTEN EXAMINATION AND AN ORAL DISCUSSION OF THE WRITTEN EXAM. THE EXAM IS MAINLY INTENDED TO ASSESS THE LEVEL OF KNOWLEDGE AND UNDERSTANDING OF THE METHODOLOGIES PRESENTED IN CLASS. THE FINAL GRADE IS THE ARITHMETIC AVERAGE OF THE GRADES OF THE WRITTEN EXAM AND THE ORAL DISCUSSION.

Texts
JAVA SE 8 FOR REALLY IMPATIENT, CAY S. HORSTMANN. ADDISON-WESLEY, 2014

JAVA 8 IN ACTION, RAOUL-GABRIEL URMA, MARIO FUSCO. MANNING, 2014

TEACHING MATERIAL MADE AVAILABLE BY THE LECTURER AND MATERIAL TAKEN FROM TEXTBOOKS THAT WILL BE REFERENCED DURING THE LESSONS.
  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2019-10-21]