introduction introduction have heard many people over the years say that python is an easy language to lean and that python is also simple language to some extent both of these statements are truebut only to some extent while the core of the python language is easy to lean and relatively simple (in part thanks to its consistency)the sheer richness of the language constructs and flexibility available can be overwhelming in addition the python environmentits eco systemthe range of libraries availablethe often competing options available etc can make moving to the next level daunting once you have learned the core elements of the language such as how classes and inheritance workhow functions workwhat are protocols and abstract base classes etc where do you go nextthe aim of this book is to delve into those next steps the book is organised into eight different topics computer graphics the book covers computer graphics and computer generated art in python as well as graphical user interfaces and graphingcharting via matplotlib games programming this topic is covered using the pygame library testing and mocking testing is an important aspect of any software developmentthis book introduces testing in general and the pytest module in detail it also considers mocking within testing including what and when to mock file input/output the book covers text file reading and writing as well as reading and writing csv and excel files although not strictly related to file inputregulator expressions are included in this section as they can be used to process textual data held in files database access the book introduces databases and relational database in particular it then presents the python db-api database access standard and (cspringer nature switzerland ag huntadvanced guide to python programmingundergraduate topics in computer science