Many problems that we try to solve tend to take place in the real, physical world; much of problem-solving using computer programming, however, takes place in the virtual solutioning space of a computer program. In the physical world, many people solve problems through analogy - rehashing and reusing solutions to old problems that we have seen to solve new problems that look and feel familiar. In computer science, the study of how to solve specific problems by focusing on the general shared traits between them is what computer scientists call abstraction. Data structures are the tools in computer programming that help us bridge this divide - allowing us to capture the features of real-world problems by expressing them as detailed data in our computer programs, which can then be manipulated towards a solution. Code Campers will learn how to use Python lists - a general, abstract data structure - by adapting them to fit the specific context of the problem at hand. This efficient approach to problem-solving is what enables financial coders to create programmatic representations of stocks and bonds to model market prices, and bioinformatics researchers to code up the human genome to study its properties. After this course, students will be able to use lists to model and manipulate a variety of data problems and solutions across a range of contexts. With their newfound knowledge, they will be equipped to create more powerful and efficient computer programs.