Principles of Computer Science

Week 1

5/18/06 - Lecture 1
What is Computer Science? What will this course will cover? Class information stuff. Introduction to the Internet. (History, how it works, etc.)
In Lab: Lab 1 | Introduction to HTML programming.
5/19/06 - Lecture 2
More HTML. Introduction to CSS. Representing color.

Week 2

5/22/06 - Lecture 3
More CSS. Also, check out the CSS Tutorial. Or the W3 Schools CSS Tutorial.
5/23/06 - Lecture 4
The internet and networks in general. (Also, graph theory and social networks.)
In Lab: Lab 2 | CSS webpage projects
5/24/06 - Lecture 5
Introduction to problem solving and algorithms.
5/25/06 - Lecture 6
Introduction to Java.
In Lab: Lab 3 | Graphs and Algorithms
5/26/06 - Lecture 7
More Java. Primitive data types, operators, the if statement.

Week 3

5/29/06 - Lecture 8
More Java. Introduction to References and Objects.
Two Types: Applications vs. Applets.
Reading: Textbook Chp. 2
5/30/06 - Lecture 9
More Java. The String class. Loops. Writing Methods.
In Lab: Lab 4 | Java programming with data types and operators.
5/31/06 - Lecture 10
More Java. In-class loop demo.
6/01/06 - Lecture 11
More Java. Finishing in-class loop demos. Demos of Java methods.
In Lab: Lab 5 | Playing a game.
6/02/06 - Lecture 12
Java. Understanding Method behavior. Scope of identifiers (names).

Week 4

6/05/06 - Lecture 13
Introduction to Arrays.
6/06/06 - Lecture 14
More on Arrays.
Covering Midterm Topics
In Lab: Lab 6 | Accessing Arrays
6/07/06 - Lecture 15
Finishing up Arrays
Short Array Example
Midterm Practice Exam
6/08/06 - Lecture 16
Introduction to applets and graphics.
In Lab: Midterm Review Session
6/09/06 - No Lecture
Midterm Exam

Week 5

6/12/06 - Lecture 18
Binary Numbers and Boolean Logic
6/13/06 - Lecture 19
Computer Architecture
Compilers and OS.
In Lab: Lab 7 | Boolean Logic
6/14/06 - Lecture 20
Starting on algorithmic complexity. Linear search and binary search.
The log function. O-notation and &Theta-notation
6/15/06 - Lecture 21
Sorting: Selection sort, insertion sort, and bubble sort.
In Lab: Lab 8 | Building Software Together
6/16/06 - Lecture 22
A.I.

Week 6

6/19/06 - Lecture 23
Intractable problems and Algorithmic Complexity.
Parallel Algorithms.
Reading: Textbook Chp. 13, 14
6/20/06 - Lecture 24
Recursion.
In Lab: Lab 9 | Towers of Hanoi
6/21/06 - No Lecture
Discussion of Digital Ethics Topics
6/22/06 - Lecture 26
Cryptography.
In Lab: Work day
6/23/06 - Lecture 27
Discussion of Digital Ethics Topics / Special topic. (Web 2.0? Mashups? Social networks? digg?)

Week 7

6/26/06 - Lecture 28
Special topic / projects / or debates. Finals review materials out.