Date | Topic | Notes, Readings | Articles/News |
Jan 23 | Introduction and overview.
What is (not) Computer Science? What is an algorithm? |
L1.ppt | pdf
[optional: GS:Ch. 1] |
Tech News.
|
Jan 24 | Introduction to algorithms and Java programming.
Pseudocode elements. Basic instructions. Conditional instructions. |
L2.ppt |L2.pdf
[optional: GS:Ch. 2] |
|
Jan 25, 26 | Programming basics: The infamous Hello world! program.
Basic types and operations: input, output, variables, assignment and
arithmetic expressions, if-then-else.
Jave starter package: JavaStarter Examples: Hello.java |
JavaBasics.ppt |JavaBasics.pdf
The assignment statement.pdf The if statement.pdf |
Tech News |
Jan 31 | Lab 1 (Java basics: basic instructions and conditionals) | Stanford on iTunes | |
Febr 1, 6 | Loops.
Programming style. Examples: Looping.java Class work: Max3.java | Sum.java | SumEven.java | SumSquares.java | ReadPositive.java | ReadPositiveCount.java |
Loops.ppt | pdf
Programming guide.pdf |
Reading: 17 Bits of Style.pdf (M. G. Litvin) |
Febr 7 | More loop problems Class work: Loops.java | GameStats.java |
The while statement.pdf |
|
Febr 8 | Lab 2 (Java basics: loops) | ||
Febr 13, 14 | Arrays in Java.
Examples: ReadArray.java Problems: Array problems Class work: Search array part(a) | part(b) | part(c) RepSearchArray.java |
Arrays.pdf Java reference tips.pdf |
|
Febr 15 | Lab 3 (Java basics: arrays) | ||
Febr 20, 21 | Strings.
Examples:StringStarter.java Problems: My IMDB: MovieSearchStarter.java Class work: MyImdb.java |
||
Febr 22 | Nested loops.
Examples: Stars.java Problems: Problems Class work: NestedMultiply.java |
||
Febr 27, 28 | Lab 4 (Java: nested loops and strings) | Avi Rubin on e-voting | |
March 1st | EXAM 1 | Java basics (all material so far) | |
March 6, 7 | Algorithm efficiency
Lecture notes: pdf | ppt. Searching: Sequential search. Binary search. Class work: BinSearch.java | BinSearchTest.java | SeqSearchTest.java |
Need for fast algorithms | |
March 8 | Lab 5 (Java) | ||
March 10-26 | SPRING BREAK | ||
March 27, 28 | Efficiency. Sorting.
Methods in Java. Examples: FunQuest.java | Feet2Inches.java |
Why the Net should stay neutral | |
March 29 | Lab 6 (Java) | ||
April 3, 4 | Methods (in Java).
Array basic methods: ArrayFun.java Printing patterns exercise. Poetry Poet.java For loops |
For.pdf | |
April 5 | Lab 7 (Java: Methods) | April 10, 11, 12 | Recursion (in Java).
Examples, classwork: Whee.java | LimitedWhee.java RecSum.java | Fact.java | RecPower.java Recursive graphics: Sierpinski triangle |
April 12 | Lab 8 (Java: Recursion) | April 17 | Lab 8, Exam review. |
April 18 | Classes and objects in Java.
Examples: Account.java | AccountTest.java |
||
April 19 | EXAM 2 | Java programming (all material after exam 1) | |
April 24, 25, 26, May 1 | Computer Organization:
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. |
||
May 2 | Lab 9 (Computer organization) | ||
May 3, 8, 9 | Theory of complexity:
Turing machines. Halting problem. Church-Turing thesis. Computability, complexity classes. Lab 10 |
May 10 | Service learning: Student presentations. | Guidelines: service | social | May TBD | Final review |
May 18 at 9am | FINAL EXAM | Computer Organization, Turing machines. |
Students are expected to follow the Bowdoin Computer Use Policy and the Academic Honor Code.