The two parts of the didactic activity ("Computer Programming 2 and Lab.") examine in depth some key aspects of algorithm development, analysis methodologies, logic data organization and corresponding implementation in C language. In addition, they introduce some fundamental concepts of the Object Oriented Programming in C++ language.
Knowledge and understanding
Students must show to know and to understand:
• basic concepts of the algorithm development methodology and of abstract data types;
• the C programming language (at least an elementary knowledge).
Ability to apply knowledge and understanding
Students must show:
• to be able in using their acquired knowledge for the design of algorithms to solve particular problems, even when they appear in concrete contexts and in other scientific fields;
• to be able in using the C language consciously, in order to implement an algorithm.
These capabilities are also expressed in a thorough and conscious use of computational tools and advanced computer labs.
Autonomy of judgement
Students, by themselves, must be able to assess the results returned by a software. In addition, they should know how to identify, even using online repositories, the most suitable algorithms and software to solve a specific problem.
Communication skills
Students, also working in groups, should be able to draw up a report on an algorithm, to make remarks on its results, and to document its C-language implementation using advanced scientific computing and documentation tools. Moreover, students should be able to use the suitable terminology of Computer Programming and of Abstract Data Structures, even in English language.
Learning skills
Students must be able to keep up-to-date and to analyze in depth topics and specific applications of Programming Techniques, even accessing databases, on-line software repositories and other tools available on the web.