Week 1 Week 2 Week 3 Week 4 Week 5 Week 6 Week 7

Syllabus - Computer Science 1

Note: I borrowed a lot of material for my lecture notes from courses taught by Dr. Jeff Forbes, Sam Slee and Tammy Bailey.

Week 1


Lecture 1 - Thursday, 05/17/07: What is Computer Science ? What will this course cover ? Course specifics. The Internet.
No lab today.

Lecture 2 - Friday, 05/18/07: Overview of HTML
Required reading: Tutorial (an excellent introduction to HTML by Sam Slee, who taught last summer)
Recommended reading: W3 Schools HTML tutorial (very interactive)
Pre-lab assigned - due on Tuesday, 05/22/07.

Week 2


Lecture 3 -Monday, 05/21/07: Introduction to CSS - Sample HTML file     Download this sample image also
Drop/Add ends today.
Required reading: CSS Tutorial (By Sam Slee)

Lecture 4 - Tuesday, 05/22/07: Finish up on CSS. (Assignment #0 due)
Lab 1 : Designing your webpage with HTML and CSS.
Recommended reading: W3 Schools CSS tutorial

Lecture 5 - Wednesday, 05/23/07 : Introduction to algorithms and problem-solving in CS

Lecture 6 - Thursday, 05/24/07 : Graphs and the Internet
Lab 2 : Graph theory

Lecture 7 - Friday, 05/25/07 : Concepts of programming

Week 3


Lecture 8 - Monday, 05/28/07: Introduction to Java
Reference material: Introduction to Programming using Java: Chapter 1: Sections 3 and 4

Lecture 9 - Tuesday, 05/29/07: More Java - data types, identifiers and operators
Reference material: Introduction to Programming using Java: Chapter 2: Sections 1, 2 and 5
Lab 3: Your first Java Program.

Lecture 10 - Wednesday, 05/30/07: Type conversion, program statements, loops
Reference material: Introduction to Programming using Java: Chapter 3: Sections 1, 2, 3, 4 and 5
Type Conversion Code Example     Factorial of a number entered by the user

Lecture 11 - Thursday, 05/31/07: Strings and Subroutines/Methods
Reference material: Introduction to Programming using Java: Chapter 4: Sections 2, 3 and 4
Lab 4: Java Programming involving loop(s).

Lecture 12 - Friday, 06/01/07 : Finishing up on Subroutines
Extra Credit: Subroutines

Week 4


Lecture 13 - Monday, 06/04/07: Arrays
Reference material: Introduction to Programming using Java: Chapter 7: Sections 1, 2 and 5
Code Example

Lecture 14 - Tuesday, 06/05/07: Programming Exercise
Lab 5: Using Methods and Arrays

Lecture 15 - Wednesday, 06/06/07: Recap, Projects
Practice Midterm
Project Web-page

Lecture 16 - Thursday, 06/07/07: Classes and Objects
Reference material: Introduction to Programming using Java: Chapter 5: Sections 1 and 2
In Lab: Midterm Review

Friday, 06/08/07: Midterm exam

Week 5


Monday, 06/11/07: Discuss Midterm

Lecture 17- Tuesday, 06/12/07: Binary numbers and Boolean Logic
Lab 6: Binary Arithmetic and Boolean Algebra
Project proposals due today

Lecture 18 - Wednesday, 06/13/07: Introduction to Computer Architecture: Compiler and OS
Reference material: Great Ideas in CS with JAVA: Chapters 8 (Pages 247-250), 10 (Pages 302-308)
Limericks

Lecture 19 - Thursday, 06/14/07: Introduction to algorithmic complexity (linear and binary searching)
Reference material: Great Ideas in CS with JAVA: Chapters 13 and 15
Lab 7 - Extra Credit: Designing your own lecture/lab.

Lecture 20 - Friday, 06/15/07: Sorting (Selection sort, Insertion sort, Merge sort)
Link to Sorting Demos
Merge Sort Animation
Assignment - due on Tuesday, 06/19/07.

Week 6


Lecture 21 - Monday, 06/18/07: Finish up on complexity, introduction to NP-hardness, AI
Reference material: Great Ideas in CS with JAVA: Chapter 16

Links to interesting AI/Robotics-related games/software/research:

Lecture 22 - Tuesday, 06/19/07: Recursion
Reference material: Great Ideas in CS with JAVA: Chapter 4 (Pages 180-185)
Lab 8: Towers of Hanoi
Project meetings

Extra Credit Lectures and Labs
Lecture 23 - Wednesday, 06/20/07: Security and Cryptography
Reference material: Great Ideas in CS with JAVA: Chapter 11

Lecture 24 - Thursday, 06/21/07: Applying CS to other fields - Economics and Biology
Slides on Game Theory borrowed from Dr. Conitzer, Department of CS, Duke University.
In lab: Project work day

Interesting Links:
Friday, 06/22/07: Discussion/presentation of project topics
Review Questions: Lectures 16-23

Week 7


Wrap-up - Monday, 06/25/07
Projects due today!
Links to projects

Review Session for Final Exam - Wednesday, 06/27/07

Final Exam (2-5 pm) - Thursday, 06/28/07