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.
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.
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
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
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
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.
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
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