Programmer's practicum
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
01PROP | Z | 2 | 0+2 | Czech |
- Lecturer:
- Petr Bauer (gar.)
- Tutor:
- Petr Bauer (gar.)
- Supervisor:
- Department of Mathematics
- Synopsis:
-
The purpose of this course is to acquire good programming habits which will help in writing of clean code, i.e. such that is easy to comprehend by others and suitable for adding new functionality. Using specific examples, the students get familiar with naming conventions, and continue through writing project documentation, principles of defensive programming, debugging, up to creating object-oriented design, design patterns and refactoring.
- Requirements:
-
C/C++ programming, object-oriented programming
- Syllabus of lectures:
-
I. The basics of writing clean code
1. Formatting
2. Data structures
3. Naming of variables
4. Rules for writing functions
5. Handling of errors, exceptions
6. Comments
II. Object-oriented design
1. Namespaces
2. Class organization
3. Inheritance and abstraction
4. Special types of classes
III. Code development
1. Coding conventions
2. Specification and design
3. Testing of code
4. Refactoring
5. Documentation
- Syllabus of tutorials:
-
The excercise is an integral part of the course, its contents is given by the subject's sylabus.
- Study Objective:
-
Knowledge:
How to write clean code, coding conventions. Principles of defensive programming, code management and guidelines for refactoring. How to write documentation. Code structure and functionality, creating of consistent blocks and their testing. Object-oriented design, open for changes. Development of clean and comprehensible code.
Skills:
The student learns to write transparent code, which is easy to understand by other developers, flexible in terms of adding new functionality and easy for debugging.
- Study materials:
-
Key references:
[1] R.C. Martin, Clean Code: A Handbook of Agile Software Craftmanship, Prentice Hall 2009
[2] S. McConnell, Code Complete, Second Edition, Microsoft Press, 2004
Recommended references:
M. Fowler, Refactoring: Improving the Design of Existing Code, Addison-Wesley, 2002
- Note:
- Time-table for winter semester 2011/2012:
- Time-table is not available yet
- Time-table for summer semester 2011/2012:
- Time-table is not available yet
- The course is a part of the following study plans: