Università degli Studi di Napoli "Parthenope"

Teaching schedule

Academic year: 
2018/2019
Belonging course: 
Course of Bachelor's Degree Programme on COMPUTER SCIENCE
Disciplinary sector: 
INFORMATICS (INF/01)
Language: 
Italian
Credits: 
6
Year of study: 
3
Teachers: 
Cycle: 
First Semester
Hours of front activity: 
48

Language

Italiano

Course description

The course intends to provide advanced concepts for object-oriented programming. It is divided into two main parts:
# Object oriented programming
      - Object Oriented Programming (OOP)
      - Practical Tutorials in Java Language
# Methodologies of analysis and design oriented to
objects
      - Object Oriented Analysis (OOA)
       - Object Oriented Design (OOD)

Knowledge and understanding skills
The student should demonstrate the knowledge and the understanding the basics of the procedural ​and Object Oriented (OO) programming languages. In particular, it should be able to develop and to analyze methodologies and algorithms for both C and C ++ languages. The student should have the ability to understand new Java language-based software development methodologies and techniques.

Application skills
The student should demonstrate his/her acquired knowledge for solving real problems by using the Java language. It also should demonstrate the ability to develop and to analyze algorithms complexity and software validation by using Design Pattern and "Agile" programming principles. The student should be able to use and to choice libraries and software systems for the principal application areas, and in particular for the design and analysis of Web Applications.

Judgment autonomy
The student should be able to know how to independently evaluate the effectiveness and efficiency of a software application in real cases.

Communication skills
The student must be able to write a report and a presentation on a software application made by using Design Patterns, OO programming principles and the Java language. The application is developed on topical issues in computer science and presents moments of group work. For these reasons the student should demonstrate abilties on these themes.

Ability to learn
The student should be able to autonomously deepening Java-specific topics and applications, such as accessing databases and online software repositories, and other modes available from the network. The student should be able to participate in forums for the continuous updating of knowledge in computer science.

Prerequisites

Knowledges of the basic programming paradigms and C/C ++ languages

Syllabus

Further information on the program are available on the e-learning platform.

Short summary
# Introduction to Object Oriented (OO) programming (2 h)
# First approach to OO programming (2 h)
# The basics of OO programming (2 h)
# Basics data types (2 h)
# Decisions and iterations (2 h)
# OO programming paradigms (2 h)
# Inheritance (2 h)
# Abstract classes and interfaces (2 h)
# Polymorphism (2 h)
# Generic Types (2 h)
# Exceptions (2 h)
# Enumeration (2 h)
# Annotations (2 h)
# Thread management (2 h)
# Software Engineering Principles (2 h)
# UML and Java (2 h)
# Principles of OO Design (4 h)
# Design Pattern Principles (4 h)
# I/O (2 h)
# Graphics Interfaces (2 h)
# Java Database Connectivity (2 h)
# Web Applications (2 h)

The course intends to provide advanced concepts for object-oriented programming.

Summary of contents
# Introduction to Object Oriented (OO) programming (2 h)
# First approach to OO programming (2 h)
# The basics of OO programming (2 h)
# Basics data types (2 h)
# Decisions and iterations (2 h)
# OO programming paradigms (2 h)
# Inheritance (2 h)
# Abstract classes and interfaces (2 h)
# Polymorphism (2 h)
# Generic Types (2 h)
# Exceptions (2 h)
# Enumeration (2 h)
# Annotations (2 h)
# Thread management (2 h)
# Software Engineering Principles (2 h)
# UML and Java (2 h)
# Principles of OO Design (4 h)
# Design Pattern Principles (4 h)
# I/O (2 h)
# Graphics Interfaces (2 h)
# Java Database Connectivity (2 h)
# Web Applications (2 h)

Teaching Methods

Lectures of the teacher, lectures of the teacher in a computing laboratory with the support of tutors;
Group exercises in the classroom and in the laboratory under the direction of the teacher aimed at problem solving. Microsoft Teams code - Ciaramella: p3vpsq3

Textbooks

# e-learning material
# Manuale di Java 8: Programmazione orientata agli oggetti con Java standard, 8a edizione, C. De Sio Cesari, Hoepli, 2014
# Concetti di informatica e fondamenti di Java 2, edition 5a edizionze, C. S.
Horstmann, Apogeo, 2010
# Design Patterns: Elements of Reusable Object-Oriented Software, E. Gamma, R. Helm, R. Johnson, J. Vlissides (the GangOfFour), AddisonWesley Professional, 1994
# Design Pattern in Java (manuale pratico), S. J. Metsker, Pearson Addison
Wesley, 2003
# Clean Code, R. C. Martin, Prentice Hall, 2009

Learning assessment

The objective of the verification procedure is quantifing, for each student, the level of achievement of the previously indicated training objectives.
The verification procedure is higlighted precisely in the e-learning platform of the Department of Science and Technology. In summary, the verification procedure consists of an individual project (60% of the overall valutation) and an oral test (40% of the overall valutation). The project must be implemented in Java language with particular attention to the aspects of the Object Oriented Principles (i.e., Agile) and the Design Patterns.

For the positive outcome of the evaluation the positive outcomes of both tests are necessary (project and oral examination).

More information