Methodology of Programming26013
- Centre
- Faculty of Engineering - Bilbao
- Degree
- Bachelor's Degree in Computer Engineering in Management and Information Systems
- Academic course
- 2024/25
- Academic year
- 1
- No. of credits
- 6
- Languages
- Spanish
- Basque
- Code
- 26013
TeachingToggle Navigation
Teaching guideToggle Navigation
Description and Contextualization of the SubjectToggle Navigation
Description of the subject:
One way to deal with program correction is by providing data to the program and analising wether the results are appropriate. Regarding program construction, one option is to base the design of programs on the non-formal knowledge of the designer, and then, to check the correctness of the program by using some data and, if necessary, to make amendments. Such an approach does not guarantee the correctness of the designed program. In the subject "Metodology of Programming" we will present formal methods to verify the correctness of programs and to build correct programs. These formal methods are based on mathematical logic. By using such methods, we can mathematically prove wether a program is correct or not, and we can mathematically design correct programs.
Context:
This subject is taught in the second semester of the first term. Previously, in the first semester, the basics of imperative programming have been presented in a non-formal way to the students. So the second semester is the right moment to introduce the students in the area of formal (mathematical) methods to deal with programming. This will provide them the necessary knowledge and skills to face, in an appropriate manner, the other subjects that will deepen in programming issues in the following semesters.
Skills/Learning outcomes of the subjectToggle Navigation
- Skills in analysis, design, implementation, and maintenance of correct software.
- Skills in program specification, documentation, validation, and verification.
- Skills to reason about program properties.
- To know the relationship between iteration and recursion.
- To know techniques for correct program transformation.
- To know basic notions about axiomatic semantics of programming languages.
Theoretical and practical contentToggle Navigation
1) Specification, correction and design by contract.
2) Preconditions and postconditions. Formal specification and formal documentation of programs.
3) Hoare's formal system: formal verification and formal derivation of programs.
4) Recursion.
5) Algebraic specification of abstract data types.
6) Transformation of recursive programs: transformation from recursive format to iterative format.
MethodologyToggle Navigation
In the lectures, the theoretical contents will be presented together with relevant examples that ilustrate the application of the theory to real problems. Students will have to deal with exercices to master the presented techniques.
ONLINE TEACHING (EXCEPTIONAL SITUATIONS)
If face-to-face (or in-person) classes are not possible, the teaching activities and continuous evaluation activities will be reorganised and adapted to distance (or online) teaching. In order to achieve that goal, available resources will be used (eGela etc.). Students will be properly informed by means of eGela.
Assessment systemsToggle Navigation
- Continuous Assessment System
- Final Assessment System
- Tools and qualification percentages:
- Written test to be taken (%): 90
- Realization of Practical Work (exercises, cases or problems) (%): 10
Ordinary Call: Orientations and DisclaimerToggle Navigation
Two evaluation methods:
- Final evaluation: written examination about the whole subject at the end of the semester. Different exercices to work on the main contents of the subject. Only passed exercices will be taken into account to calculate the final punctuation.
- On-going (or continuous) evaluation: one written examination for each main content of the subject. The exams will be held along the semester. Passed exams will liberate the corresponding content and the punctuation will be summed to calculate the final punctuation. At the end of the semester, students that have not reached 5 points will have the opportunity to repeat the non-liberated exercices in order to try to reach to 5 points.
Changing from one evaluation method to the other: students can change from one evaluation methond to the other at any time before the day of the final examination (at the end of the semester).
Anyone that has not yet 5 points and does not take the final examination, will have a "not presented" as the final result.
CONTINUOUS EVALUATION (EXCEPTIONAL SITUATIONS)
If face-to-face (or in-person) continuous evaluation is not possible, the continuous evaluation
will be reorganised and adapted to distance (or online) continuous evaluation. In order to achieve
that goal, available resources will be used (eGela etc.). Students will be properly informed by means of eGela.
ONLINE EVALUATION (EXCEPTIONAL SITUATIONS)
If face-to-face (or in-person) evaluation is not possible, the evaluation will be realized online.
In order to achieve that goal, available resources will be used (eGela etc.). Students will be
properly informed by means of eGela.
Extraordinary Call: Orientations and DisclaimerToggle Navigation
Same approach as in ordinary evaluation.
ONLINE EVALUATION (EXCEPTIONAL SITUATIONS)
If face-to-face (or in-person) evaluation is not possible, the evaluation will be realized online.
In order to achieve that goal, available resources will be used (eGela etc.). Students will be
properly informed by means of eGela.
Compulsory materialsToggle Navigation
Material at eGela.
BibliographyToggle Navigation
Basic bibliography
Especificación, Verificación y Derivación Formal de Programas. Javier Álvez, Xabier Arregi, Jose Gaintzarain, Paqui
Lucio, Montse Maritxalar. Pearson, 2015.
Programen Espezifikazio, Egiaztapen eta Eratorpen Formala. Javier Álvez, Xabier Arregi, Jose Gaintzarain, Paqui Lucio,
Montse Maritxalar. Udako Euskal Unibertsitatea (UEU), 2016.
Programen Egiaztapena eta Eratorpena. X. Arregi, A. Díaz de Ilaraza, P. Lucio. Udako euskal Unibersitatea, 1993.
Metodología y Tecnología de la Programación II. M. Díaz Roca,, J. C. Rodríguez del Pino. Univ. Palmas Gran Canaria, 2004.
Verificación de Programas y Metodología de la Programación. A. Díaz de Ilarraza, P. Lucio. Servicio Editorial Universidad del País Vasco, 1990.
Program Derivation. The Development of Programs from Specifications. G. Dromey. Addison-Wesley, 1989.
In-depth bibliography
Program Construction and Verification. R. C. Backhouse. Prentice-Hall, 1986.
Programación metódica. J.L. Balcázar. MacGraw-Hill, 1993.
Diseño de Programas.- Formalismo y Abstracción. Ricardo Peña. Prentice Hall, 1998.
Journals
Acta Informatica
Programming and Computer Software
Science of Computer Programming
Software Quality Journal
Transactions on Software Engineering and Methodology
Web addresses
http://www.sc.ehu.es/jiwlucap/metodologia.html
http://en.wikipedia.org/wiki/Formal_verification
http://en.wikipedia.org/wiki/Design_by_contract
GroupsToggle Navigation
01 Teórico (Spanish - Mañana)Show/hide subpages
Weeks | Monday | Tuesday | Wednesday | Thursday | Friday |
---|---|---|---|---|---|
20-27 | 08:00-10:00 (1) | ||||
28-32 | 08:00-10:00 (2) | ||||
34-35 | 08:00-10:00 (3) |
Teaching staff
Classroom(s)
- P4I 12A - ESCUELA DE INGENIERIA DE BILBAO-EDIFICIO II (1)
- P4I 12A - ESCUELA DE INGENIERIA DE BILBAO-EDIFICIO II (2)
- P4I 12A - ESCUELA DE INGENIERIA DE BILBAO-EDIFICIO II (3)
01 Applied classroom-based groups-1 (Spanish - Mañana)Show/hide subpages
Weeks | Monday | Tuesday | Wednesday | Thursday | Friday |
---|---|---|---|---|---|
20-27 | 09:30-11:30 (1) | ||||
28-32 | 09:30-11:30 (2) | ||||
34-35 | 09:30-11:30 (3) |
Teaching staff
Classroom(s)
- P4I 12A - ESCUELA DE INGENIERIA DE BILBAO-EDIFICIO II (1)
- P4I 12A - ESCUELA DE INGENIERIA DE BILBAO-EDIFICIO II (2)
- P4I 12A - ESCUELA DE INGENIERIA DE BILBAO-EDIFICIO II (3)
31 Teórico (Basque - Mañana)Show/hide subpages
Weeks | Monday | Tuesday | Wednesday | Thursday | Friday |
---|---|---|---|---|---|
20-27 | 10:00-12:00 (1) | ||||
28-32 | 10:00-12:00 (2) | ||||
34-35 | 10:00-12:00 (3) |
Teaching staff
Classroom(s)
- P3I 9A - ESCUELA DE INGENIERIA DE BILBAO-EDIFICIO II (1)
- P3I 9A - ESCUELA DE INGENIERIA DE BILBAO-EDIFICIO II (2)
- P3I 9A - ESCUELA DE INGENIERIA DE BILBAO-EDIFICIO II (3)
31 Applied classroom-based groups-1 (Basque - Mañana)Show/hide subpages
Weeks | Monday | Tuesday | Wednesday | Thursday | Friday |
---|---|---|---|---|---|
20-27 | 12:00-14:00 (1) | ||||
28-32 | 12:00-14:00 (2) | ||||
34-35 | 12:00-14:00 (3) |
Teaching staff
Classroom(s)
- P3I 9A - ESCUELA DE INGENIERIA DE BILBAO-EDIFICIO II (1)
- P3I 9A - ESCUELA DE INGENIERIA DE BILBAO-EDIFICIO II (2)
- P3I 9A - ESCUELA DE INGENIERIA DE BILBAO-EDIFICIO II (3)