Code: | CC2001 | Acronym: | CC2001 | Level: | 200 |
Keywords | |
---|---|
Classification | Keyword |
OFICIAL | Computer Science |
Active? | Yes |
Web Page: | http://www.dcc.fc.up.pt/~apt/aulas/DAA/1718 |
Responsible unit: | Department of Computer Science |
Course/CS Responsible: | Bachelor in Computer Science |
Acronym | No. of Students | Study Plan | Curricular Years | Credits UCN | Credits ECTS | Contact hours | Total Time |
---|---|---|---|---|---|---|---|
L:B | 0 | Official Study Plan | 3 | - | 6 | 56 | 162 |
L:CC | 67 | Plano de estudos a partir de 2014 | 2 | - | 6 | 56 | 162 |
L:F | 1 | Official Study Plan | 2 | - | 6 | 56 | 162 |
3 | |||||||
L:G | 0 | study plan from 2017/18 | 2 | - | 6 | 56 | 162 |
3 | |||||||
L:M | 8 | Official Study Plan | 2 | - | 6 | 56 | 162 |
3 | |||||||
L:Q | 0 | study plan from 2016/17 | 3 | - | 6 | 56 | 162 |
MI:ERS | 113 | Plano Oficial desde ano letivo 2014 | 2 | - | 6 | 56 | 162 |
To learn techniques for designing and analyzing algorithms.
Improving background on generic models of common problems and the algorithmic techniques for solving them. Practical experience in applying generic algorithms to specific problems. Competence in the asymptotic analysis of the running time of algorithms.
Students should know simple algorithms and data structures (for counting, searching and sorting) and a programming language (C/C++ or JAVA).
Asymptotic analysis of algorithms: Big O notation (O, Ω e Θ), estimating execution time, analyzing iterative and recursive programs;
Sorting: sorting as basic element of other algorithms; comparative and non comparative algorithms, binary search and direct and indirect applications;
Algorithm design techniques: exhaustive search, greedy algorithms, divide and conquer, dynamic programming;
Some specialized data structures: priority queues, disjoint sets;
Balanced Binary Search Trees: AVL Trees, Red-Black trees;
Graph algorithms: graph representation, depth-first search, breadth-first search, minimum spanning trees, minimum distances, maximum flow.
Regular lectures for exposing the program topics and discussing examples. Laboratory classes for solving exercise sheets and programming problems for implementation, with automatic feedback and evaluation by the Mooshak system.
designation | Weight (%) |
---|---|
Exame | 85,00 |
Trabalho laboratorial | 15,00 |
Total: | 100,00 |
designation | Time (hours) |
---|---|
Frequência das aulas | 0,00 |
Total: | 0,00 |
Students must attend at least 75% of the pratical classes to be admitted to the exams. Students who miss more than four classes cannot attend the exams. In addition, the student must have at least grade 1 (out of 3) in the practical test.
NP: practical grade, worth 15% of the final grade: 1 practical test. Required grade 1 (out of 3).
NT: If it fits in with the academic calendar for 2017/2018, there will be two optional tests during the semester (TE1, TE2). To attend TE2, it is required a minimum grade of 8.0/20.0 in TE1. The second test covers all topics. A minimum grade of 8.0/20.0 is required also.
NT = max(0.4*TE1+0.6*TE2, TE2, FinalExam)
The final grade is given by
NP + 0.85*NT (required at least 9.5 out of 20)
Students do not need to take the final exam if max(0.4*TE1+0.6*TE2, TE2) >= 8.
Academic integrity violations: the regulations from FCUP/University of Porto will be applied.
Along the semester there will be two written tests (if that fits the academic calendar 2017/2018), one programming test. The written tests and exams consist of generic questions plus questions about problems seen in the theoretical and laboratory classes. The programming test is mandatory and consist in the submission, using the Mooshak system, of solutions to problems similar to those seen in the laboratory classes.
The pratical component is compulsory for every student, regardless of special status of any kind.
Students approved in 2016/2017, who wish to improve their grade, must take the practical test and the theoretical exam.