- Modeling a problem through proper abstraction.
- Designing or choose the appropriate data structures for specific programming problems.
- Programming in a modular way using data abstractions.
- Implementing and evaluate different data structures.
- Studying basic algorithmic techniques.
- Studying formal proofs of correctness.

Last modified: Tuesday, 21 April 2015, 1:10 PM