Code: | CC1022 | Acronym: | CC1022 | Level: | 100 |
Keywords | |
---|---|
Classification | Keyword |
OFICIAL | Computer Science |
Active? | Yes |
Responsible unit: | Department of Computer Science |
Course/CS Responsible: | Bachelor in Mathematics |
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:M | 0 | Official Study Plan | 2 | - | 6 | 56 | 162 |
3 | |||||||
L:Q | 1 | study plan from 2016/17 | 3 | - | 6 | 56 | 162 |
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: 6 marks.
* 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 | 85,00 |
Frequência das aulas | 65,00 |
Total: | 150,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.