SE 450 Fall 2001/2002
Final Review (Preliminary, may change!)
- Open book, open notes. Any answers that I deem to be copied directly
from the notes will receive no credit.
- The exam will NOT be cumulative.
It will only specifically cover material since the midterm but you will
need to understand all of the material covered since the start of the class.
Review of Topics Covered
- Design By Abstraction (Chapter 5 in Jia)
- What are design patterns?
- Abstract Classes
- Interfaces
- Factorization
- What is it?
- Why do we need it?
- Method Factorizaion
- Factorization by Inheritance
- Factorization by Delagaion
- Template Design Pattern
- Strategy Design Pattern
- Abstract Coupling
- Iterator Design Pattern
- Abstract Factory Design Pattern
- Java Collections (Chapter 6.2 in Jia)
- What makes each collection different from others??
- What are some of the concrete implementations and how do they differ?
- Iteration
- Ordering and sorting
- Natrual orders
- Comparators
- Sorted Collections
- Java I/O (Chapter 6.4 in Jia)
- Types of I/O
- Stream I/O
- Radom Access I/O
- Byte I/O
- File Streams
- Fileter Streams
- Buffered Streams
- Character I/O
- Readers and Writers
- File Readers and Writers
- Filtered Readers and Writers
- Buffered Readers and Writers
- InputStreamReader and OutputStreamWriter
- Decorator Design Pattern
- Java Threads (Chapter 8 in Jia)
- What is multi-threading?
- Why do we need it?
- Creating Threads
-
Subclassing Thread
-
Implementing Runnable
- Thread States
-
New
-
Runnable
-
Blocked
-
Dead
- Methods used to control state
- Thread Priority and Scheduling
- Safety and Liveness
-
Safety Problems - inconsistent state
-
Liveness Problems - deadlock and livelock
- Thread cooperation
- Java Socket Networking (Chapter 9 in Jia)
- Basic TCP/IP stacks
- URLs
- Sockets
- Uses??
- Server Sockets
- Client Sockets
- Establishing connections using server and client sockets