Code: | CC2001 | Acronym: | CC2001 | Level: | 200 |
Keywords | |
---|---|
Classification | Keyword |
OFICIAL | Computer Science |
Active? | Yes |
Web Page: | http://www.dcc.fc.up.pt/~pribeiro/aulas/daa2223/ |
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 | study plan from 2021/22 | 2 | - | 6 | 56 | 162 |
L:F | 7 | Official Study Plan | 3 | - | 6 | 56 | 162 |
L:G | 0 | study plan from 2017/18 | 2 | - | 6 | 56 | 162 |
3 | |||||||
L:IACD | 57 | study plan from 2021/22 | 2 | - | 6 | 56 | 162 |
L:M | 10 | Official Study Plan | 2 | - | 6 | 56 | 162 |
3 | |||||||
L:MA | 0 | Official Study Plan | 3 | - | 6 | 56 | 162 |
L:Q | 0 | study plan from 2016/17 | 3 | - | 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. Extra-class quizzes for consolidating the exposed material.
designation | Weight (%) |
---|---|
Exame | 70,00 |
Teste | 25,00 |
Trabalho prático ou de projeto | 5,00 |
Total: | 100,00 |
designation | Time (hours) |
---|---|
Frequência das aulas | 56,00 |
Estudo autónomo | 66,00 |
Trabalho laboratorial | 40,00 |
Total: | 162,00 |
Students should fill out at least 50% of the weekly quizzes and should not have a grade lower or equal than 1.5 (25% out of six) in the practical evaluation.
P: practical grade, worth 30% of the final grade. Obtained with 3 components: 2 practical tests (2.5 points each) and continuous evaluation solving exercises during the semester (1 point). Required P>=1.5.
EN: "normal" exam grade, worth 70% of the final grade, obtained with a written exam with a grade from 0 to 20.
ER: in the appeals phase there will be a single exam, with grade from 0 to 20.
Final grade (normal) : C = EN*0.7 + P >= 9.5
Final grade (appeals) : C = ER*0.7 + P >= 9.5
Along the semester there will be two programming tests and there will be lab/homework exercises.
The pratical component is compulsory for every student, regardless of special status of any kind.