Go to:
Logótipo
You are in:: Start > CC2001

Algorithm Design and Analysis

Code: CC2001     Acronym: CC2001     Level: 200

Keywords
Classification Keyword
OFICIAL Computer Science

Instance: 2020/2021 - 1S

Active? Yes
Web Page: http://www.dcc.fc.up.pt/~pribeiro/aulas/daa2021/
Responsible unit: Department of Computer Science
Course/CS Responsible: Bachelor in Computer Science

Cycles of Study/Courses

Acronym No. of Students Study Plan Curricular Years Credits UCN Credits ECTS Contact hours Total Time
L:B 1 Official Study Plan 3 - 6 56 162
L:CC 113 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 7 Official Study Plan 2 - 6 56 162
3
L:Q 0 study plan from 2016/17 3 - 6 56 162
MI:ERS 155 Plano Oficial desde ano letivo 2014 2 - 6 56 162

Teaching language

Portuguese

Objectives

To learn techniques for designing and analyzing algorithms.

Learning outcomes and competences

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.

Working method

Presencial

Pre-requirements (prior knowledge) and co-requirements (common knowledge)

Students should know simple algorithms and data structures (for counting, searching and sorting) and a programming language (C/C++ or JAVA).

Program

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.

Mandatory literature

Cormen Thomas H. 070; Introduction to algorithms. ISBN: 9780262033848 hbk
Skiena Steven S.; The algorithm design manual. ISBN: 978-1-84800-069-8
J. Kleinberg, E. Tardos; Algorithm Design, Addison-Wesley, 2005. ISBN: 978-0321295354

Complementary Bibliography

R. Sedgewick and K. Wayne; Algorithms, 4th Edition, Addison-Wesley, 2011. ISBN: 978-0321573513
S. Halim and F. Halim; Competitive Programming, 1st Edition, 2011

Teaching methods and learning activities

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.

Software

Servidor Mooshak para CC2001 (http://mooshak.dcc.fc.up.pt/~daa)
Linguagens de programação/Programming Languages: C, C++ or Java

Evaluation Type

Distributed evaluation with final exam

Assessment Components

designation Weight (%)
Exame 70,00
Teste 25,00
Trabalho prático ou de projeto 5,00
Total: 100,00

Amount of time allocated to each course unit

designation Time (hours)
Frequência das aulas 56,00
Estudo autónomo 66,00
Trabalho laboratorial 40,00
Total: 162,00

Eligibility for exams

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.

Calculation formula of final grade

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

Examinations or Special Assignments

Along the semester there will be two programming tests and there will be lab/homework exercises.

Special assessment (TE, DA, ...)

The pratical component is compulsory for every student, regardless of special status of any kind.

Recommend this page Top
Copyright 1996-2024 © Faculdade de Ciências da Universidade do Porto  I Terms and Conditions  I Acessibility  I Index A-Z  I Guest Book
Page created on: 2024-07-27 at 21:35:08 | Acceptable Use Policy | Data Protection Policy | Complaint Portal