Code: | CC1005 | Acronym: | CC1005 | Level: | 100 |
Keywords | |
---|---|
Classification | Keyword |
OFICIAL | Computer Science |
Active? | Yes |
Web Page: | http://www.dcc.fc.up.pt/~sandra/Home/PF1617.html |
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 | 94 | Plano de estudos a partir de 2014 | 1 | - | 6 | 56 | 162 |
L:M | 4 | Official Study Plan | 2 | - | 6 | 56 | 162 |
3 | |||||||
L:Q | 4 | study plan from 2016/17 | 3 | - | 6 | 56 | 162 |
MI:ERS | 147 | Plano Oficial desde ano letivo 2014 | 1 | - | 6 | 56 | 162 |
Introduction to functional programming using the Haskell language.
After this course the student should be able to:
1. define functions using equations and patterns;
2. implement simple recursive algorithms over lists and trees;
3. define new algebraic data types for encoding data;
4. compose programming problems using higher-order functions and lazy evaluation;
5. prove elementary properties of programs using equational theory and induction.
Expressions, values and basic types. Defining simple functions; function types. Step by step evaluation using substitution. Compound types: lists and tuples. Some list functions of the standard prelude. Comprehension notation for lists. Recursive definitions. Parametric polymorphism. Higher-order functions. Writting interactive programs using the I/O monad. Defining new concrete data types. Case-study: binary search trees. Abstract types: stacks, queues, sets. Specification using equations and implementation using modules. Type classes and operator overloading. Reasoning about programs using equational theory and induction.
Lectures using whiteboard and overhead projection. Practical classes on computer labs.
designation | Weight (%) |
---|---|
Exame | 50,00 |
Teste | 50,00 |
Total: | 100,00 |
Midterm test (50% of the final mark).
Exam (50% of the final mark).
If MT is the mark obtained in the test and EX the mark
obtained in the exam, then the final mark is given by:
F = MT*(0.5) + EX*(0.5)
MT,EX >= 6 and F >= 9.5
To get approval the students must obtain a minimum of 6 points (in a total of 20) in evaluation component and a minimum of 9.5 as final mark.
The resit exam, will have a weight of 100% on the final mark.
N/A