Advanced Programming
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Informática |
Ocorrência: 2022/2023 - 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 |
176 |
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 |
50,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 |
Total: |
145,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
1. The approval of the Laboratory Practice component is a requirement for approval in the course.
2. Regardless of whether the student chooses to be assessed by exam or by continuous assessment, it is ABSOLUTELY MANDATORY that students enroll in the assessment tests PRIOR TO THE SETTLEMENT DEADLINES. Registration is done through the moodle platform.
Students who are not registered within the deadlines previously established will be denied access to the respective exam.
Fórmula de cálculo da classificação final
Final mark = 50% I+ 50% G
Continued
I = 0,20 Quiz(s) (Q) + 0,25 Quiz (MT) + 0,55 Test (T)
G = 0,15 Labs assessed (L) + 0,7 Project (P) + 0,15* Video (V)
Exam
I = 100% Examination
G = 100% Project
Rule 1 - Each component (I and G) has a minimum mark of 9.5 points
Rule 2 - The minimum grade for the continuous assessment is 7.5
Rule 3 - Each Quiz is marked out of 20. 20 marks. The grade for the Quiz component is the arithmetic mean of the 5 Quizzes.
Rule 4 - The Lab grade is the arithmetic average of the 4 Labs evaluated. The Lab grades will only be valid if the student has not skipped any of the tutorial labs (only two skips are allowed).
Rule 5 - The Labs, the Project, and the video are group works.
Avaliação especial (TE, DA, ...)
The students who are covered by the TE regime, do not have to attend laboratory classes. The Group work component will be calculated with the following formula
G = 0,85 Project + 0,15*Video
Observações
Content and registration for tests available on the
moodle platform