Lectures, Labs & Assignments
This schedule is subject to change. Readings are meant to be
read in advance of the lecture for which they are shown. Assignments
will be posted as the semester progresses.
Go directly to the current week.
NOTE: Lectures and Homework solutions have been
reomoved. -- Brian S. Hayes, 9/8/2004
Week 1:
Tues Aug 26
Lecture: CourseOverview; Intro to
Binary and Boolean
Readings: Brookshear, Ch. 1.1-1.6
Thurs Aug 28
Lecture: How Computers Work
Readings: Brookshear 2.4,
Online demo of logic gates and
circuits
Week 2:
Tues Sept 2
Lecture: How Computers Work: Logic
Gates cont, the CPU; Instructions versus Data
Readings: Brookshear 2.1-2.5,
Online demo of a CPU
Assignment 1: How Computers Work, due Thursday Sept. 11.
Thurs Sept 4
Lecture: How Computers Work: CPU
cont, the Memory Hierarchy, Programs vs. Processes
Readings: Brookshear 3.1-3.5, 8.1-8.2,
Online demo of Operating System functions
Lab: Using SIMS File Services
(Kevin Heard)
Week 3:
Tues Sept 9
Lecture: How Computers Work:
Operating Systems and Memory Management
Readings:
Online demo of Operating System functions
Thurs Sept 11
Lecture: The Java VM; Programming
Paradigms
Readings: Brookshear 5.1-5.5
Assignment 2: Memory Management and Program Structure, due Thursday
Sept 18
Lab: Build a Home Page
Week 4:
Tues Sept 16
Lecture: Analysis and Design
Readings: Lafore Ch. 1
Thurs Sept 18
Lecture: Analysis and Design
Readings: Brookshear 4.3, 6.1 - 6.6, Handout on designing with CRC
Cards, Class diagrams portion of this UML
tutorial
Lab: Using the Eclipse IDE (and
other java tools)
Week 5:
Tues Sept 23
Lecture: Algorithms and Pseudocode
Readings: Brookshear 0.1-0.5, 4.1-4.2, 4.4; Lafore Ch. 2
Assignment 3: Tic-Tac-Toe,
due Thursday Oct 2
Thurs Sept 25
Lecture: Math Review, Intro to
Analysis of Algorithms
Readings:
- Math
Review: Logarithms and Exponential Functions (Be sure to follow the
links to the topic Logarithms and any others that you might find
helpful.),
- Lafore Chapter 2 (Review),
- Complexity
and Big-O Notation,
- Thinking In Java, Appendix A:
Passing & Returning Objects
Definitely read the sections "Passing references around," "Aliasing",
"Making local copies," "Pass by value," and "Summary." Familiarize
yourself with the section on Cloning (e.g. read the first couple of
pages and skim the rest of the section titles). You might also find the
information on "Read-only classes" and "The String and StringBuffer
classes" to be interesting and useful as a reference.)
Lab: Javadoc, Intro to Unix, Part I (Kevin
Heard)
Week 6:
Tues Sept 30
Lecture: Analysis of Algorithms,
cont.
Readings: Brookshear 4.6, Handout from Goodrich & Tamassia
Thurs Oct 2
Lecture: Stacks
Readings: Lafore Ch.4: p 115-132
Lab: Version Control (and turning in your assignments electronically) [CVS with Eclipse
Tutorial]
Week 7:
Tues Oct 7
Lecture: Queues, Vectors
Readings: Lafore Ch 4: p 132-173
Code: VectorQueue
and test driver (note slightly different than what is in the lecture
slides)
Assignment 4: Analysis of Algorithms, due Oct 16
Thurs Oct 9
Lecture: Intro to Recursion
Readings: Lafore Ch.6
Lab: Intro to Unix, Part II
(Kevin Heard) [This is optional, but only if you already know Unix.]
Week 8:
Tues Oct 14
Lecture: Trees
Readings: Lafore, Chapter 8
Thurs Oct 16
Lecture: Tic-Tac-Toe Design and
Miscelaneous Java Notes
Readings: Thinking In Java
- Chapter 1: Introduction to Objects - pp 31 - 59
- The static keyword - pg 92+
- Coding style - pg 103
- Java access specifiers - pg 224+
- Choosing composition vs. inheritance - p 258+
Assignment 5: Generating HTML using Trees and Recursion, due
Oct 28
Lab: Debugging with Eclipse
Week 9:
Tues Oct 21
Lecture: Heaps, and Misc. Java
Notes
Readings: Lafore Ch 12
Thurs Oct 23
Lecture: Hash Tables
Readings: Lafore Ch. 11
Lab:
Week 10:
Tues Oct 28
Lecture: JavaServer Pages
Readings: JavaServer Pages, by Hans Bergsten, Chapter 1, 2, 3
The electronic version of the book can be viewed at
Safari Tech Books Online (see link at UC Berkeley
Library, Electronic Reference Books).
Assignment 6-I: Codebreaker -
Part I , due Nov 13
Thurs Oct 30
Lecture: JavaServer Pages
Readings: JavaServer Pages, by Hans Bergsten, chapters 5, 6, 8,
17 and Review chapters 10, 19.
Lab: Codebreaker help
Week 11:
Tues Nov 4
Lecture: JavaServer Pages (Part
III), Regular Expressions, and Substring Matching
Readings:
- Learning
to Use Regular Expressions by Example , by Dario F. Gomes.
Note that this is a multipage tutorial that provides a good
introduction to regular expressions.
- Regex
Tutorial, by Jan Goyvaerts
This tutorial is more detailed and you should read it after the above
Gomes tutorial (above).
- Tools
and Languages
Peruse this page, and read the pages about using regular expressions in
Java (or your favorite programming language).
- You should review the Java API references for
java.lang.String, java.util.regex, java.util.regex.Pattern, and
java.util.regex.Matcher.
Thurs Nov 6
Lecture: Graphs – Guest lecturer:
Nick Galbreath, friendster
Readings:
- Lafore Chapter 13, Graphs
- Review Heaps
Lab: JSP
Week 12:
Tues Nov 11
NO LECTURE — Veterns Day Holiday
Readings: Catch up on all the reading!
Thurs Nov 13
Lecture: Graphs – Guest
lecturer: Nick Galbreath, friendster
Readings: Lafore Chapter 14, Weighted Graphs
Assignment 7: Graphs, due
Nov 25
Lab: Regular Expressions
Week 13:
Tues Nov 18
Lecture: Sorting
Readings:
- Lafore Ch 3, Simple Sorting (pg 77+) [understand Bubble
Sort, peruse Selection Sort and Insertion Sort, read Comparing the
Simple Sorts]
- Lafore Ch 7, Advanced Sorting (pg 315+) [understand
Quicksort, peruse or skip others]
- Lafore Ch 12, Heapsort (pp 601-602)
- Lafore Ch 15, Sorting (pp 724-725)
- Eckel (Thinking in Java), Sorting an array (pp
476-480)
- Eckel, Sorting and searching Lists (pp 560-561), and
Utilities (pp 561-562)
Thurs Nov 20
Lecture: Databases, SQL, JDBC
Code: SQL for Schedule
Database Demo
Readings:
- Brookshear Ch 9, Database Structures
- MySQL
Basics, by The Analysis and Solutions Company.
This is a very quick MySQL tutorial. Start with the section on Creating.
- JDBC
Basics, by Maydene Fisher.
This tutorial is also a quick read. JDBC is the Java Database
Connectivity standard and APIs for accessing databases using Java code.
Sections:
- Setting Up a Database
- Establshing a Connection
- Setting Up Tables
- Retrieving Values from Result Sets
- Updating Tables
- Optional reading: MySQL Cookbook by Paul DuBois
For further discussion of MySQL, you may be interested in the MySQL
Cookbook. It is available on-line via the Safari Tech Books Online
(see link at UC Berkeley Library, Electronic Reference Books).
Lab: Programming to
a Database
Week 14:
Tues Nov 25
Lecture: XML and DOM
Code Samples: 255_DOM_Lecture_Examples.zip
Readings:
- XML Basics — Read one of the following:
- Learning XML, 2nd Edition, By Erik T. Ray,
Chapters 1, 2, 3, 4.1.
It is available on-line via the Safari Tech Books Online (see link at
UC Berkeley Library,Electronic Reference Books). This book provides a
good introduction to XML and the reads fairly quickly. The opening
sentences of chapter 1.1 are certainly amusing: "XML is a lot like the
ubiquitous plastic containers of Tupperware. There is really no better
way to keep your food fresh than with those colorful, airtight little
boxes..."
- A
Technical Introduction to XML, by Norman Walsh
You can skip the more technical parts of this article.
- Understanding
DOM, IBM developerWorks, by Nicholas Chase
IBM developerWorks supports a number of tutorials. This one does
require you to register — if you don't want to do this, you can
probably find a reasonable alternative by searching the web.
Assignment 8: Sims Bank, Part A (design) due Thurs. Dec 4
start of lecture, Part B (code) due Monday Dec. 15 at noon. No
Late Turn-ins Accepted!
Thurs Nov 20
Thanksgiving Holiday — NO LECTURE
Week 15:
Tues Dec 2
Lecture: Assignment Discussion
and Review
Readings: NONE.
Thurs Dec 4
Lecture: Recap and Sims Bank
Design
Readings: NONE.
Resources: Sims Bank Javadoc (note that this is the documentation for
an example design/implementation and the documentation is not
complete).
Lab: Help for Sims Bank
Finals "Week" (Dec 10-18):
Mon Dec 15
Assignment 8 due at 12 noon.
|