CSSE 221: Fundamentals of Software Development Honors

Written Homework (due Monday at the beginning of class)

Answers are to be in your own words. As usual, bring hardcopy of written answers to class to hand in Monday.
  1. Read Savitch Chapter 15.1 - 15.3
  2. What is a linked list, i.e. how is it constructed internally? (Answer this question independent of Java or any other programming language)
  3. Draw a diagram of a singly linked list with three nodes, and no header node. The linked list contains three pieces of string data: "insect" "hamburgers" "yummy". Label all the components of the linked list.
  4. Coding linked lists manually used to be one of the earliest data structures learned in computer science courses. Why were they so important for all programmers to know? (Hint: memory used to be very expensive)
  5. With Java, we do not have to code linked lists from scratch. How do we create and use linked lists in Java?
  6. Tough Question: We have ArrayLists in Java, and memory is inexpensive, so why do we still need linked lists?
  7. Explain the following terms (in your own words):
  8. What is the likely problem if threads aren't used?
  9. What factors constrain how many clients, servers and threads can exist at any given time on a network? (Address each item separately in your answer)
  10. Pick one (1) of the following questions and answer it in 1/2 to 1 full page. Write in your own words, and cite all sources that assisted you.

Programming assignment

You will be working for the rest of the term on your capstone project (and capsules).