|Department of Informatics Engineering
|Master in Informatics and Computing Engineering
|No. of Students
|Syllabus since 2009/2010
This course unit aims to follow up and deepen the knowledge acquired in previous modules such as “Programming” and “Algorithms and Data Structures”, namely by introducing techniques for devising and implementing efficient algorithms to solve different classes of problems, as well as for analysing and assessing them.
More specifically, it is intended to allow students to:
In the end of this course unit, it is expectable that students will be able to:
It is desirable and necessary that students have fundamental knowledge on object-oriented programming, data structures and abstract data types. It is recommended that students had attended the following modules: EIC0012 - Programming; EIC0013 - Algorithms and Data Structures
Other links and support material will be made available on the Web site of this course unit.
PERCENTUAL DISTRIBUTION 60% Theory: to introduce the various concepts and application examples of algorithms design techniques, graphs, strings and file algorithms, NP-completeness and related problems 40% Practice: laboratory hands-on practice, in which students are expected to do practical exercises on topics presented in theory classes.
Theory classes are structured so as to give students a formal exposition of the subject, together with discussions on examples and their solutions. Lab classes are intended to provide students with tools and hands-on practice exercises to practice algorithms development and their implementation in C++ to test the devised solutions. Students will also be assigned course works to be carried out in groups (at a maximum of two students). Although these projects are meant to be carried out in groups, assessment and marks will account for individual performance of students within their groups.
|Defesa pública de dissertação, de relatório de projeto ou estágio, ou de tese
|Elaboração de projeto
|Frequência das aulas
To succeed in this course unit throughout the term:
Students that have attended this course unit of "Algorithms Design and Analysis" during the previous academic year and have succeed in the course unit’s assignments, are eligible not to attend lab classes, needing only to do the final exam (FE) to be assessed. However, if the student is willing to improve his/her mark of course assignments, then he/she is required to attend lab classes again.
The final assessment of this course unit includes the following partial assessments:
The DC mark related to the distributed component is evaluated in the following way:
The final mark (FM) is evaluated in the following way:
Students attending this course unit under special statuses and privileges are expected to meet the same assessment requirements as to ordinary students, and must perform the course assignments as expected. Nevertheless, the student may schedule with his/her lecturer of lab classes when to hand in and present the course assignments as appropriate, out of normal class hours.
The course assignments part of the assessment system can be improved if the student attends the lab classes during the following edition of this course unit. Exam marks in the first call can be improved during the exame in the second call, in the same term.
It is recommended that students had attended the "Programming" and the "Algorithms and Data Structures" course units prior to attending this course unit of "Algorithms Design and Analysis" to improve potential of success.