|Sept 5||Introduction and overview.
What is (not) Computer Science?
What is an algorithm?
|L1.ppt | pdf
Faster supercomputer aiding weather forecasts.
[optional: GS:Ch. 1]
|Sept 6||Introduction to algorithms.
[optional: GS:Ch. 2]
IT field now faces worker shortage.
Robots run like human.
Computer game for the blind.
Sony creates curios AIBOs.
|Sept 7||Lab 1 (Introduction to algorithms, part 1 (basic instructions and if-then-else))|
|Sept 12, 13||[Bowdoin Robocup with Henry Work.]
Computing 1+2+...+n and variations.
|L3-4.ppt | pdf
[optional: GS:Ch. 2]
|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 |
[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 |
|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.
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
Array of strings.
Class work: my imdb MovieSearch.java | working version
|Oct 19||Lab 6 (Java: Arrays, strings [palindrome, Caesar's cypher])|
|Oct 24, 25||Methods in Java.
Example: Circle.java | FunQuest.java
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
|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).
|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.
|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).
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.