Programming is as an important part of informatics at Slovak schools, and therefore we put focus on didactics of programming. We have observed various issues that are related to teaching and didactics of programming. These issues should be mastered by future teachers of informatics that we prepare at our faculty. In order to prepare future teachers we have designed a course of didactics of programming. For example, we have observed that our students - future teachers do not differentiate between levels of complexity when trying to teach various programming topics, or they skip important steps when explaining solution of a problem. We came to conclusion that it is necessary to design various activities related to teaching of programming and problem solving that allow students to collect their own practical experiences by resolving various didactical problems and to develop their critical thinking about teaching.