CS 101 - Spring 2006

Introduction to Computer Science

 

Announcements


Exams

  1. Test program 1: Assigned Monday, March 27, due Monday, April 3. Solutions
  2. Test program 2: Assigned Monday, May 1, due Monday, May 8.
  3. Final: self-scheduled during Finals week, 5/15-5/23.


Labs and Assignments

  1. Lab 1, Tuesday 2/14: Intro to Java, due Monday, 2/20. Solutions
  2. Lab 2, Tuesday 2/21: Dirty Laundry, due Monday, 2/27. Solutions
  3. Lab 3, Tuesday 2/28: Magnets, due Monday, 3/6. Solutions
  4. Lab 4, Tuesday 3/7: Boxball, due Monday, 3/13. Solutions
  5. Lab 5, Tuesday 3/14: Textplay, due Friday, 3/17. Solutions
  6. Lab 6, Tuesday 4/4: Frogger, due Monday, 4/10. Solutions
  7. Lab 7, Tuesday 4/11: Doodling, due Monday, 4/17. Solutions
  8. Lab 8, Tuesday 4/18: Simon, due Monday, 4/24. Solutions
  9. Lab 9, Tuesday 4/25: Nibbles, due Monday, 5/1. Solutions
  10. Lab 10, Tuesday 5/9: Spam, due Saturday, 5/13.


Syllabus

Date     Lectures and Labs     Reading       Exercises
 
Week 1
Mon 2/13     Lect 1: Course Introduction     Chap 1 1.9.3
Tues 2/14     Lab 1: Introduction to Java (No clicking, due 2/20)    
Wed 2/15     Lect 2: Graphics, Event Handling     Chap 2 2.7.2, 2.7.6
Fri 2/17     Lect 3: Variables and Numbers     Chap 3 3.11.2 a, b
 
Week 2
Mon 2/20     Lect 4: Conditionals (if / else)     Chap 4 4.8.4, 4.8.5, 4.8.6
Tues 2/21     Lab 2: Events Handling with Conditionals (Dirty Laundry, due 2/27)    
Wed 2/22     Lect 5: Primitive Types     Chap 5 5.7.2, 5.7.6 a, b, c
Fri 2/24     No class: Winter Carnival    
 
Week 3
Mon 2/27     Lect 6: Defining and Using Classes     Chap 6 6.8.3, 6.8.5
Tues 2/28     Lab 3: Defining Classes (Repulsive Behavior, due 3/6)      
Wed 3/1     Lect 7: Classes, Control Structures (while)     Chap 6, 7     7.10.1
Fri 3/3     Lect 8: Declarations and Scope; Introduction to Active Objects     Chap 8, 9 8.6.3
 
Week 4
Mon 3/6     Lect 9: Active Objects I, Interfaces     Chap 9, 10     9.10.1-9.10.3, 10.5.1-10.5.2
Tues 3/7     Lab 4: Parameters (Boxball, due 3/13)    
Wed 3/8     Lect 10: User Interface Components and Events I     Chap 11
Fri 3/10     Lect 11: User Interface Components and Events II     Chap 11
 
Week 5
Mon 3/13     Lect 12: User Interface Components and Events III     Chap 11 Layout Quiz
Tues 3/14     Lab 5: GUI Practice (Textplay, due 3/17)    
Wed 3/15     Lect 13: Active Objects II     Chap 9
Fri 3/17     Lect 14: Active Objects III     Chap 9
 
Spring Break
 
Week 6
Mon 3/27     Lect 15: Recursive Structures and Methods I
Test Program 1 assigned, due Monday 4/3
    Chap 12
Tues 3/28     Lab: Work on Test Program 1    
Wed 3/29     Lect 16: Recursive Structures and Methods II     Chap 12
Fri 3/31     Lect 17: Recursive Structures and Methods III     Chap 12 12.1.6, 12.1.13, 12.2.1
 
Week 7
Mon 4/3     Lect 18: Recursive pictures and tail recursion     Chap 12
Tues 4/4     Lab 6: Loops and Simple Threads (Frogger, due 4/10)    
Wed 4/5     Lect 19: Debugging, Recursion Practice
    Chap 12
Fri 4/7     Lect 20: Binary numbers, UNIX, and Java applications      
 
Week 8
Mon 4/10     Lect 21: For Loops, Arrays I     Chap 13, 14 13.2.2, 13.6.5
Tues 4/11     Lab 7: Recursion (Doodling, due 4/17)    
Wed 4/12     Lect 22: Arrays II     Chap 14 14.5.2, 14.9.2
Fri 4/14     Lect 23: Arrays III     Chap 14
 
Week 9
Mon 4/17     Lect 24: Object-Oriented Program Design     Chap 21
Tues 4/18     Lab 8: Arrays (Simon, due 4/24)    
Wed 4/19     Lect 25: Multi-Dimensional Arrays     Chap 15 15.2.1, 15.4.1
Fri 4/21     Lect 26: Inheritance     Chap 17 17.8.8
 
Week 10
Mon 4/24     Lect 27: Character Strings     Chap 16 16.5.2, 16.5.5, 16.5.6
Tues 4/25     Lab 9: 2D Arrays (Nibbles, due 5/1)    
Wed 4/26     Lect 28: Exceptions     Chap 18
Fri 4/28     Lect 29: Searching, complexity of algorithms     Chap 20 20.1.2, 20.1.4
 
Week 11
Mon 5/1     Lect 30: Files, Streams, and Networks
Test Program 2 assigned, due Monday 5/8
    Chap 19
Tues 5/2     Lab: Work on Test Program 2    
Wed 5/3     Lect 31: Elementary sorting methods     Chap 20 20.6.3
Fri 5/5     Lect 32: Recursive sorting methods     Chap 20
 
Week 12
Mon 5/8     Lect 33: Linked Lists      
Tues 5/9     Lab 10: Strings (Spam, due 5/13)    
Wed 5/10     Lect 34: Linked Lists II, Concurrency      
Fri 5/12     Lect 35: Course Summary; What is Computer Science?