This chapter introduces two new concepts: user-defined data types that allow the creation of modules of data based on related variables, and computer graphics to perform pixel-level operations and work with images. This chapter uses these to demonstrate more complicated programs. The programs discussed in this chapter have more advanced features such as the ability to define new data types such as database, image, and game object, the ability to organize the program into multiple files for more efficient management, the ability to use pre-defined (or externally defined) functions and libraries, and the ability to perform graphics operation in addition to simple text output.