IV022 Principles of elegant programming

Faculty of Informatics
Autumn 2022
Extent and Intensity
2/0. 2 credit(s) (plus extra credits for completion). Type of Completion: zk (examination).
Teacher(s)
prof. RNDr. Luboš Brim, CSc. (lecturer)
Guaranteed by
prof. RNDr. Luboš Brim, CSc.
Department of Computer Science – Faculty of Informatics
Contact Person: prof. RNDr. Luboš Brim, CSc.
Supplier department: Department of Computer Science – Faculty of Informatics
Timetable
Tue 10:00–11:50 B410
Course Enrolment Limitations
The course is also offered to the students of the fields other than those the course is directly associated with.
fields of study / plans the course is directly associated with
there are 77 fields of study the course is directly associated with, display
Course objectives
Programs are typically constructed from smaller ones, each realizing a particular function. The ability to design small perfect programs seems to be the core skill of every serious programmer. The goal is to get acquainted with methods for designing and verifying small and, at the same time, elegant sequential algorithms. The students acquire basic techniques and principles that can contribute to this goal.
Learning outcomes
By the end of the semester, students should be able to develop small sequential algorithms and prove their correctness.
Syllabus
  • Garded command language. Skip and abort commands, composition, alternative command, iterative command.
  • Verification of programs, proof outlines, verification rules for sequential composition, alternative, and loop commands. Array manipulation.
  • Constructive verification of programs, basic principles and strategies, developing loops from invariants and bounds, developing invarinats.
  • Examples of program development. Deriving of efficient algorithms, Searching and sorting.
Literature
  • DIJKSTRA, Edsger W. and W. H. J. FEIJEN. A method of programming. Wokingham: Addison-Wesley Publishing Company, 1998, vii, 188 s. ISBN 0-201-17536-3. info
  • KALDEWAIJ, A. Programming :the derivation of algorithms. New York: Prentice Hall, 1990, xii, 216 s. ISBN 0-13-204108-1. info
  • GRIES, David. The Science of Programming. New York: Springer-Verlag, 1981, 366 s., ob. ISBN 0-387-90641-X. info
Teaching methods
lecture, homeworks, reading
Assessment methods
Final exam is written. In the case homeworks are assigned, these are counted by maximum of 30% to the final mark. No study materials are allowed during the final examination.
Language of instruction
Czech
Further Comments
The course is taught annually.
Teacher's information
https://www.fi.muni.cz/usr/brim/home/#teaching
The course is also listed under the following terms Autumn 2002, Autumn 2003, Autumn 2007, Spring 2013, Spring 2015, Spring 2017, Spring 2018, Spring 2019, Spring 2020, Spring 2021, Autumn 2023.
  • Enrolment Statistics (Autumn 2022, recent)
  • Permalink: https://is.muni.cz/course/fi/autumn2022/IV022