Return to lecture notes index
December 8, 2007(Exam 4)
Due: Friday, December 14, 2007

The Rules

You know the deal...nothing with a pulse...don't spend too much time... get it in by the end of Friday.
The Questions
  1. Please explain how to choose between an interpreted language, such as Perl, a compiled language, such as C, and shell scripting. Please focus on the types of problems appropriate for each class of programming language, not on novel language features.

  2. Why is a "make", or other configuration management tool important in any non-trivial softwaare development?

  3. When developing software in earlier courses, you spoke about decomposing a problem into algorithmic steps, procedures, and data structures. This semester, we discussed decomposing the solution, the source code, into multiple files, including header and implementation.

    Please describe your ideal strategy for breaking code down into multiple files.

  4. Consider programming using the BSD socket API. Why is it that servers call bind, but clients do not?

  5. Please explain in English, without any code or pseudocode, how the select() call is used to produce network servers that can handle concurrent requests. Your answer should focus on the paradigm, not the arbitrary detail of the types and specific parameterization, &c.

  6. What was the most challenging part of the original database (non-network) assignment? What did you learn from it?

  7. What was the worst bug you encounted in the original database (non-network) assignment? How did you find it? Fix it?

  8. What was the most challenging part of the network database assignment? What did you learn from it?

  9. What was the worst bug you encounted in the network database assignment? How did you find it? Fix it?