Department of Computer Science 
CS 105 - Introduction to Computing and the Web

Fall 2003 Syllabus
COURSE OBJECTIVES
This course addresses the questions "What is computer science?" and "How does a computer scientist solve a problem?"  It introduces the discipline of computer science broadly, including elements of the theory of computing, computer languages, translation, computer architecture, graphics, networks, and some key social issues that challenge computers and technology in the 21st century.
This course covers principles of algorithmic problem solving, programming, hardware design, software, models of computation, graphics, and networks through in-class discussions, problem-solving sessions, and hands-on laboratory exercises that allow consolidation of the concepts discussed in class.  The C++ programming language is used, alongside several simulators and tools that encourage experimentation and creative thinking.  A laboratory of iMac's supports this work.  No prior knowledge of programming is assumed.
 
TEXT (required):
Schneider and Gersting, An Invitation to Computer Science (2e), Brooks/Cole (1999), and supplementary handouts and software tools to be distributed in class.
 
INSTRUCTOR AND COURSE INFORMATION:
 
Allen Tucker, 220 Searles Hall
E-mail address:  allen@bowdoin.edu
Office Hours:     TWTh 4:00-5:00pm, or by arrangement
Class meets:       MW 2:30-3:55 - Searles 126
Lab meets:         Th 2:30-3:55 - Searles 128
Group e-mail:     csci105@bowdoin.edu
Course Web address: www.bowdoin.edu/~allen/courses/cs101/syllabus.html
 
COURSE OUTLINE:

Week of  Topics  Readings  Assignment
Sep 1
Foundations of computer science: algorithms, hardware, languages, applications
Chapter 1 Asst 1
Sep 8
Algorithm design: pseudocode, sequences, selection, iteration

Chapter 2 Asst 2
Sep 15, 22
The efficiency of algorithms: search, sort, pattern matching, measures of speed
Chapter 3 Asst 3 ,
Asst 4

Sep 29
*** test #1 *** 

Oct 6
Hardware: how does a computer work?  Logic, gates, circuits, designing logic circuits
Chapter 4

Asst 5

Oct 13, 20
Machine organization
Chapter 5
Asst 6
Oct 27
Software and languages: Programming in C++

Chapters 6
and 7.1-7.6
Asst 7
Nov 3
Abstraction: designing C++ functions
7.7
Asst 8
Nov 10
*** test #2 ***


Nov 17, 24
Applications: graphics programming in C++
7.8
Asst 9
Dec 1, 8 Social issues of computing: privacy, intellectual property, cryptography and Internet security, the limits of cyberspace
Chapter 14
Asst 10
Dec 15
*** test #3 *** (consult the final exam schedule for the exact date and time)


 

COURSE WORK:The work for this course includes class participation, readings, three tests, and 9 weekly lab assignments that will include experimentation, programming, and written answers to questions. Assignment 10 will be a team project that explores a social issue in computing in depth. All tests and assignments will be graded and will contribute to your course grade. Attendance is required for all scheduled class and lab meetings.

The three tests are in-class open-book individual tests.  The lab assignments can be downloaded and printed directly from this Web page. Lab assignments may be done either individually or in teams of two (your choice), but all other written work should be completed individually.  Assignments should be turned in to 220 Searles by 5:00pm on their due date.

Students are expected to follow Bowdoin's Computer Use Policy as well as its Academic Honor Code.