Design and implementation of algorithms and data structures to solve computational problems. Writing effective, efficient, readable, robust, idiomatic, and reusable software code. Knowledge of and fluency in one or more (high-level) programming languages.