Programming is not just about writing a working program. The quality of a program is (besides design and other functional
characteristics) associated with a number of characteristics unrelated to the function of a program. The subject introduces
students into programming practices adhering to which leads to construction of high-quality programs. The goal of the
subject is to motivate students for adopting such techniques for use in their own programming practice.
Last update: G_I (16.03.2011)
Programování není pouze o schopnosti napsat fungující program. S kvalitou programu je (vedle návrhu a celé řady
funkčních charakteristik) spojena celá řada charakteristik, které s funkcí programu přímo nesouvisí. Náplní předmětu je
seznámit studenty s praktickými postupy a pravidly, jejichž důsledné dodržování a aplikace vedou ke kvalitnějším
programům. Cílem předmětu je motivovat studenty k osvojení a používání probíraných postupů v praxi.
Předpokládají se znalosti programování v rozsahu bakalářského kursu NPRG031 Programování II.
Course completion requirements -
Last update: doc. Ing. Lubomír Bulej, Ph.D. (06.10.2017)
To receive credit, the student has to attend the labs and submit assignments within given deadlines.
Last update: doc. Ing. Lubomír Bulej, Ph.D. (06.10.2017)
Zápočet je podmíněn účastí na cvičeních a vypracováním úkolů ve stanovených termínech.
Literature - Czech
Last update: T_KSI (04.05.2007)
1. McConnell, S.: Code Complete. Microsoft Press, 2nd edition, ISBN 978-0735619678, June 2004.
2. On-line zdroje ve formě článků a esejí k probíranému tématu.
Requirements to the exam -
Last update: doc. Ing. Lubomír Bulej, Ph.D. (06.10.2017)
The final grade is determined by the sum of points from the assignments.
Last update: doc. Ing. Lubomír Bulej, Ph.D. (06.10.2017)
Předmět nemá zkoušku v klasické podobě. Výsledná známka z předmětu je odvozena z bodového hodnocení úkolů.
Syllabus -
Last update: doc. Ing. Lubomír Bulej, Ph.D. (16.01.2024)
Software construction and development, essential and accidental complexity.
Interface (API) design, guiding principles, designing API classes and methods.
Class design guidelines, abstraction and encapsulation, inheritance and composition, polymorphism, immutability.