COMPUTER PROGRAMMING III AND LAB
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
- 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.
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.
The student should be able to know how to independently evaluate the effectiveness and efficiency of a software application in real cases.
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.
Knowledges of the basic programming paradigms and C/C ++ languages
# Introduction to Object Oriented (OO) programming
# First approach to OO programming
# The basics of OO programming
# Basics data types
# Decisions and iterations
# OO programming paradigms
# Abstract classes and interfaces
# Generic Types
# Thread management
# Software Engineering Principles
# UML and Java
# Principles of OO Design
# Design Pattern Principles
# Graphics Interfaces
# Java Database Connectivity
# Web Applications
# 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
# Clean Code, R. C. Martin, Prentice Hall, 2009
Java based project and oral examination