CPSC 120 Principles of Computer Science Spring 2008

CPSC 120 Course Information

Course Description

This course is an introduction to computer science. The emphasis is on the underlying principles of computer science, but another goal is to show a wider view of the discipline - computer science is more than just sitting in front of a computer, typing in programs.

The main theme of the course is computation, as computation lies at the heart of computer science. We will study the structure of computing machines, from electronic circuits up to the essence of the computers you see everyday, to see how they carry out computations. We will also study the structure of computer programs, learning some of the syntax and semantics of the programming language Python and gaining some hands-on experience with directing the computations that a computer performs. Finally, we will investigate some of the topic areas within computer science to get a sense of the variety of interesting and complex things that computers can do, and how they accomplish those tasks. Along the way, key principles of computer science will be introduced and illustrated.

This is not a course on general computer skills or on how to use particular software applications like Word or Excel. While you will gain experience and skills that will increase your computer literacy, the emphasis in this course is on the science of computing rather than on how to use a computer.

This is also not a programming course; the goal of the programming component is to gain an understanding of how programs can do all of the things they do rather than to study a particular programming language in depth.

Course Web Page

You are expected to regularly consult the course web page for announcements, assignments, and most handouts.


The Most Complex Machine: A Survey of Computers and Computing
David J. Eck
AK Peters, 2000
ISBN 1568811284

Additional material will be handed out in class or posted on the course webpage.




This course introduces computer science, providing a view of the discipline wider than what is typically seen in introductory programming courses - computer science is not just sitting in front of a computer and typing in programs! This course examines the concept at the very core of computer science - computation - and builds up an understanding of the key principles which define the thinking of computer scientists.

This course serves as a foundation for those who will continue their study of computer science by providing a "big picture" view that cuts across many individual courses. For those who are exploring their options, this course provides an introduction to what computer science is and its potential. And for those who take no more computer science, this course provides a deeper understanding of how the machines they use every day accomplish their tasks.

Valid HTML 4.01!