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.
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) |
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.