Department of Computer Science
CS 50 - Computing: Tools and Issues

Fall 2007 Syllabus
COURSE OBJECTIVES: Computer science has insinuated itself into many aspects of our lives. What is computer science? What are it distinctions and similarities with related disciplines, especially mathematics and the sciences? What are the core elements of computer science and how do they reveal themselves in our everyday lives? What do we need to know about computer science in order to function effectively in a technological world?

This course helps prepare students to address these questions. First, we will take a first-hand look at the nature of programming and its role in computer science. Second, we will explore the nature of the Internet -- how it is designed, managed, and used effectively in commercial, academic, and governmental applications. Finally, we will examine some key social and ethical issues that have important places in a technological world; issues like intellectual property, privacy, and Internet security.

Course Web site:

Course e-mail address:
Class meeting time (attendance required): TTh 2:30-3:55pm, Searles 223
Problem session meeting time (attendance optional): To be determined, Searles 128

PRIMARY TEXT (required): Schneider and Gersting, Invitation to Computer Science
A C++ programming tutorial -- at the course web site,
Additional readings -- at the course web site.

INSTRUCTOR: Allen Tucker, 82 Federal Street
E-mail address:
Office Hours: MW 4:00-5:00 in Searles 224, or by arrangement
Phone: x3131


The course will combine lectures, laboratory experiences, readings, and short papers that allow you to substantively engage the central themes of the course. A modest amount of programming in C++ will accompany the laboratory component. Additional laboratory work will include the use of simulators and models that add hands-on experiences to other topics encountered in the readings.

The course includes three examinations; each one is open book and non-cumulative. All assignments and examinations will contribute to your course grade. You are expected to follow the Bowdoin College Honor Code in all course work.

Many of the lab problems may be solved collaboratively. Some additional out-of-class lab sessions will be conducted by the instructor; attendance at these sessions is optional.


Week beginning Topics Lectures
Readings Labs

Aug 27, Sept 3

What is computer science?
Algorithm design
Ch 1, 2 asst1.html
Sept 10

Algorithm efficiency

Ch 3
Sept 17 Programming in C++
Ch 8.3-8.6
Sept 24
(*** Test #1 ***)

Oct 1, 8
C++ Functions and Graphics Programming unit5.ppt
Ch 8.7, 8.9

Oct 15

Computing Tools: Logic, Gates, and Circuits
Ch 4
Oct 22, 29

Computing Tools: the Internet

Ch 7
Nov 5
(*** Test #2 ***) Tuesday Nov 6

Nov 12
Computing Issues: Internet Security and Privacy unit8.ppt
Ch 13.4, 15.2.3 asst8.html
Nov 19, 26
Computing Tools: Databases and E-Commerce unit9.ppt
Ch 13.2, 13.3 asst9.html
Dec 3
Computing Issues: Artificial Intelligence
Ch 14
Dec 10
Friday Dec 14, 9:00am
(*** Test #3 ***)