Embracing the joint ACM/IEEE curriculum reforms for undergraduate computer science courses, this text covers such topics as: algorithms and data structures, architecture, artificial intelligence and operating systems. It aims to provide a broad and integrated overview of the field, relating practical activities to the broad principles of computer programming. The book is accompanied by a PASCAL lab manual.