| Date | Topic | Notes | Articles/News | 
| Sept 5 | Introduction and overview.
 What is (not) Computer Science? What is an algorithm?  | 
L1.ppt | pdf 
 [optional: GS:Ch. 1]  | 
Faster supercomputer aiding weather forecasts.
|
| Sept 6 | Introduction to algorithms.
 Pseudocode elements. Basic instructions. Conditional instructions.  | 
L2.ppt |L2.pdf
 [optional: GS:Ch. 2]  | 
IT field now faces worker shortage.
 Robots run like human. Computer game for the blind. Sony creates curios AIBOs. ROBOCUP  | 
| Sept 7 | Lab 1 (Introduction to algorithms, part 1 (basic instructions and if-then-else)) | ||
| Sept 12, 13 | [Bowdoin Robocup with Henry Work.]
 Loop instructions. Computing 1+2+...+n and variations. Gauss formula.  | 
L3-4.ppt | pdf 
 [optional: GS:Ch. 2]  | 
Forecasting Katrina
 Mac securiy  | 
| Sept 14 | Lab 2 (Introduction to algorithms, part 2 (loops)) | Robotic vehicle races | |
| Sept 19, 20 | Lists. 
 Iterating through a list: sequential search and variations (computing smallest, largest, sum, average, etc). Searching: Binary search.  | 
 L5-6.ppt |
pdf
  [optional: GS:Ch. 3]  | 
|
| Sept 21 | Lab 3 (Introduction to algorithms, part 3 (lists)) | E-voting security by Avi Rubin | |
| Sept 26, 27 | Analysing the efficiency of algorithms.
 Worst-case and best-case efficiency and order of magnitude. Analysis of sequential search, binary search, computing sums, finding smallest, largest, etc. Orders of magnitude 1, lg n, n, n2 Sorting: selection sort.  | 
 L7-8.ppt |
pdf
 [optional: GS:Ch.3]  | 
EFF on e-voting | 
| Sept 28 | Lab 4 (Introduction to algorithms, part 3 (efficiency)) | Okay George, Have you got a girlfriend?
 | 
|
| Oct 3, 4 | Introduction to programming.
 The infamous Hello world! program. Basic types and operations (I/O, loops, if-then-else, loops). Class work: a program that reads 3 numbers and prints out the largest Max3.java. Class work: a program that solves a quadratic equation.  | 
java-basics.ppt |
pdf
 JavaStarter The assignment statement.pdf The if statement.pdf The while statement.pdf A programming guide.pdf  | 
|
| Oct 5 | EXAM 1 (Algorithms) | Algorithms. | |
| Oct 10 | Fall break | ||
| Oct 11 | Fall break | ||
| Oct 12 | Lab 5 (Java: basics) | Java reference tips.pdf | |
| Oct 17, 18 | Arrays  in Java. 
 Reading and printing an array: ReadArray.java Examples: Seaching through an array: SearchArray.java, RepSearchArray.java, Class work: A red-cell count histogram program Strings. Example: StringStarter.java Array of strings. Class work: my imdb MovieSearch.java | working version  | 
Arrays.pdf
 String documentation  | 
|
| Oct 19 | Lab 6 (Java: Arrays, strings [palindrome, Caesar's cypher]) | ||
| Oct 24, 25 | Methods in Java.
 Void methods. Example: Circle.java | FunQuest.java Non-void methods. Example: Sum.java | Feet2Inches.java, Class work: ArrayBasicFun.java | working version  | 
||
| Oct 26 | Lab 7 (Java: Methods [printing patterns, guessing game, poetry]) | ||
| Oct 31, Nov 1 | Methods in Java, continued. For loops.   
 Class work: Divisors.java Class work: Bank account  | for.pdf | |
| Nov 2 | Lab 8 (Java: more methods [Bank account and playing Craps]) | ||
| Nov 7, 8 | Recursion.
 Examples: RecPrint.java | RecPrintToo.java | RecPrintThree.java Class work: Exercises (min, sum, palindrome). Example: Anagram.java  | 
Some practice problems | |
| Nov 9 | Lab 9 (Java: recursion) | ||
| Nov 14 | EXAM 2 | Java Programming | |
| Nov 15, 16, 21 | Computer Organisation
 Binary numbers and conversions. Boolean logic, logic gates, logic circuits. Von Neumann architecture. A simple computer model and machine code. The fetch-decode-execute cycle.  | 
GS:Ch. 4,5,6 | |
| Nov 22 | Lab 10 (Computer organization) | ||
| Nov 23 | Thanksgiving break | ||
| Nov 28, 29 | Turing machines. Halting problem. Church-Turing thesis. Computability, complexity classes. | GS:Ch. 10 | |
| Nov 30 | Lab 11 (Turing machines) | ||
| Dec 5 | Review: recursion, computer organization, Turing machines (Lab 9, 10, 11). 
More problems. 
 Course opinion forms.  | 
||
| Dec 6, 7 | Service learning and social issues: Student presentations.
 W. Donahoe & A. Steltzer: Merymeeting mentor project website. S. Cunningham & N. Tomaino: football website. S. Kamin & K. Read: rugby website. Social issues: R. Clark, J. Howard, D. Kraft.  | 
Guidelines: service | social | |
| Dec 16 at 2pm | FINAL EXAM | Recursion, Computer Organization, Turing machines. | 
Students are expected to follow the Bowdoin Computer Use Policy and the Academic Honor Code.