The final exam covers the all of the material in our text by Dale, Weems, and Headington: chapters one through seventeen in a textbook with over 1100 pages of technical details. It sounds imposing, and it undeniably covers a great deal of material. Taken all together, it encompasses a new way to envision process. All semester long you have been accumulating skills in the analysis of complex processes, learning how to break them up into constituent, well-understood subprocesses, and how to formally support the relationships among these subprocesses. At every step you have brought forward and insisted upon the programmer's and computer scientist's special bias: a conviction that you don't really understand something until you can implement it. To the extent that you have internalized this point of view, the computer science you have learned here can influence your approach to the understanding of complex phenomena and to problem solving at any level of complexity. Our tools have been a very sophisticated programming language and an equally sophisticated programming environment, but the analytic and visualization skills that you have been accummulating in parallel are universal. The final exam will take you through a rather thorough survey of the structure and usage of the C++ programming language. It will give you an oportunity to display a thorough familiarity with a modern, rigorous, and highly sophisticated programming language. But the essence of this course transcends any particular programming language and even transcends computer science itself. It has to do with an insistance on clarity of thought and analysis, with a perserverance until understanding has been achieved, and with the artistry and engineering skills involved in actually building a working implementation.
At the end of each chapter of our text by Dale, Weems, and Headington, there is a section entitled "Exam Preparation Exercises." As a review for the final exam, the diligent student will be well-served by systematically studying the exercises listed in the following three study guides, as well as the programming fragments that have been assigned as classwork throughout the course of the semester, and the programming homework exercises corresponding to chapters 1 through 17. The exam will be a written exam, presented without the aid of computer, textbook, or notes.