ECTS credits ECTS credits: 4.5
ECTS Hours Rules/Memories Student's work ECTS: 74.2 Hours of tutorials: 2.25 Expository Class: 18 Interactive Classroom: 18 Total: 112.45
Use languages Spanish, Galician
Type: Ordinary Degree Subject RD 1393/2007 - 822/2021
Center Higher Technical Engineering School
Call: First Semester
Teaching: Sin Docencia (En Extinción)
Enrolment: No Matriculable (Sólo Alumnado Repetidor)
This subject covers the study of declarative programming, a paradigm of novel programming for the student that brings different skills to those developed in procedural/or object-oriented programming paradigms. Many problems are more easily solved through declarative programming, which is increasingly used in applications, large-scale projects and business environments: e-commerce databases, financial management tools, economic prediction software, traffic light control systems, text and natural language analysis tools, planners, command interpreters and Artificial Intelligence.
The objectives of this subject are:
Course Syllabus:
Module #1: Evolution of programming paradigms and introduction to declarative programming.
Module #2: Functional programming
1 Main concepts. Functional languages, parsers, expressions, functions and types.
2 Functions and numbers. Operators, priorities, association, currying, iteration, composition.
3 Data structures. Lists, strings, characters, tuples, trees.
4 Applications of functional programming.
Module #3: Logic programming
1 Calculus with relations, rules and facts, queries.
2 Introduction to Prolog.
Basic bibliography:
R. Bird. Introducción a la programación funcional con Haskell . Prentice Hall. (2000). ISBN:9788483221761
L. Sterling, E. Shapiro. The art of PROLOG. MIT press. (1994). ISBN: 9780262193382
Complementary bibliography:
Aprende Haskell por el bien de todos!. http://aprendehaskell.es/main.html. Último acceso: 20/06/2017
J. Alonso, M.J. Hidalgo. Piensa en Haskell. http://www.cs.us.es/~jalonso/publicaciones/Piensa_en_Haskell.pdf. Último acceso: 20/06/2017
R.L. López Briega. Programación Funcional con Python. https://relopezbriega.github.io/blog/2015/02/01/programacion-funcional-… Último acceso: 16/05/2019
This subject covers the following competences from the Computer Science Degree Memory (pages 23-24 and 28-30): CG3, CG4, CG8, CG9, CG10, TR1 (instrumental competences: capability of analysis and synthesis; oral communication; problem solving), TR2 (individual: critical reasoning), TR3 (systemic: creativity), FB3, FB4, RI1, RI6, RI7, RI8, RI15, TI2, TI4, TI6 e TI7.
Competences from module "Programming":
The expositive lectures uses computer slides to explain programming concepts and language syntax, and to solve programming exercises. The interactive sessions is developed in computer rooms and put in practive the issues explained in the expositive lectures, developing functional and logic programs using Haskell and Prolog languages respectively. Both kinds of lectures will use the subject website.
The expositive lectures work the competences CG8, CG9, TR2, TR3 (problem setup with decision making, comparing several alternative approaches), FB3 (problems of algorithm analysis), FB4, RI1, RI6, RI7, RI8 and RI15. The computer sessions work the competences CG3, CG4, CG8, CG9 (solving programming exercises), TR1 (developing reports), TR3 (problem solution through autonomous solucion search), FB3, FB4, RI1, RI6, RI7, RI8 and RI15.
January assessment: it consists of:
1) Ongoing assessment: solving exercises proposed during the lectures.
2) Final examination.
The final mark (FM) of the subject is calculated using the following formula:
FM=70% Ongoing assessment+ 30% Final examination
The weight of continuous assessment can be increased by up to 20% with optional activities. It is not necessary to take the final exam in order to pass the subject.
July opportunity: an examination with the same mark as in January. The grade for continuous assessment is that achieved during the class period. (in the same academic year).
Assessment as "Not presented": unless changes in the University policy are affecting this particular, all the students which are not present at the final test will be evaluated as "Not presented". Specifically, those students which did not develop any continuous assessment task and do not execute the final test, will be evaluated as "Not presented".
Students who previosly failed the course: The same assessment criteria will be applied to the students which failed the course in the past.
Attendance classroom work:
Expositive sessions: 18 attendance hours, 27 h student personal work
Practical sessions in reduced groups: 19 attendance hours, 28.5 h student personal work
Tutorials and evaluation activities: 8 attendance hours, 12 h student personal work
Sum of attendance hours: 45h
Sum of student personal work: 67,5h
We recommend to solve all the exercises in the subject website and to use the tutorials to solve doubts.
The whole subject information is available from the USC virtual course.