Code: | CC200 | Acronym: | CC200 |
Keywords | |
---|---|
Classification | Keyword |
OFICIAL | Computer Science |
Active? | Yes |
Responsible unit: | Department of Computer Science |
Course/CS Responsible: | Master's Degree in Physical Engineering |
Acronym | No. of Students | Study Plan | Curricular Years | Credits UCN | Credits ECTS | Contact hours | Total Time |
---|---|---|---|---|---|---|---|
L:AST | 2 | Plano de Estudos a partir de 2008 | 3 | - | 7,5 | - | |
L:B | 1 | Plano de estudos a partir de 2008 | 3 | - | 7,5 | - | |
L:M | 3 | Plano de estudos a partir de 2009 | 3 | - | 7,5 | - | |
MI:EF | 36 | Plano de Estudos a partir de 2007 | 2 | - | 7,5 | - |
The student should be able to:
1 understand, use and develop programs with abstract data types (ADT) in accordance with the requirements of problems proposed;
2 understand and use the notions of attribute and method of an abstract data type;
3 use and adapt, through programming, ADT that implement linked lists, stacks, queues, binary trees, heaps, hash tables and graphs;
4 examine portions of algorithms from the viewpoint of computational complexity and classify them according to their order of complexity;
5 program recursive functions;
6 plan and analyze algorithms for sequential search and insertion, as wel as in sorted lists, sorted trees and hash tables,
7 program and analyze sorting algorithms such as BubbleSort, mergesort. quicksort and heapsort. - plan and analyze algorithms for creation and manipulation of data structures such as binary trees, ordered binary trees, heaps and graphs.
Note: this course is done using the programming language Python.
The student is able to:
1 understand, use and develop programs with abstract data types (ADT) in accordance with the requirements of problems proposed;
2 understand and use the notions of attribute and method of an abstract data type;
3 use and adapt, through programming, ADT that implement linked lists, stacks, queues, binary trees, heaps, hash tables and graphs;
4 examine portions of algorithms from the viewpoint of computational complexity and classify them according to their order of complexity;
5 program recursive functions;
6 plan and analyze algorithms for sequential search and insertion, as wel as in sorted lists, sorted trees and hash tables,
7 program and analyze sorting algorithms such as BubbleSort, mergesort. quicksort and heapsort. - plan and analyze algorithms for creation and manipulation of data structures such as binary trees, ordered binary trees, heaps and graphs.
Note: this course is done using the programming language Python.
Review of Python. Abstract data types, attribute and method. Collections of objects: linked lists, queues, and stacks. Recursion. Notions of algorithmic complexity. Search algorithms and algorithms for insertion: sequential search, binary in the hash table. Sorting algorithms. Binary trees, unordered and ordered. Search trees. Heaps. Graphs.
- Lectures, with examples of problem solving.
- Practical sessions in the laboratory.
- Practical exercises on computer (self-evaluation) to make out of classes and using a platform for automatic validation of programs through unit tests.
- E-learning platform (Moodle) with pdfs of the slides presented in lectures and practical exercises.
- This platform also has a forum where announcements are made concerning the discipline and where pupils.
- Distributed evaluation with final exam:
* 2 programming tests: 3 marks each.
* Final exam: 14 marks.
designation | Weight (%) |
---|---|
Exame | 70,00 |
Participação presencial | 0,00 |
Teste | 30,00 |
Total: | 100,00 |
designation | Time (hours) |
---|---|
Estudo autónomo | 60,00 |
Frequência das aulas | 75,00 |
Total: | 135,00 |
* Have a grade greater than zero in one of the practical tests
* Have success of at least 50% (weighted) in the self-evaluation tasks proposed.
0.2*MPT+0.1*PTP+0.7*EX
MPT: best test
PTP: worst test
EX: exam
can improve the exam mark in the appeal exam and combine with the marks of the tests.