In the real world, many of the problems that we are trying to solve arise and exist within the physical realm. Using computer science and code to solve some of these problems requires the programmer to capture what is happening in the physical world with data that the computer can understand, process and manipulate. Principles 4 is Code Campers’ deeper journey into data types and structures before they move on to Object-Oriented Programming in Principles 5. In Principles 4, students will add to their arsenal of data structures by learning about dictionaries, as well as apply and extend their concepts learnt about Python lists to solve a variety of problems. Through the manipulation of such data using code, they will learn to appreciate how each of the different data types is used by programmers to model different features of real-world problems, and be exposed to new ideas in programming including machine learning and physical simulations. This will require them to synthesise and rely on all the coding tools, decomposition and abstraction skills in the preceding courses in order to model the real-world. After this course, students will have learnt to use the two key essential data structures in programming - lists and dictionaries - to fashion more complex, detailed and powerful computer programs. By applying their new knowledge across various contexts, they will develop the skills to discover the commonalities in the structures of problems in different domains and design general solutions to these problems.