Data Structures
Keywords |
Classification |
Keyword |
OFICIAL |
Computer Science |
Instance: 2017/2018 - 2S
Cycles of Study/Courses
Teaching language
Portuguese
Objectives
It is intended that the student reinforces his programmings skills, gets to know some of the main data structures and associated algorithms and gains basic knowledge on the conception and analysis of algorithms.
Learning outcomes and competences
The main learning goals are:
- Proficiency with the Java language and with the object oriented programming paradigm;
- Knowledge of the main basic data structures: arrays, matrices, linked lists and binary trees;
- Knowledge of the main abstract types of data and their implementations: queues, stacks, sets, dictionaries and priority queues;
- Basic knowledge of algorithmic analsyis and comprehension of the main classes of complexity;
- Enrichment of knowledge about some algorithmic techniques such as recursion, backtracking search and divide-and-conquer;
- Practical experience applied to concrete problems.
Working method
Presencial
Program
- Fundamental Java Concepts:
. Classes, objects, attributes and methods
. Primitive types, Strings, warappers, arrays and and enum types
. Expressions, operators and control flow instructions
. Input/Output and the the Scanner class
. Packages and default libraries of Java
. Principles of software development, style and documentation
- Object Oriented Programming:
. Goals, principles, patterns and inheritance mechanism
. Interfaces and Abstract Data Types (ADTs)
. Using generics and iterators
- Asymptotic Analysis Concepts:
. Basic notions of asymptotic analysis
. Main complexity classes and how to compare them
. Examples of algorithmic analysis
- Algorithm Design Techniques:
. Structures Programming
. Recursion
. Exhaustive search and backtracking
. Divid-and-conquer
- Fundamental Data Structures:
. Arrays and matrices
. Simple linked lists, circular linked lists and doubly linked lists
. Árvores binárias, árvores de pesquisa e heaps
- Abstract Data ypes and their possible Implementations:
. Sequences, stacks, queues and deques
. Associative containers: sets and maps
. Priority queues
Mandatory literature
Goodrich Michael T.;
Data structures and algorithms in Java. ISBN: 0-471-73884-0
Complementary Bibliography
Sedgewick Robert;
Introduction to programming in Java. ISBN: 978-0-321-49805-2
Cormen Thomas H. 070;
Introduction to algorithms. ISBN: 978-0-262-03384-8
Teaching methods and learning activities
Theory classes where the material is explained, including live codigin sessions. Practical classes with programming exercises.
Evaluation Type
Distributed evaluation with final exam
Assessment Components
designation |
Weight (%) |
Exame |
70,00 |
Trabalho laboratorial |
30,00 |
Total: |
100,00 |
Eligibility for exams
Not exceeding the maximum limit of missed practical classes and the online weekly quizzes.
Calculation formula of final grade
- P: practical grade, worth 30% of the final grade, obtained with:
3 practical programming tests in a computer environment (worth 2 points each
Minimum grade: 25% (minimum of 1.5 on a grade from 0 to 6)
- E: exam grade, worth 70% of the final grade, obtained with a written test with a grade from 0 to 20.
"Normal" season classification: C = E*0.7 + P ≥ 9.5
- R: on the "recurso" season, a single exam will be made, with a grade from 0 to 20, and it is not possible to repeat the practical prigramming tests.
"Recurso" season classification: C = R*0.7 + P ≥ 9.5
Examinations or Special Assignments
3 practical programming tests during the semester.