Advanced Programming
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Informática |
Ocorrência: 2023/2024 - 1S
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 |
186 |
Plano de Estudos |
2 |
- |
6 |
75 |
162 |
Docência - Responsabilidades
Língua de trabalho
Portuguese
Obs.: Nenhumas
Objetivos
Develop in the student advanced object-oriented programming skills, more specifically:
- Specification and Manipulation of Abstract Data Types of non-linear collections
- Identification, selection and implementation of Software Patterns
- Application of Refactoring Techniques
Resultados de aprendizagem e competências
At the end of the UC the student should be able to:
1- implement non-linear Abstract Data Types (TADs): Trees and Graphs
2 - use non-linear Abstract Data Types (TADs): Trees and Graphs, in the resolution of concrete problems.
3 - recognize the existence of Software Patterns, in the design of applications
4 - select the Software Pattern best suited to a given problem.
5 - implement in JAVA the Software Patterns, starting from its specification.
6 - identify "Bad smells" in code.
7 - apply Refactoring techniques, to improve the internal structure of the code.
8 - use the JUnit API to build unit tests.
9 - apply and use TADs, Software Patterns and refactoring techniques to build robust and scalable software applications in JAVA
Modo de trabalho
Presencial
Pré-requisitos (conhecimentos prévios) e co-requisitos (conhecimentos simultâneos)
The student must dominate the object oriented programming paradigm
The student must be able to master the basic aspects of the JAVA programming paradigm
The student must be able to master the basic principles of algorithmics
The student must have knowledge of the TAD concept, and of the implementation of linear collections (List,Stack, Queue)
Programa
1 - Abstract Data Types (ADTs)
1.1 Introduction to ADTs implementation in JAVA
1.2 Trees : Data structure of type Tree and ADT Tree
1.3 Graphs: ADT Graph
2 - Software Standards
2.1 Design Patterns
2.3 Architecture Patterns
3 - Refactoring
3.1 Bad Smells
3.2 Refactoring Techniques
Bibliografia Obrigatória
António Adrego; Estruturas de Dados e Algoritmos em Java,, FCA, 2011. ISBN: 978-972-722-704-4
Eric Freeman ,Elisabeth Robson, Bert Bates, Kathy Sierra; Head First Design Patterns, OREILLY, 2004. ISBN: ISBN 9780596007126
Martin Fowler; Refactoring: Improving the Design of Existing Code, 2002. ISBN: 978-0201485677
Bibliografia Complementar
Michael T. Goodrich, Roberto Tamassia;; Data Structure and Algorithms in Java, John Wiley & Sons, 2001. ISBN: 0-471-38367-8 (English bibliographie)
Métodos de ensino e atividades de aprendizagem
Theoretical lessons: This type ofclass will be taught remotely, by video conference on the Zoom platform. They resort to the resolution of problematic situations using computational media, in order to introduce the various techniques of advanced programming that make up the program content of the course.
Laboratory classes: the resolution of exercises in a more autonomous way, in a development environment.
Elaboration of practical work throughout the semester, integrating the various techniques taught.
Software
JDK 8.0
IntelliJ (IDE)
Tipo de avaliação
Distributed evaluation without final exam
Componentes de Avaliação
Designation |
Peso (%) |
Teste |
50,00 |
Trabalho laboratorial |
40,00 |
Apresentação/discussão de um trabalho científico |
10,00 |
Total: |
100,00 |
Componentes de Ocupação
Designation |
Tempo (Horas) |
Elaboração de projeto |
35,00 |
Estudo autónomo |
35,00 |
Frequência das aulas |
75,00 |
Trabalho de investigação |
10,00 |
Total: |
155,00 |
Obtenção de frequência
The student can choose between continuous assessment or by examination. In both cases they will have to develop a computer program that will be defended in oral discussion.
1. If you wish to be assessed by examination, you will still have to take an examination in the regular season or in the appeal season, and to pass you will have to have a mark of 9.5 val. or higher in any of the examinations.
2. If you choose continuous assessment (besides the practical work) the student will take 1 mini-test, 4 assessed labs (face-to-face), a test, a video and 5 formative assessment quizzes. If the student is not approved in the continuous regime, he/she will have to take the exam in the regular or appeal season.
T
IMPORTANT NOTES
- Regardless of whether the student chooses to be assessed by exam or continuous assessment, it is ABSOLUTELY MANDATORY to register in advance for the assessment tests WITHIN THE ESTABLISHED DEADLINES. Registration takes place via the moodle platform.
- Students who are not registered within the previously established deadlines will be denied access to the respective test.
- To access the continuous assessment you must have attended 17 TP classes and 10 Lab classes.
Fórmula de cálculo da classificação final
Assessment Continuous Mode
|
Value |
Minimum |
Quizs (10 x 0.15) |
1.5 |
|
Test |
6.5 |
2.5 |
MiniTest |
2 |
0.75 |
Research Topic |
2 |
|
Labs (5 x 0.5) |
2.5 |
|
Laboratorial Project |
5.5 |
2.5 |
Total |
20 |
|
* The Test or MT grade can be recovered on the 1st Exam date
* The laboratory project can be retaken at the exam time by carrying out a separate project.
Assessment Exam Mode (arithmetic mean of the two components)
- Laboratory Project (minimum grade 9.5)
- Exam (minimum grade 9.5)
Avaliação especial (TE, DA, ...)
The students who are covered by the TE regime, do not have to attend classes.
Observações
Content and registration for tests available on the
moodle platform