Programming Focused in Objects

« Return

Objectives

It is intended to provide students with knowledge about the paradigm of object-oriented programming, na introduction to drawing classes through the UML and some knowledge of design patterns, both for development and the applications refactoring.

Students must acquire the following skills: knowledge of object-oriented programming, their advantages, disadvantages and limitations; analyse problems and devise the solution according to the object-oriented paradigm; practice of software production, according to the object-oriented paradigm using the Java programming language, using UML as a modelling language, knowing how to use design patterns and have some mastery of the written unit tests.

The student will be able to design, code and design applications of small and medium scale, using Java.

Program

  1. Introduction to the Java language​
  2. Inheritance, polymorphism, abstract classes and interfaces ​
  3. Java Collections, Parameterized Types, and Enumerations ​
  4. Lambda expressions and streams​
  5. Object-oriented analysis and design with UML​
  6. Introduction to design patterns (GRASP and GoF)​
  7. Error handling and input/output​
  8. Testing, maintenance and debugging (JUnit)

Teaching Methodologies

The theoretical classes are expository in which elementary programming concepts are presented using examples and demonstrations, using the UML notation language and the Java programming language.

The laboratory practical classes work in conjunction with the theoretical classes and are completed by the exposition and resolution of problems, of small and medium scale, with analysis, design and implementation of solutions, using the Java language.

Students develop a project that is the unifying element of the contents learned throughout the course, which allows them to analyze, design and implement an application that characterizes a situation close to reality, and to acquire autonomous and teamwork skills.

UAc's e-Learning Moodle platform (at http://moodle.uac.pt) is used as a repository of pedagogical and didactic material to support learning, as well as a platform for scheduling, disseminating and promoting complementary activities and management of the assessment elements.

Bibliography

Essential

  • F. Mário Martins, Java 8 - POO + Construções Funcionais, FCA, 2017.
  • C. Larman, P. Liguori, Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition). Prentice Hall

Complementary

  • David J. Barnes, Michael Kölling, Objects First with Java A Practical Introduction using BlueJ, 6th edition, Pearson Education, 2016.​
  • F. Mário Martins. Projetos de POO em Java. FCA, 2014​
  • Eric Freeman, Elisabeth Freeman, Kathy Sierra, Bert Bates, Head First Design Patterns, O'Reilly, 2004
  • B.Garcia. Mastering Software Testing with JUnit 5: Comprehensive guide to develop high quality Java applications, Packt Publishing, 2017

Code

0105886

ECTS Credits

6

Classes

  • Práticas e Laboratórios - 30 hours
  • Teóricas - 30 hours