FI:IV022 Elegant programming - Course Information
IV022 Principles of elegant programming
Faculty of InformaticsAutumn 2023
- Extent and Intensity
- 2/0/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
- Wed 12:00–13: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
- Enrolment Statistics (recent)
- Permalink: https://is.muni.cz/course/fi/autumn2023/IV022