Graduates who have specialised in this area possess all the knowledge and skills required of computer scientists and, in addition, they have a solid grounding in techniques for solving complex programming problems and programming techniques for specific fields.
Professionals who have specialised in this area are trained to solve complex programming problems efficiently and rapidly. They know how to choose the most suitable programming languages and paradigms in designing solutions to specific problems. They know how to design the most efficient solutions in terms of time and memory, taking into account the environments in which the programs must be run, which might be parallel or distributed environments or specific architectures. They are also familiar with programming techniques developed for specific areas of computing, such as artificial intelligence, numerical and scientific computation and computer security.