[Bowdoin Computer Science]

CSci 107 Syllabus

Mon, Wed 11:30 - 12:55 and Tue 2:30 - 3:55 in Searles 126/128

Faster supercomputer aiding weather forecasts.
A Techie, absolutely, and more.
Space station gets HAL-like computer.
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]
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.
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
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
Example: StringStarter.java
Array of strings.
Class work: my imdb MovieSearch.java | working version
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
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.