Develop programs for HPC.
Develop parallel programs for shared memory systems as well as for message passing systems.
Develop efficient algorithms and data structures.
Assess the efficiency and suitability of algorithms and data structures for the respective application.