Readings & Assignments
Reading Assignments, Discussion Questions, and Programming Projects will be
listed here in chronological order, i.e., with the most recent ones
at the bottom of the list.
All reading assignments are from the textbook,
Java Software Structures: Designing and Using Data Structures,
2nd Edition by Lewis & Chase,
unless specified otherwise.
Jump directly to
Week 1
| Week 2
| Week 3
| Week 4
| Week 5
| Week 6
| Week 7
| Week 8
| Week 9
| Week 10
This document was last modified on
May 14, 2008.
Week 1:
- Reading Assignment for Wednesday of First Week
-- Software Engineering
- Read Chapter 1, including the Summary of Key Concepts and
Self-Review Questions at the end of the chapter. The material in
Sections 1.3 and 1.4, on the
Software Lifecycle and UML may be new to you. UML will be used
throughout the book to illustrate relationships among classes and
between classes and interfaces, so be sure to bring any questions
you have to class. Section 1.6 introduces the concept of algorithm
analysis, which we will review in class.
- Review arrays and the ArrayList class in your notes and/or textbook
from Introduction to Programming.
- Discussion questions for Wednesday of First Week:
- Compare and contrast arrays and ArrayLists.
- Write out the code to print out all elements of an array and
an ArrayList.
- Write out the code to search for a particular element in an
array and an ArrayList.
- Come up with at least one situation where you would use each
of these data structures.
- Reading Assignment for Friday of First Week --
Java Review, MBS
- Read Chapter 2 up to the beginning of section 2.16 (p. 70).
Read the Summary of Key Concepts and
Self-Review Questions for the material you read. Most of the material in
this chapter should be review, but there may some new topics (such
as the
Iterator interface). There may also be some topics that we covered in
previous classes but without spending a great deal of time on them
(such as the static modifier and wrapper classes).
We will come back and discuss Generic Types and Exceptions later.
- Read Chapter 5 of the Marine Biology Simulation case study.
Copy the
JavaMBSUsingEclipse folder from the
Knet\Dragon\cls_compsci\cs210 folder
and run the program with bounded and unbounded data files.
- Discussion questions for Friday of First Week:
- What is the difference between an abstract data
type and a data structure?
- Questions 1 - 2 on p. 80 of the MBS
case study
Questions 1 - 3 on p. 83
- Question 1 on p. 87
- Questions 1 - 2 on p. 88
- Questions 1 - 3 on p. 90
- Looking Ahead:
- Indexing Substrings Project is due Monday of 2nd
Week
- VLBoundedEnv Programming Project is due
Friday of 2nd Week
Implement a very large bounded environment
(VLBoundedEnv) using
an ArrayList, similar to the implementation of
UnboundedEnv.
To capture the common list representation aspects of the two
classes, create
a new abstract superclass, ListEnv, that implements
only the
methods that support the ArrayList representation,
regardless
of whether the environment is bounded or unbounded.
VLBoundedEnv
and UnboundedEnv should then extend
ListEnv, each
implementing just those methods that depend on the bounded-ness of
the environment.
(See bullet 1 of Exercise 3 on p. 104 of the MBS
case study.)
Week 2:
- Reading Assignment for Monday of Second Week
-- Collection Classes, List Interface,
ArrayList; Iterators
- Complete reading Chapter 5 of the MBS case study if you haven't done
so already.
- Read Chapter 3 of Lewis and Chase on Collections and Sets.
- Read the first three sections of Chapter 4 (pp. 119 - 126)
on the concept of Linked Lists.
- Discussion questions for Monday of Second Week:
- Discussion question #1 from Friday of first week.
- Discussion questions on MBS case study from Friday of first
week.
- Questions 1 - 2 on p. 95 of the MBS
case study
Questions 1 - 2 on p. 97
- Questions 1 - 3 on p. 101
- Questions 1 - 2 on p. 103
- Reading Assignment for Wednesday of Second Week
-- Linked Lists; Exception Handling
- Read the rest of Chapter 4 (pp. 126 - 138)
on implementing a Set using a Linked List.
- Read the last section of Chapter 2 (pp. 71 - 74)
on Exceptions.
- Discussion questions for Wednesday of Second Week:
- Question 4 on p. 101 of the MBS case study.
- Questions 5 - 7 on p. 103 of the MBS case study.
- VLBoundedEnv Programming Project (due Friday of Second Week)
Implement a very large bounded environment (VLBoundedEnv) using
an ArrayList, similar to the implementation of UnboundedEnv.
To capture the common list representation aspects of the two classes, create
a new abstract superclass, ListEnv, that implements only the
methods that support the ArrayList representation, regardless
of whether the environment is bounded or unbounded. VLBoundedEnv
and UnboundedEnv should then extend ListEnv, each
implementing just those methods that depend on the bounded-ness of the environment.
(See bullet 1 of Exercise 3 on p. 104 of the MBS
case study.)
- Reading Assignment for Friday of Second Week
- No new reading assignment.
- Looking Ahead:
Jump directly to
Week 1
| Week 2
| Week 3
| Week 4
| Week 5
| Week 6
| Week 7
| Week 8
| Week 9
| Week 10