This unit will teach some powerful ideas that are central to solving algorithmic problems in ways that are more efficient than naive approaches. In particular, students will learn how data collections can support efficient access, for example, how a dictionary or map can allow key-based lookup that does not slow down linearly as the collection grows in size. The data structures covered in this unit include lists, stacks, queues, priority queues, search trees, hash tables, and graphs. Students will also learn efficient techniques for classic tasks such as sorting a collection. The concept of asymptotic notation will be introduced, and used to describe the costs of various data access operations and algorithms.
through semester assessment (50%), final exam (50%)
Distinction-level result in at least one the listed 1000 level programming units
Distinction level result in at least one of INFO1110 OR INFO1113 OR DATA1002 OR INFO1103 OR INFO1903Prohibitions
INFO1105 OR INFO1905 OR COMP2123