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

Functional Programming

Code: CC1005     Acronym: CC1005     Level: 100

Keywords
Classification Keyword
OFICIAL Computer Science

Instance: 2015/2016 - 2S

Active? Yes
Web Page: http://www.dcc.fc.up.pt/~sandra/Home/PF1516.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:CC 75 Plano de estudos a partir de 2014 1 - 6 56 162
MI:ERS 145 Plano Oficial desde ano letivo 2014 1 - 6 56 162
Mais informaçõesLast updated on 2015-12-18.

Fields changed: Calculation formula of final grade, Componentes de Avaliação e Ocupação, Tipo de avaliação

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 without final exam

Assessment Components

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

Calculation formula of final grade

First test (50% of the final mark).
Second test (50% of the final mark).
If FT is the mark obtained in the first test and ST the mark
obtained in the second, then the final mark is given by:
F = FT*(0.5) + ST*(0.5)  
FT,ST >= 6 and F >= 9.5
To get approval in the distributed evaluation, students must obtain a minimum of 6 points (in a total of 20) in each test and a minimum of 9.5 as final mark.
The students not obtaining approval, can take a resit exam, with a weight of 100% of the final mark. 

Special assessment (TE, DA, ...)

N/A

Recommend this page Top
Copyright 1996-2025 © Faculdade de Ciências da Universidade do Porto  I Terms and Conditions  I Acessibility  I Index A-Z  I Guest Book
Page created on: 2025-06-17 at 15:21:09 | Acceptable Use Policy | Data Protection Policy | Complaint Portal