Upon completion of the course, students should have:
- Working knowledge of a modern, multi-paradigm, memory-managed programming language
- a good grasp of object oriented programming concepts
- an understanding of algorithmic complexity and performance evaluation
- the skill to create and adapt recursive and iterative algorithms to solve problems
- knowledge of the internal details and performance characteristics of fundamental data structures, i.e. arrays, dictionaries, linked lists, trees and graphs
- knowledge of application oriented data structures like search trees, queues, stacks, and priority queues; their strengths and trade-offs
- the ability to design competitive software solutions to biomedical informatics problems