A goal of Module A is to provide the student with the basic knowledge for the design and implementation of simple programs written in a conventional programming language. In particular, the student will acquire in-depth knowledge about the programming tools provided by the imperative fragment of C++.
Module A also aims to provide students with the ability to apply the acquired knowledge about programming tools and the acquired problem analysis techniques to solve simple practical problems (such as, for example, mathematical calculation problems, sorting, file management, etc.) and then translate these solutions into executable programs.
Finally, Module B aims to help students to develop more general skills of analysis, abstraction (mainly intended as the ability to describe and understand an entity in terms of the features rather than the details of its implementation), the decomposition of problems into subproblems, and development of solutions "from top to bottom" ("top-down") and by stepwise refinements.
Module B aims to provide the student with the basic knowledge for the design and implementation of "object-oriented" programs, as well as in-depth knowledge about the programming tools provided by C++ and Java for "object-oriented" programming.
Module B also aims to provide students with the ability to apply the acquired problem analysis techniques and knowledge about programming tools to carry out concrete executable C++ and Java programs.