Logo ČVUT
CZECH TECHNICAL UNIVERSITY IN PRAGUE
STUDY PLANS
2018/2019

Programmer's Practicum

Login to KOS for course enrollment Display time-table
Code Completion Credits Range Language
01PROP Z 2 0+2 Czech
Lecturer:
Tutor:
Vladimír Klement (guarantor)
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 2018/2019:
Time-table is not available yet
Time-table for summer semester 2018/2019:
Time-table is not available yet
The course is a part of the following study plans:
Data valid to 2019-06-18
For updated information see http://bilakniha.cvut.cz/en/predmet1594206.html