CSPP 57100
Laboratory in Object Oriented Technologies
Home Page
Laboratory in Object Oriented
Technologies
Fall
2008
Course Description
This is a advanced hands-on laboratory in the design and
architecture of large scale OO Frameworks, for students already
familiar with advanced topics in OO architecture and design.
The lab will consist of brief topical lectures (< 1 hour) on the
various aspects of OO frameworks followed by a 2-hour lab that allows
students to create their own OO framework. Students will be
expected to work on their framework outside of lab time as
well. Primary focus will be on the qualities of well-designed
OO frameworks, design fundamentals, distributed aspects, white box and
black box designs, service management, database interfaces, and
framework patterns. Students will also gain hands-on
experience in correct class design, use of encapsulation, inheritance,
polymorphism, interface design, abstraction, and other fundamentals of
object oriented frameworks. Students will use a design tool
to produce design artifacts that model a specific framework whose
requirements will be provided. Students will be responsible for writing
Use Cases for the Framework. Source code will be produced
from the model and will incrementally evolve throughout the quarter.
During the final class, students will demonstrate their
frameworks and code to the rest of the class, which will critique the
choices and tradeoffs made in the framework demonstrated.
The course will be taught using the Microsoft .NET Framework libraries
utilizing C#. The default platform will be a
platform-independent Mono environment on Linux or Mac OS X; however
students may use Microsoft Windows and the .NET Framework if they so
choose. No specific advanced Microsoft technologies will be
required; however students may at their descretion utilize specific MS
technologies, such as Windows Communication Foundation, etc.
| SUBJECT | COURSE | TITLE | TIME | BUILDING |
| 324 | 57100 | Laboratory in Object Oriented Technologies | Saturday, 9:00 am - 12:00 pm | Ryerson 4th Floor Lab |
PREREQUISITES (both are required):
(1) Intermediate knowledge of one (or more) OO programming languages, e.g., Java, C++, C#, Smalltalk, Objective C, etc.
(2) CSPP 51023 or CSPP 51050 or consent of the instructor. Knowledge of UML is assumed. For my consent, you will need to demonstrate significant experience in OO architecture, design, method, as well as core knowledge of UML.
N.B. The class will be conducted using C#. You must feel comfortable learning C# on the fly if you do not already have facility in the language. C# will not be taught as part of the course. It is your resonsibility to know C# or come up to speed with it over the quarter. The good news is if you know Java, transfering knowledge to C# will be quite easy.
TEXTBOOK: Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, Cwalina and Abrams, Addison-Wesley, 2006. ISBN: 0321246756
Recommended
Texts:
Learning WCF: A Hands-on Guide
, Bustamante, O'Reilly, 0596101627
Applied Microsoft .NET Framework
Programming, Jeffrey Richter, Microsoft Press, ISBN 073561422
C# Essentials, Albahari et. al.,
O'Reilly, ISBN 0596003153
Learning C# 2005, Liberty and MacDonald,
O'Reilly, ISBN 0596102097
Programming C# 3.0, 5th ed., Liberty and
Xie, O'Reilly, ISBN 0596527438
ADO.NET 3.5 Cookbook,, 2nd ed. Hamilton,
O'Reilly, ISBN 9780596101404
Programming ASP.NET, 3rd ed., Liberty
and Hurwitz, O'Reilly, ISBN 059600916X
Beginning C# 2005 Databases, Watson,
Wrox, ISBN 0470044063
Beginning Visual C# 2005, Watson et.
al., Wrox, ISBN 0764578472
| Lab 1 | October 4 | Introduction to OO Frameworks Framework basics |
FDG Chapters 1-2 PNFM Chapters 1-2, 5 Articles under ~mark/pub/57100/reading |
| Lab 2 | October
18 |
Brief Introduction to C# .NET Namespaces and Type Design |
FDG Chapters 3-4 PNFM Chapter 3-4 |
| Lab 3 | November 1 |
Remoting and WCF Members and Extensibility |
FEG Chapters 5-6 PNFM Chapter 6-7 |
| Lab 4 | November 15 | Implementation Review | FEG Chapters 7-9 PNFM Chapter 8-9 |
| Lab 5 | December 13 | Student Demonstrations &
Critique
|
I can be reached at several email addresses, among them: