This course provides an introduction to fundamental concepts and techniques of computer science. The framework is an object-oriented programming language. Both programming and algorithm analysis are covered. Programming topics include basics of data and control; problem decomposition; recursion; simple graphics; objects and abstraction; arrays and pointers; and files. Good programming style is emphasized throughout the course. Algorithm topics include searching, sorting, and linked lists. This course requires a significant time commitment on the part of the student. Although no previous computing experience is assumed, first-year students in the fall term are encouraged to contact the instructor prior to enrolling in the course.