Object Oriented Programming
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Informática |
Ocorrência: 2021/2022 - 2S
Ciclos de Estudo/Cursos
Sigla |
Nº de Estudantes |
Plano de Estudos |
Anos Curriculares |
Créditos UCN |
Créditos ECTS |
Horas de Contacto |
Horas Totais |
INF |
196 |
Plano de Estudos |
1 |
- |
6 |
75 |
162 |
Docência - Responsabilidades
Língua de trabalho
Portuguese
Objetivos
- Understand and apply advanced concepts of object oriented programming.
- Apply those concepts using the Java programming language.
- Know how to design application solutions according to the object-oriented paradigm.
Resultados de aprendizagem e competências
At the end of the course, the student should know how to analyze a problem, model a solution using simple techniques, write unit tests of the proposed solution and implement the solution. This solution must integrate advanced concepts of object-oriented programming and different Java collections.
Modo de trabalho
Presencial
Pré-requisitos (conhecimentos prévios) e co-requisitos (conhecimentos simultâneos)
Basic programming skills and, in particular, object-oriented programming. It is necessary to know the following concepts: classes, objects, attributes, methods, class composition and basic collections.
Programa
1. Advanced Concepts of Object Oriented Programming- Review of Object Oriented Programming basic concepts.
- Class inheritance. Class hierarchy and constructors in inheritance. Method overriding.
- Hierarchical class libraries and fundamental base classes.
- Principle of substitution and polymorphism. Static and dynamic binding.
- Abstract classes. Abstract methods.
- Interfaces. Hierarchy of interfaces.
- Generic and complementary concepts of collections.
- Handling errors and exceptions.
- Input and output data. Serialization.
- Design of applications.
- Test Driven development with unit testing
- Version management
2. Application of Object Oriented Programming advanced concepts.- Introduction to design patterns.
- Introduction to graphic interfaces using JavaFX.
- Event programming. Properties
- Basic and advanced controls.
- Windows and Forms
- Effects and animations
Bibliografia Obrigatória
David Barnes & Michael Kölling; Objects First with Java (6th Edition), Pearson Education Limited, 2016. ISBN: 9781292159089
F. Mário Martins; JAVA 8 - POO + Construções Funcionais, FCA, 2017. ISBN: 978-972-722-838-6
Bibliografia Complementar
Carl DeaGerrit GrunwaldJosé PeredaSean PhillipsMark Heckler; JavaFX 9 by Example, APress, 2019. ISBN: 978-1-4842-1961-4
https://openjfx.io/openjfx-docs/; Getting Started with JavaFX (https://openjfx.io/openjfx-docs/)
Métodos de ensino e atividades de aprendizagem
Theoretical-practical classesTheoretical-practical classes use a mix of expository method, using slides, and the blackboard for demonstration and examples of concepts related to the understanding of the essential elements of the new programming paradigm, the fundamental concepts of object-oriented programming and the definition of models of reality.
During the class period, the teacher will be available to answer questions.
Once a month, tests will be made available on the subject taught the weeks before so that students can make formative assessments.
Laboratory classesIn Laboratory classes we intend to apply the fundamental concepts of object-oriented programming using the studied programming language so that students develops the ability to analyze problems and build their solutions using the OO programming paradigm.
Lab classes use an agile software development technique – called pair programming – to allow students to develop teamwork skills and use data from technical and scientific literature.
Practical projectsTwo practical projects promote the systematization, by the student, of knowledge acquired in order to correctly structure and develop efficient, robust, reusable and modular code, using the object-oriented paradigm.
It is intended that the students preferentially use the continuous evaluation system, whose components aim at keeping them in permanent contact with the course instructors. It also aims at distributing the effort and assimilation of knowledge throughout the semester.
The laboratory component and the project, with problem solving and team implementation of the solution found, are the components that contribute most to the development of students' teamwork capacity
Software
BlueJ
GitHub Desktop
Apache NetBeans
Palavras Chave
Physical sciences > Computer science > Programming
Technological sciences > Technology > Computer technology > Software technology
Tipo de avaliação
Distributed evaluation with final exam
Componentes de Avaliação
Designation |
Peso (%) |
Apresentação/discussão de um trabalho científico |
50,00 |
Teste |
40,00 |
Trabalho laboratorial |
10,00 |
Total: |
100,00 |
Componentes de Ocupação
Designation |
Tempo (Horas) |
Elaboração de projeto |
50,00 |
Estudo autónomo |
43,00 |
Frequência das aulas |
75,00 |
Total: |
168,00 |
Obtenção de frequência
The assessment consists of two components: Practical and Theoretical
Assessment of the Practical component:
- Two Java programming projects (min.7.5 values in each project, 9.5 average values for the two projects)
Assessment of the Theoretical component:
- Laboratory work (11 evaluated, completion of by the 9 labs to be considered for the grade)
- 3 mini tests in Theoretical classes (min.7.5 values in each one, min. 9.5 average values of the three mini tests)
- 1 Theoretical test (min.9.5 values)
- Exam (min.9.5 values) only at the time of first call and appeal period
Fórmula de cálculo da classificação final
Fisrt call (with the possibility of incorporating a continuous assessment component):
Practical Component
- 70% Project1 + 30%Project2;
Theoretical Component
- By Tests: Best of the following possibilities:
- 20% Average of the evaluated laboratories + 20% Average of the 3 minitests + 60% test score.
- If there are not 9 labs completed: 30% Average of 3 mini tests + 70% test score.
- If there are not 3 mini-tests: 20% Average of the evaluated laboratories + 80% test score.
- By Exam: Exam Score.
Final grade: 50% Practical + 50% Theoretical
Second call and Special term (with no possibility of incorporating a continuous assessment component):
In case of use, in the Normal Season, of one of the Components, Practical or Theoretical, it will be reused.
- Practical Component (if this component was not used in the Normal Season), both projects must be delivered in the Resource/Worker-Student Season.
- Theoretical Component (if this component was not used in the Normal Season, the exam must be carried out in the Resource/Worker-Student Season). Labs and mini tests are not considered at these evaluation times.
Final grade: 50% Practical + 50% Theoretical
Melhoria de classificação
Grade improvements require registration and respective payment at the Academic Division. Tests will not be improved in the 1st Call Exam. Only the theoretical component can be improved.