T B H P N

Presentations from Course Directories

Organized by Topic

Topics
Graph Code

"I am still working on patter and presentation."
    - Paul Daniels

Presentation Topics:

Course Preparation Architecture, Documentation, Design, Design Patterns Code Structure, Language, Language libraries, Managed Code, Component Object Model Data Structures, XML, LINQ C++ implementation, C# implementation Code Analysis, Threads and Tasks WCF, WPF, Windows OS, Windows System programming, Linux OS Web programming, Security, Deployment

Topics

Course Preparation:

--- Things to look at as you start CSE681 - Software Modeling and Analysis ---

Operational Concept Documentation (OCD)
Relevant to Projects #1, #3, and #5.

C# Basic Syntax
These are code examples, not presentations, but related to getting started.

Class Relationships, doc
Diagram illustrating the four class relationships: inheritance, composition, aggregation, and using.

Process Structure, vsd
Windows process structure.

Virtual Memory, vsd
Model of Windows virtual memory processing.

--- Things to know as you start CSE687 - Object Oriented Design ---

C++ Models, ppt
Models for compilation, computation, and memory for the C++ language.

C++ Survival Guide, doc
Summarizes syntax for language, strings, streams, stringstreams.

C++ basic syntax
These are code examples, not presentations, but relevant to getting started.

Class Relationships, doc
Diagram illustrating the four class relationships: inheritance, composition, aggregation, and using.

Process Structure, vsd
Windows process structure.

Virtual Memory, vsd
Model of Windows virtual memory processing.

Topics

Architecture:

Presentations in this group focus especially on the structure and behaviors of large complex systems.

Software Architecture, ppt
Defines SW Architecture, discusses: issues, uses, tasks, partitions, interactions, events, views, and performance.
Then discusses analysis of architectures and gives a Software Repository example.

What Software Architect does, doc
Software Architect's responsibilities.

Breaking Down and Building Up, ppt

Architecture Documentation
Links to document presentations.

---- Software System Structure: ----

Software Structure Research, ppt
Murat Gungor's Doctoral Defense slide-deck (2006).

Software Structure Research Excerpts, ppt
Excerpts from the defense slides relevant to CSE681 - Software Modeling & Analysis.

Program Structure, pptx
Data Driven, Layered Structure, Analysis Driven, Communication Driven, Thread & Event Driven, Enterprise Computing.

Parallel Type Analysis, vsd
A two-pass structure for parallel type analysis.

Enterprise Architecture, pptx
Architecture principles for Enterprise systems.

Enterprise Computing, ppt
Quick summary of enterprise computing structures

VRTS Enterprise Computing Example, ppt
A virtual collaboration repository-testbed server system (VRTS).
VRTS Organizing Principles, doc
Ideas for structuring of VRTS.

Introduction to the Web, ppt
World's most interesting highly scalable architecture - the web.

Thinking about Message-Passing Systems, ppt
Considers server architectures to handle multiple concurrent clients.

A Note on Distributed Computing, Waldo et. al.
This paper argues that communicating with remote objects is intrinsically different than with local objects.

White Paper on Cloud Computing, Jon Oltsik
Basic cloud computing ideas and discussion of required support.

---- Performance Analysis: ----

Analysis of Dependency Analysis Architecture, ppt
Load Analysis for a program that computes dependencies between C++ or C# files.

Performance logging XML messages.
Performance of writing to XML log as number of entries increases (log file gets bigger).

Example Size and Time Estimates for File Activities
Examples of estimating memory sizes and operation times for a Repository system.

Queuing Analysis
Analyze performance of queuing versus load factor.

Load Analysis for Queued Subsystems
Estimating service-times for multiple concurrent message queuing processes.

Topics

Documentation:

Presentations providing help developing Operational Concept Documents (OCDs).

Operational Concept Document (OCD) Blog
Brief discussion of OCDs and why we use them.

OCD Study Guide
Purpose, example outline, links to example documents.

Documenting architecture and design, ppt
Discussion of the use of diagrams when documenting software architecture and design.

Project Center Use Cases
Analyzes user activities for Project Center, a software development environment.

Operational Concept Survival Guide
Quick summary of what an OCD should be.

Product Model
Diagram showing relationships of the various software documents.

--- Software Diagrams ---

UML Notation, ppt, UML - uml-diagrams.org, UML - Embarcadero.com
Introduction to Universal Modeling Language.

Class Relationships Diagram, Activity Diagram, Sequence Diagram, State Diagram
Structure Chart, Ad Hoc Diagram

Topics

Design:

Most of these presentations focus on design tactics.

Design Principles, ppt
Liskov Substitution (LSP), Open/Closed (OCP), Dependency Inversion (DIP), Interface Segregation (ISP)

Satisfying the Open/Closed Principle, ppt
Pragmatic discussion of use of the Open/Closed Principle.

Software Design Blog
Explores nature of design and our design motives.

Object Oriented Software Design Blog
Explores nature of OO design and our design motives.

Summary of Design Principles, ppt
Design Principles: LSP, OCP, DIP, ISP, LKP
Design Techniques: Encapsulate, Parameterize, Hook, Isolate
Design Process: Application-side vs Solution-side

What is a Program?, Size Matters, Single Responsibility Principle, Sharing, Robustness, Top-Down, Bottom-up, Partitions, Events, Components

Software Design, ppt
Design strategy, tactics, and characteristics of a good design.

Design - The Good, the Bad, The Ugly, ppt
What is Design, Principles of Awful Interface Design, ...

Code Smells
How to tell when code needs refactoring.

Common Coding Problems, ppt
Low-level tips, many specific to C++.

Fragile Designs, ppt
How to make a fragile design, other ways, robust designs, file handling

Design Principles & Flaws, doc
Flaws: Rigidity, fragility, immobility, viscosity, needless complexity, repetition, opacity
Principles: Basic, Structure, Resource Handling, Polymorphism, Binding, Exception Safety
Gotchas: Structure, Resource Handling, Polymorphism, STL

Design Guidelines, ppt
Design guidelines: excerpts and embellishments of discussion by Alan Holub.

Abstract Data Types, ppt
Example implementation of an Abstract Data Type - a C++ string class.

Design Strategies, ppt
Design and design process: Top Down, Bottoms Up, OO Design, Binding

Using Inheritance, ppt
Why class inheritance is so useful.

Topics

Design Patterns:

These presentations are the ones I usually present in the Design Patterns course. The others are presented by students. I want them to develop their own presentations so those are not included here.

Design Patterns Introduction, ppt
How course works and a sample presentation: The Presentation Pattern

Abstract Factory, ppt
Pattern for creating families of related products.

Bridge, ppt
Support variations in abstraction and implementation.

Command, ppt
Pattern for managing callbacks - Hollywood Principle.

Flyweight, pptx
Pattern for efficiently creating many instances of objects that share partial state.

Iterator, pptx
Iterate through collections. Will discuss C++ iterators vs. .Net iterators.

Strategy, pptx
Implement a sequence of strategies that may run sequentially or be selected.

Topics

Code Structure:

Packages, ppt
Packages are the lowest level of physical structure, e.g., Systems, Subsystems, Modules, and Packages.

Programming to Interfaces, ppt
Use of Interfaces and Object Factories to isolate a component's implementation from all its clients.

Tri-level Inheritance, vsd
Using Concrete classes that implement Abstract class that implements Interface. Explains why we do this.

.Net Delegate Structure, vsd
.Net Delegates provide a way to register functions for future invocation.

Scope containment, vsd
Diagram showing scope containment relationships for C++. C# scope containment relationships are very similar - just remove the containment of functions by namespaces, as global functions are not supported.

Adapter, ppt
Mechanism for bringing into an inheritance hierarchy a class that does not derive from the hierarchy base.

Topics

Programming Languages:

Language History, vsd
Creation dates and relationships between some historically important programming languages.

Scope relationships, vsd
Inclusion relationships for C++ scopes. C# and Java relationships are nearly identical, just eliminate the global functions (included directly from Namespaces).

Namespaces, ppt
Syntax and semantics of namespaces.

--- C++ ---

C++ Reference
Excellent C++ language reference.

C++11 Additions
Additions to the Standard C++ Language introduced in 2011.

C++ Survival Guide, doc
Summarizes syntax for language, strings, streams, stringstreams.

C++ Class Relationships, doc
Diagram illustrating the four class relationships: inheritance, composition, aggregation, and using.

C++ Classes and Objects, vsd
Diagram illustrating C++ class relationships and the corresponding objects. For C#3 and Java there is no friend relationship. Otherwise the diagram is correct for those languages too.

C++ basic syntax
These are code examples, not presentations, but relevant to the C++ Language.

Assessment of C++, ppt
Thoughts about the role of C++.

C++ Models, ppt
Models for compilation, computation, and memory for the C++ language.

C++ Operators, ppt
Models for C++ member and global operators.

C & C++ details, ppt
Summary of language details for C and C++.

C++ class encapsulation, ppt
Separating client from implementation details.

C++ class Hierarchy, ppt
Class hierarchies, polymorphism, multiple inheritance.

Using Inheritance, ppt
Discusses several ways to use inheritance with different goals.

Virtual Function Pointer Table diagram, vsd
Illustrates mechanism used by C++ to support inheritance with dynamic binding.

C++ Templates, ppt
Introduction to C++ Templates

Hiding and other evils, doc
Hiding caused by improper overloading and other evils.

Dark corners of C++, doc
Problems with compilation or execution due to naive implementations.

C++ Exceptions, ppt
Managing errors and exceptional events with C++ exceptions.

C++ Runtime Type Identification, ppt
Runtime Type Identification is a weak form of reflection - not nearly as powerful as C# or Java's reflection, but still useful.

C++ vs. .Net, ppt
Comparing native C++ with managed C# - brief discussion.

C# vs. C++, ppt
Comparing native C++ with managed C# - more details.

--- C# ---

C# Language, ppt
Overview of the C# Language

C# Language - some details, ppt
Managed code concepts that are important for C# programming.

C# Reference
MSDN documentation.

C# and .Net quick reference
C# cheat-sheet reference from digilife.

C# Syntax - Wikipedia
Broad coverage of syntax.

C# Class Relationships, doc
Diagram illustrating the four class relationships: inheritance, composition, aggregation, and using.

C# Object Relationships, vsd
Diagram illustrating how objects are influenced by inheritance, composition, aggregation, and using.

C# Basic Syntax
These are code examples, not presentations, but related to the C# language.

C# Programming Features, ppt
Discusses managed code, garbage collection, and interfaces.

C# IDisposable, doc
C# callable mechanism to release unmanaged resources.

C# parameter passing, vsd
Pass value types by value and reference. Pass reference types by value and reference.

C# Attributes, ppt
Attributes are code embellishments that may add predefined code to an application.

Introduction to LINQ, pptx
How LINQ works.

Topics

Language Libraries:

Standard Template Library summary, ppt
Survey of the many capabilities of the STL.

Notes about the STL, ppt
Notes about a small set of unexpected syntaxes and behaviors.

iostreams summary, ppt
iostream class library with brief functional descriptions.

iostreams class reference, doc
Describes the interfaces provided by all of the top-level iostream classes.

.Net Framework Class Library, ppt
Summary of the Framework Class Libraries (FCL).

.Net Application Domains, ppt
An Application Domain is a managed code execution environment within a Windows process. A single process may have more than one Application Domain.

Interception, ppt
Interception is the process of inserting code between a client call and the target invocation on either the way in, the way out, or both.

Topics

Managed Code:

C++\CLI, ppt
C++\CLI is a .Net managed code language which integrates with native C++.

Interop between native C++ and C++\CLI, ppt
C++\CLI is the only language that can directly communiate between managed and native code.

C# Programming Features, ppt
Discusses managed code, garbage collection, and interfaces.

Topics

Component Object Model:

--- Introduction to COM ---

Things covered in CSE775 - Distributred Objects, pptx

Windows Platform Technologies, vsd

COM and .Net Object Models, ppt
Comparison of COM and .Net Object Models

Intro to COM - Part I, ppt
Roadmap to COM

Intro to COM - Part II, ppt
Survey of COM Technologies

Introduction to COM, ppt
Introduction to Microsoft's Component Object Model (COM)

COM Types, COM Types
Automation types: BSTR, Variant, SafeArray

Adding External Tools, doc
Adding External Tools to Visual Studio Tools Menu - useful for registering controls

Adding GUID Generation to External Tools, doc
Adding GUID generation to Visual Studio Tools Menu - useful for creating new COM Components.

In-Process Component class diagram, vsd
Class diagram for DLL-based COM Components

In-Process Component Activation, vsd
Event-trace diagram for In-Proc activation

In-Process Component Structure Chart, vsd
Event-trace diagram for In-Proc activation

Out-Proc class diagram, vsd
Out-of-Process Component class diagram.

Out-Proc Activation Diagram, vsd
Out-of-Process Activation Diagram.

Out-Proc STA structure chart, vsd
Out-of-Process structure chart for Single-Threaded-Apartment Component.

Out-Proc MTA structure chart, vsd
Out-of-Process structure chart for Multi-Threaded-Apartment Component.

COM Threading Rules, doc
Excerpts from an article on COM Threading by Jeff Prosise.

--- COM Technologies ---

COM Architecture, vsd
Architectural diagram showing COM Technologies.

IDL, ppt
Interface Definition Language (IDL)

COM Apartments, ppt
A COM Apartment is an execution environment for instances of COM components.

Understanding Apartments - Part I, Understanding Apartments - Part I
Understanding COM Apartments - Part I, Jeff Prosise

Understanding Apartments - Part II, Understanding Apartments - Part II
Understanding COM Apartments - Part II, Jeff Prosise

COM Automation, ppt
COM Automation: generic interface accessible from (select) scripting languages.

COM Object Activation, vsd
Diagram showing how COM objects are activated.

Connection Points, ppt
Discussion of Uniform Data Transfer and Connection Points

Structured Storage, ppt
Structured Storage, Monikers, and Persistance

Late Binding, ppt
Presentation by Vijay Appaturi on COM late binding.

Late Binding with COM events, ppt
Vijay's additions to the previous presentation.

Distributed COM, ppt
COM Remoting technologies

COM+, ppt
COM+ is the last version of COM before .Net was introduced.

Configure COM+ component, doc
COM+ components must be configured before they can be used.

Interception, ppt
Intercepting calls to and from COM and .Net managed code.

WinForm Controls, ppt
Winform Controls - many are ActiveX controls wrapped in .Net classes

WinForm control class diagram, vsd

.Net Controls, ppt
.Net Controls - some are entirely .Net managed code

Windows Registry, ppt
Presentation by Mario Tayah, former TA for CSE775

--- Active Template Library (ATL) ---

Active Template Library (ATL), ppt
ATL is a library that supports relatively simple creation of COM Components.

ATL class structure, vsd
ATL class structure diagram

ATL Helper Types, vsd
ATL Helpers Diagram: CComQIPtr, CComBSTR, CComSafeArray, CComVariant

ATL Sychronization Helper Types, vsd
ATL Synchronization Helpers Diagram: CCriticalSection, CEvent, CMutex, CSemaphore

ATL Control Architecture, vsd
Class structure diagram - ATL controls.

ATL Windows Architecture, vsd
Class structure diagram - ATL dialog and framewindow classes

--- COM Interoperation with C++ and C# ---

COM to C#, doc
Invoking methods of C# classes from C++ COM clients.

C# Language, ppt
Overview of the C# Language

C# Language - some details, ppt
Managed code concepts that are important for C# programming.

Topics

Data Structures:

Graph Blog
Describes a Directed Graph implemented in C++.

M-Ary Tree Blog
Describes an unbalanced tree class developed in C++.

noSQL Database
Discusses implementation of a Key/Value storage facility.

Design of HashTable and Iterators, ppt
Design of Hashtables using C++ Templates and iterators.

Queuing Analysis, doc
Pragmatic summary of Queuing Theory with some derivations.

Topics

XML:

XML and Friends XPath and XSLT, ppt
Details of XML technologies.

LectureNote.xml
Example XML file LectureNote.xml

XML parse Tree, vsd
LectureNote.xml parse tree.

Topics

LINQ:

LINQ Introduction, pptx
How LINQ works.

Top

C++ Implementation:

Abstract Data Types in C++, ppt
Abstract Data Types example using STR a custom string class.

Executable Specification, ppt
Describes an interesting way to describe specification - with tests. Essentially the test is the specification.

Topics

C# Implementation:

noSQL Database
Discusses implementation of a Key/Value storage facility.

Message-passing systems, ppt
Discusses the structure of distributed systems that communicate by passing messages.

Topics

Code Analysis:

Code Parser
Blog discussion of the design of a C++ parser. The same ideas apply for a C# parser.

C++ Grammar Detection, doc
Parser rules for detecting certain C++ grammatical constructs.

Topics

Processes, Threads, Tasks, and Asynchronous Programming:

Process Structure, vsd
Windows process structure.

Asynchronous Systems, ppt
Definitions and properties of asynchronous systems.

Multi-threaded Systems with Queues, ppt
Discusses the use of queues in multi-threaded systems.

Windows and .Net Threads, pptx
Discussion of Win32 and .Net threads.

C# Threads, ppt
Similar to the above, but focuses on .Net threading.

Win32 Threads and Synchronization, ppt
Low-level details for Win32 threads.

Win32 Threads, ppt
Low-level details for Win32 threads.

Topics

.Net Remoting, Web Services, and Windows Communication Foundation (WCF):

.Net Remoting, ppt
.Net remoting was a precursor to Windows Communication Foundation. It is a lighter weight communication framework and is used to communicate between application domains.

Classic Web Services, ppt
Presents the concepts and top-level structure of web services.

Windows Communication Foundation (WCF), ppt
Broad summary of Windows Communication Foundation technologies.

Topics

Windows Presentation Foundation (WPF):

Windows Presentation Foundation (WPF), pptx
Overview, with significant detail, of WPF.

WPF Controls, pptx
Discusses some WPF display models.

Topics

Windows OS:

Windows Platform Technologies, vsd

Process Structure, vsd
Windows process structure.

Virtual Memory, vsd
Model of Windows virtual memory processing.

Windows Event Handling, VSD
Windows message handling diagram - from device to window.

Windows Thread Scheduling, vsd
Thread scheduling diagram

Win32 Threads and Synchronization, ppt
Low-level details for Win32 threads.

Windows Registry, ppt
Presentation by Mario Tayah, former TA for CSE775

Topics

Linux OS:

Linux Technologies, vsd
Linux technology stack

Linux Threads, pptx
Multi-threaded programming for Linux

Linux Libraries, pptx
Library usage in Linux

Topics

System Programming:

Win32 System Programming, ppt

.Net Sockets, ppt
Discusses .Net classes that wrap native sockets.

Win32 Sockets, ppt

Windows Technologies Diagram, vsd
Diagram illustrates the relationships and interoperation between Windows technologies.

Win32 Windows programming, ppt
Discusses GUI programming using the Windows API.

Win32 CreateFile, ppt
Windows API "Swiss Army Knife" function CreateFile - Mario Tayah.

Win32 File System, ppt
Windows API file management - Mario Tayah.

Topics

Web Programming:

--- Getting Started ---

Introduction, ppt
Introduction to CSE686 - Internet Programming

Introduction to the Web, ppt
Detailed introduction to the web - history, protocols, ...

--- C# and the .Net Framework ---

C# fundamentals, ppt
C# and .Net basics with a few comparisons to C++

.Net Framework, ppt
.Net Framework Class Libraries (FCL)

--- Web Programming Models ---

Static Page Serving Model, vsd
Client request to Server Process and back with static pages.

Asp Serving Model, vsd
Client to Server and back using Active Server Pages (ASP).

Asp.Net Serving Model, vsd
Client to Server and back using Asp.net.

Ajax Serving Model, vsd
Client to Server and back using Ajax.

Browser and Server models, ppt
Introduction to Browser and Server programming models.

Active Data Objects, vsd
Diagram of ADO processing components.

--- Asp.Net and Asp.Net Mvc ---

Asp.Net Part I, vsd
Part I - Introduction to Asp.Net

Asp.Net Part II, ppt
Part II - Introduction to Asp.Net

Asp.Net MVC, pptx
Introduction to Asp.Net MVC

Asp.Net Mvc Conventions, pptx
Asp.Net MVC conventions - naming, folders, routing

Click-Once Deployment, ppt
By TA Murat Gungor in 2006

--- Javascript and jQuery ---

Javascript, ppt
Javascript basics

jQuery, pptx
Introduction to jQuery Javascript library

--- Web Services ---

Web Services, ppt
Web service basics

Web Services, ppt
Introduction to Web services.

--- .Net Security ---

Asp.Net Security, ppt
Asp.Net Security - Basic ideas

.Net Security, ppt
Basics of .Net security

Asp.Net Roles, docx
Asp.Net - Role-based authorization

Security Tools, doc
Security Tools screenshots

Asp.Net Security, ppt
Security Talk by Scott Guthrie, Microsoft

Web Application Security, pptx
Excellent web application security presentation - Dusan Palidar

--- XML ---

XML, ppt
XML with a little XPath and XSLT

XML parse tree
XML parse tree for LectureNote.xml example.

LectureNote.xml
LectureNote.xml - an example of XML syntax

--- Relational Model and SQL ---

Relational Model, ppt
Relational database model

SQL Cheat Sheet
SQL Summary Chart - Dennis Cassoe

SQL Query Joins, ppt
Join syntax and semantics in SQL Queries - Murat Gungor

Topics

Security:

.Net Security, ppt
Summary of .Net security.

Topics

Deployment:

.Net Deployment, ppt
Using configuration files to tailor a deployment to the target environment.

Topics

Quad View