This unique book uses multimedia applications to motivate introductory computer science majors or non-majors. The book's hands-on approach shows how programs can be used to build multimedia computer science applications that include sound, graphics, music, pictures, and movies. The students learn a key set of computer science tools and topics, as well as programming skills; such as how to design and use algorithms, and practical software engineering methods. The book also includes optional coverage of HCI, as well as rudimentary data structures and databases using the user-friendly Python language for implementation. Authors Guzdial and Ericson also demonstrate how to communicate compatibly through networks and do concurrent programming.