Python Practice Lab: Learn How to Code through Interactive Examples
By (Author) Professor Angelica Lim
By (author) Professor Victor Cheung
Princeton University Press
Princeton University Press
3rd June 2026
United States
Tertiary Education
Non Fiction
Computer programming / software engineering
Programming and scripting languages: general
Paperback
136
Width 178mm, Height 254mm
A guide to learning basic programming by writing fun, working programs that gradually become more complex
This classroom-tested, workbook-style text teaches basic programming by guiding readers to write Python programs that mimic interactive chatbots. Unlike textbooks with opaque examples explained in dry, monotonous code, Python Practice Lab engages readers immediately, with more than thirty motivating and hands-on examples. Readers learn by writing fun, working programs that gradually become more difficult as new concepts are introduced. Most exercises are open ended, promoting creativity in the process of learning. Along with coding practice, the book offers brief introductions to a range of other topics in computer science, including recommendation systems, computer vision, and big data, and relates these subjects to the programming concepts covered in the book. Python Practice Lab will be an essential resource for anyone who wants to learn to program, instructors teaching Python to beginners, and students who want to supplement their coursework by building compete and functional programs.
Angelica Lim is assistant professor in computing science at Simon Fraser University. An award-winning roboticist and a champion for diversity in computer science, she is the founder of Invent the Future, a summer enrichment program at SFU begun in partnership with the nonprofit AI4ALL. Victor Cheung is lecturer in computing science at Simon Fraser University. An experienced educator teaching a wide range of computer science courses from general introduction to programming to specialized human-centered computing, he is an advocate for improving user experience and user empowerment via user-centered design approaches.