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
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.
Why is a "make", or other configuration management tool important
in any non-trivial softwaare development?
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.
Consider programming using the BSD socket API. Why is it that
servers call bind, but clients do not?
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.
What was the most challenging part of the original database
(non-network) assignment? What did you learn from it?
What was the worst bug you encounted in the original database
(non-network) assignment? How did you find it? Fix it?
What was the most challenging part of the network database
assignment? What did you learn from it?
What was the worst bug you encounted in the network database
assignment? How did you find it? Fix it?