The 105 course must be taken by students who have completed 101 and wish to advance in Computer Science. It extends the programming skills of the Principles of Programming course, focusing on data structures and efficient ways to manipulate data. The course is taught using Python. Topics include: recursion, regular expressions, data interchange, abstract data types, linear data structures (lists, stacks, queues), non-linear data structures (heaps, hash tables, trees), searching and sorting.