Fundamentals of Computer Science II (CSC-152 97F)

[News] [Basics] [Syllabus] [Outlines] [Assignments] [Examples] [Readings] [Bailey Docs]

# Outline of Class 17: Design and Vectors

## Miscellaneous

• Assignment four is now ready. I would strongly recommend that you work in groups on this assignment.
• It seems like most of you got assignment three completed on time. Any general questions?
• We'll spend some (and perhaps all) of today's class discussing the design of your othello games.
• On Monday, come prepared with questions on chapter 4. I'll generally assume that if you don't have questions, I won't need to discuss the material, as I see little point in repeating what you've already read.

## Implementing Vectors

• Up to now, we've talked about the use of vectors and the design of an interface for vectors.
• How does one implement vectors?
• Bailey implements his Vector class with Java's built-in arrays.
• Each Vector has an associated array which can contain at least as many elements as are in the Vector.
• To update an element in a Vector, you simply assign to the corresponding place in the array.
• To insert an element in a Vector, you grow the array if necessary, shift the objects in the incorrect places, and then put it in place.
• But what would we do if we had to implement Vectors and did not have access to arrays?
• It depends on some other assumptions.
• In particular, t is generally assumed that it takes only a few steps to set or get the nth element of a vector.
• Later this term, we'll see other structures (such as lists) that have behavious similar to vectors, but that are less efficient for setting and getting (but perhaps more efficient for other operations).
• In order to get that efficiency, you must either already have a class that provides such efficiency, or you must have direct access to memory.
• Using direct access to memory, you can create an array (or Vector) of N elements by allocating N*sizeof(element).
• Suppose the memory allocated begins at position X.
• The initial (0th) element is at position X.
• The next (1st) element is at position X+sizeof(element).
• The ith element is at _____

## The design of an othello game

• Suppose you were required to design an object-oriented othello game (as you were for assignment three, and which you'll have to implement for assignment four).
• You might begin by making sure that you had a good specification of what was expected of you:
• What are the rules of othello? This was discussed in class.
• What should the implementation do? See assignment four.
• What does "object-oriented" mean in this context? It means that you should choose appropriate objects for your design (and that's much of what we'll talk about today).
• You might also consider some variants of the assignment, so that you can make sure that your classes are sufficiently general or reusable.
• The rest is left to in-class discussion.

Outlines: prev next

[News] [Basics] [Syllabus] [Outlines] [Assignments] [Examples] [Readings] [Bailey Docs]

Disclaimer Often, these pages were created "on the fly" with little, if any, proofreading. Any or all of the information on the pages may be incorrect. Please contact me if you notice errors.