CSE/ECE 668 Winter 2009

Applied Component-Based Software Engineering

  • Days: MWF
  • Time: 10:30 - Room: DL (Dreese Lab) 317
  • Instructor: Prof. Roger Crawfis
  • Office: 683 Dreese Labs
  • Phone: 614.292.2566
  • email: crawfis -at- cse.ohio-state.edu
  • Grader:
  • Bruce Adcock (adcockb -at- cse.ohio-state.edu)
  • Office: DL 674
  • Office hours: M 1:00-3:00, T 11:00-12:00
  • Text Books:

    Programming .NET Components, 2nd Edition, Juval Lowy, O'Reilly

    C# in a Nutshell, 3rd Edition - Joseph Albahari and Ben Albahari

    UML Distilled, 3rd Edition, Martin Fowler, Addison-Wesley Professional (optional)

    Grading Policy

    4 Programming assignments 75%

    Final Exam (3-19-2009 at 9:30am) 25%

    Schedule (Tentative)

    Lecture # (29 lectures in Winter 2009)

    1. Course Overview and history of Software Engineering
    2. Component-based Programming and UML Component diagrams
    3. Overview of .NET
    4. C# and Visual Studio Overview
    5. C# Types 
    6. C# Types continued, C# interfaces and the Template Method design pattern
    7. C# constructors, the Singleton design pattern, Actuators and Lab1, C# 1.1 containers, type Unification and the IDisposable
    8. Visual Studio demo, UML class Diagrams and Visual Studio support, Visual Studio 2008 Unit testing
    9. Visual Studio 2008 Unit testing continued, C# Generics
    10. Weather Day
    11. C# Generics and key .NET interfaces, File I/O
    12. Garbage Collection, Iterator Design pattern and .NET Enumeration
    13. .NET Enumeration, .NET Collection classes
    14. Delegates and the Publisher / Subscriber design pattern
    15. .NET events, System.Collections.Specialized
    16. Lab2, Composite, Factory and Builder design patterns.
    17. No class
    18. XML, DTD and XSD
    19. XML, DTD and XSD, UML Object Diagrams
    20. C# and XML
    21. Equality and Comparisons
    22. Extension methods, Anonymous methods, Lambda expressions
    23. Attributes
    24. Reflection,
    25. Serialization, Lab3
    26. no class
    27. The Proxy Design Pattern, .NET Remoting
    28. The Decorator Design Pattern, LINQ
    29. Final Exam review
    30. Asynchronous Method calls, Multithreading and concurrency in C#, Refactoring  the Collection classes with an Adaptor Design Pattern (IPriorityCollection), The Decorator design pattern and making thread-safe versions of the IPriorityCollection
    31. Final Exam (Study Guide)

    Reference Books:

    Slides

    Readings

    Lab Assignments

    Lab1 - Waterworks

    Lab2 - Waterworks

    Lab3 - Waterworks