Upon successful completion of the course the student will
have acquired the fundamental principles of programming, algorithmic structures and software development techniques,
acquire programming skills in a high-level programming language environment,
be able to combine the various algorithmic structures and instructions of a programming language,
acquire the ability of composing programs which solve specific problems not only in the field of his/her scientific field but, more generally, scientific or other problems of practical interest,
be able to process by programs big volumes of data,
cease being restricted by the dedicated capabilities of existing software packages and will be able to develop software for the solution of special problems,
acquire a broader analytic and synthetic way of thinking and of skills for the solution of a problem (not necessarily of a problem that requires a computer program) by splitting it into simpler problems that achieve intermediate targets.