SubjectsSubjects(version: 806)
Course, academic year 2017/2018
   Login via CAS
Recommended Programming Practices - NPRG043
Czech title: Doporučené postupy v programování
Guaranteed by: Department of Distributed and Dependable Systems (32-KDSS)
Faculty: Faculty of Mathematics and Physics
Actual: from 2014
Semester: summer
E-Credits: 6
Hours per week, examination: summer s.:2/2 C+Ex [hours/week]
Capacity: unlimited
Min. number of students: unlimited
State of the course: taught
Language: Czech
Teaching methods: full-time
Additional information:
Guarantor: Ing. Lubomír Bulej, Ph.D.
Class: Informatika Mgr. - Softwarové systémy
Classification: Informatics > Programming
Annotation -
Last update: T_KSI (04.05.2007)

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.
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.

Syllabus -
Last update: T_KSI (11.05.2007)

Foundations of software construction and development. Intrinsic and extrinsic complexity. Pre-requisities and key decisions.

Variables and constants. General guidelines for using variables. Naming convetions. Fundamental data types. Unusual data types. Creating new data types.

Control structures and primitives. Organization of code. Conditional statements. Loop statements. General guidelines for using control structures. Unusual control structures. Table-driven methods.

Construction of quality code. Method design. Pseudo-code programming. Locality and duplicity of code. Using exceptions. Defensive programming. Class design. Inheritance and composition. Coupling and decoupling. Modularization and abstraction. Interface design.

Software craftsmanship. Layout and style. Documenting code and commenting techniques. Personal character.

Improving code. Testing. Debugging. Refactoring. Collaborative software construction. Tuning.

Software construction process. How program size affects construction. Managing construction. Software maintenance. Programming tools.

Charles University | Information system of Charles University |