Graphic by Keith Ohlfs

CS111, Wellesley College, Fall 1997

Course Syllabus
[CS111 Home Page] [Syllabus] [Students] [Lecture Notes] [Assignments] [Programs] [Documentation] [Software Installation] [FAQ] [CS Dept.] [CWIS]

Note: This syllabus is extremely tentative, and will be revised throughout the semester. You should check this page frequently for up-to-date information. Last revised November 23, 1997.

Week 1: September 1 -- September 5

No Labs this week!

Lec#1 Tuesday, September 2

Introduction to CS111

Topics:

So you want to take CS111?

Administrivia

Big Ideas

Reading:

Macintosh Fundamentals
Backing up Floppy Disks
Viruses and Vaccines
Lucy, Email, Bulletin
Netscape
Getting Started with the CWIS
Finding Information on the Web

Lec#2 Thursday, September 4

The Web and Web Pages

Topics:

More Big Ideas

The Internet and the World-Wide Web

Introduction to HTML

Assignment:

PreLab #1 (due in Lab #1, September 8/9)

Reading:

Using Nike
Fetch
Editing in Symantec Cafe
skim NCSA's Beginner's Guide to HTML
visit Webmonkey's HTML page

Week 2: September 8 -- September 12

Lab#1 Monday, September 8

Building Your Own Web Page

Topics:

Macintosh Overview

Symantec Cafe Editor

Fetch

HTML Practice

Due Today:

PreLab #1

Assignment

Lab Assignment #1 (Home Page) (due 6pm, Thursday, September 11)

Lec#3 Tuesday, September 9

HTML as a Language

Topics:

Interpreters

The Structure of HTML Programs

Reading:

programming.java, Chapter 1

Lec#4 Thursday, September 11

Applets

Topics:

HTML wrap-up: tables & forms

Applets as Black-Box Abstractions

Invoking Applets from HTML

Implementing a simple Applet in Java

Due Today:

Lab Assignment #1

Assignments:

Prelab #2 (Applets) (due in Lab #2, September 15/16)
Problem Set #1(Ink Inc.) (due 6pm, Thursday, September 18)

Reading:

programming.java, Chapter 2


Week 3: September 15 -- September 19

Lab#2 Monday, September 15

Building An Applet

Topics:

Viewing Applets: Netscape, Applet Viewer

Symantec Cafe Projects

Compiling a Project

Errors/Debugging

Simple Java Graphics

Assignment

Lab Assignment #2 (Faces) (due 6pm, Thursday, September 18)

Lec#5 Tuesday, September 16

Object Oriented Programming

Topics:

Review: Projects, Compilation, Execution

Introduction to Object-Oriented Programming

Java Graphics

Building a House

Lec#8 Thursday, September 18

Abstraction 1

Topics:

Wrap-up: Invoking Applets

Black-Box Abstraction: Contracts/APIs

Capturing Patterns: Naming

Due Today:

Problem Set #1(Ink Inc.)
Lab Assignment #2 (Faces)

Assignments:

Problem Set #2 (Something Fishy) (due 6pm, Monday Sept. 29)
Prelab#3 (Debugging) (due in lab, Sept. 22/23)


Week 4: September 22 -- September 26

Lab#3 Monday, September 22

Naming

Topics:

Due Today:

Prelab #2 (Applets) (extension), Prelab#3 (Debugging)

Assignment:

Lab Assignment #3 (Naming Variables)

Lec#7 Tuesday, September 23

Abstraction 2

Topics:

Naming Review

Capturing Patterns: Methods

Reading:

programming.java, Sections 5.1--5.4

Lec#8 Thursday, September 25

Java Execution Model

Topics:

APIs

The Java Execution Model

Due Today:

Lab Assignment #3 (Naming Variables)

Assignment:

Prelab #4 (Arches) (due in lab, Sept. 29/30)


Week 5: September 29 -- October 3

Lab#4 Monday, September 29

Methods

Topics:

Due Today:

Problem Set #2 (Something Fishy)
Prelab #4 (Arches)

Assignment:

Lab Assignment #4 (Castles) (due 6pm, Thursday, October 22)

Lec#9 Tuesday, September 30

Divide and Conquer via Methods

Topics:

Using methods to solve problems

Patchwork quilt example.

Lec#10 Thursday, October 2

HodgePodge

Topics:

Nested Tables in HTML (from PS1)

PS3 Explanation

Debugging/System.out.println

Arithmetic in Java

Due Today:

Lab Assignment #4 (Castles)

Assignment:

Problem Set #3 (Quilts) (due 6pm, Tuesday, October 7)
Prelab #5 (Java Execution Model) (due in lab, Oct 6/7)


Week 6: October 6 -- October 10

Lab#5 Monday, October 6

Exam 1 Review

Topics:

Due Today:

Prelab #5 (Java Execution Model)

Lec#11 Tuesday, October 7

Objects: Classes

Topics:

Handling variables in the Java Execution Model

Statements vs. Expressions

Classes

Constructors

Due Today:

Problem Set #3 (Quilts)

Announcement:

Exam 1 Review Sessions will be held Tuesday Oct. 7 and Wednesday Oct. 8 from 6-8pm in E111

Lec#12 Tuesday, October 9

Exam 1 (in class)


Week 7: October 13 -- October 17

No Labs or Tuesday Lecture this week! (Fall Break)

No Tuesday lecture this week!

Lec#13 Thursday, October 16

BuggleWorld

Topics:

Buggle contract

Observers vs. Mutators

Object diagrams

Simple Inheritance

Assignment:

Prelab #6 (Buggles) (due in lab, Oct. 20/21)


Week 8: October 20 -- October 24

Lab#6 Monday, October 20

Buggleworld/Conditionals

Topics:

Practice with Buggles

Conditionals

Due Today:

Prelab #6 (Buggles)

Assignment:

Lab Assignment #6 (Conditionals) (due 6pm, Thursday, October 23)

Lec#14 Tuesday, October 21

Conditionals

Topics:

Overriding inherited methods (visit example)

Conditionals

Flow Charts

Nested Conditionals

Reading:

programming.java, pp. 181-187 (boolean operators)

programming.java, pp. 216-225 (if statements)

Computing Concepts with Java, Chapter 4 (Decisions)

Lec#15 Thursday, October 23

Recursion 1

Topics:

Conditional wrap-up: boolean operators (and, or, not)

Rule-based motion (Snaker example)

Introduction to recursion (fd example)

Due Today:

Lab Assignment #6 (Conditionals)

Assignment:

Prelab #7 (Recursion) (due in lab, Oct. 27/28)

Reading:

Computing Concepts with Java, Section 5.14 (Recursion)


Week 9: October 27 -- October 31

Lab#7 Monday, October 27

Recursion

Topics:

Recursion

Due Today:

Prelab #7 (Recursion)

Assignments:

Lab Assigment #7 (Recursion) (due 6pm, Thursday, November 30)
Problem Set #4 (Bagging Bagels) (due 11:59pm, Sunday, November 2)

Lec#16 Tuesday, October 28

Recursion 2

Topics:

Problem Set 4: FollowWorld and Find World

Multiple ways to decompose fd.

Using recursion to simplify Snaker

Methods that return booleans

Lec#17 Thursday, October 30

Recursion 3/Iteration 1

Topics:

Tail recursion and iteration: while

Retriever example

Recursive Methods that return values

Patchwork quilts revisited

Due Today:

Lab Assigment #7 (Recursion)

Assignment:

Problem Set #5 (due 6pm, Saturday November 8)

Announcement

There is no Prelab#8


Week 10: November 3 -- November 7

Lab#8 Monday, November 3

Recursion/Iteration

Topics:

Lab#8 Lab: You do not have to turn this in.

Announcement

There is no Prelab #8

Due Yesterday:

Problem Set #4 (Bagging Bagels) (due 11:59pm, Sunday, November 2)

Lec#18 Tuesday, November 4

Recursion 4

Topics:

Turtle Graphics examples

Towers of Hanoi

Reading:

programming.java, Section 5.4 (Assignments and Statements)

Computing Concepts with Java Essentials: Chapter 6 (Iteration)

Lec#19 Thursday, November 6

Iteration

Topics:

Numerical Recursion

Iteration

while and for loops

assignment

loop invariants

Due Saturday:

Problem Set #5

Assignment:

Problem Set #6 (due 6pm, Thursday November 6)

Reading:


Week 11: November 10 -- November 14

Lab#9 Monday, November 10

Exam 2 Review

Topics

Lab#9 Lab: You do not have to turn this in.

Announcement

There is no Prelab #9!

Lec#20 Tuesday, November 11

Lecture Cancelled

Topics:

Lec#21 Thursday, November 13

Instance Variables

Topics:

Fibonacci Function: Recursion vs. Iteration

Using instance variables to count bagels

Due Today:

Problem Set #6

Examination:

Exam 2 (take-home) (due 6pm, Sunday, November 23)

Reading:


Week 12: November 17 -- November 21

Lab#10 Monday, November 17

Objects With State: Kinetic World

Topics:

Lab#10 Lab: You do not have to turn this in.

Announcment

There is no Prelab #10

Lec#22 Tuesday, November 18

Data Abstraction 1

Topics:

Instance Variables

Hiding representations: Private vs. Public

Vector example

Lec#23 Thursday, November 20

Data Abstraction 2

Topics:

Multiple representations

Interoperability between representations.

Vector example continued

Due 6pm on Sunday:

Exam 2

Assignment:

Reading:


Week 13: November 24 -- November 28

Lab#11 Monday, November 24

User Interfaces

Topics:

Announcements:

There is no Prelab #11

Lec#24 Tuesday, November 25

Arrays 1

Topics:

Assignment:

Problem Set #7 (due Monday, December 8 )

Reading:

No Thursday Lecture (Thanksgiving Recess)


Week 14: December 1-- December 5

Lab#12 Monday, December 1

Arrays

Topics:

Lec#25 Tuesday, December 2

Arrays 2

Topics:

Reading:

Lec#22 Thursday, December 4

What can be Computed?

Topics:


Week 15: December 8-- December 12

Lab#13 Monday, December 1

Final Exam Review Sessions

Topics:

Due Today:

Problem Set #7

Reading Period


Week 16: December 15 -- December 19

Final Exam Period