In this appendix, we present some ideas for how this book can be used as a textbook for a variety of university-level (or advanced high school–level) beginning object-oriented programming (OOP) courses. The suggestions are equally applicable, however, when applied in a corporate training setting.
As the basis for a single-semester generic OOP course, focus on the subject matter content in Parts One and Two (Chapters 1 through 12). Make sure to give students ample hands-on experience with both C# programming and object modeling through homework assignments as well as in-class group modeling exercises. The latter is particularly important for giving students an appreciation for how subjective object modeling can be. Time permitting at the end of the semester, cover the material in Chapter 13.
Note from Jacquie: This happens to be the way that I'm currently teaching the material at George Washington University in Washington, DC.When I teach this same material for corporate clients, I do so as a series of six fullday lecture/lab sessions, spread out over several calendar weeks, but follow the same basic outline.
For more information about my instructional approach, or to share in my teaching materials, please contact me via my web site, http://objectstart.com.
As the basis for a single-semester OO methodology course, adapt the approach described for a single-semester generic OOP course so as to emphasize hands-on object modeling and deemphasize actual programming. However, note that exposing students to the way that an object model translates into the syntax of an OO language such as C# really helps to cement object concepts, even for those students who aren't aspiring to be professional programmers. It's therefore important to examine students on the object aspects of the C# language by giving them simple code examples to analyze on paper.
As the basis for a single-semester comprehensive C# language course, devote the first lecture to reviewing UML notation as covered in Chapter 10, using this lecture as an opportunity to refresh students' memories on the basics of key object concepts. Realize, however, that to do justice to C# as an OOP language, students must have previously been exposed to object concepts in depth. Devote the rest of the semester to the C# material in Parts One and Three (Chapters 1–7 and 13–16).
One significant advantage of using our book as a textbook is that it uses a consistent case study as the basis for object concepts, object modeling, and C# programming. Students can actually see how an object model evolves from a requirements specification, and how that same object model translates into a working C# application, something that few other books present.