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

Functional Programming

Code: CC1005     Acronym: CC1005     Level: 100

Keywords
Classification Keyword
OFICIAL Computer Science

Instance: 2017/2018 - 2S

Active? Yes
Web Page: http://www.dcc.fc.up.pt/~sandra/Home/PF1718.html
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 3 Official Study Plan 3 - 6 56 162
L:CC 80 Plano de estudos a partir de 2014 1 - 6 56 162
L:F 0 Official Study Plan 2 - 6 56 162
3
L:G 15 study plan from 2017/18 2 - 6 56 162
3
L:M 1 Official Study Plan 2 - 6 56 162
3
L:Q 1 study plan from 2016/17 3 - 6 56 162
MI:ERS 126 Plano Oficial desde ano letivo 2014 1 - 6 56 162

Teaching language

Portuguese

Objectives

Introduction to functional programming using the Haskell language.

Learning outcomes and competences

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.

Working method

Presencial

Program

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.

Mandatory literature

Hutton Graham 1968-; Programming in Haskell. ISBN: 9780521692694 pbk
Thompson Simon; Haskell. ISBN: 978-0-201-40357-2 pbk

Complementary Bibliography

Hudak Paul; The Haskell school of expression. ISBN: 978-0-521-64338-2

Teaching methods and learning activities

Lectures using whiteboard and overhead projection. Practical classes on computer labs.

Evaluation Type

Distributed evaluation with final exam

Assessment Components

designation Weight (%)
Exame 50,00
Teste 50,00
Total: 100,00

Calculation formula of final grade

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. 

Special assessment (TE, DA, ...)

N/A

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-09-01 at 19:57:08 | Acceptable Use Policy | Data Protection Policy | Complaint Portal