Past Midterm Exams
System Architecture and Program Design
-
Software Architecture,
pdf
Definitions, important properties, concepts, organizing principles, discusses Operational Concept Documents (OCDs)
-
System Structure,
pdf
Partitions, Communication, Sharing, Control
-
Software Structure Research,
pdf
Research results showing why dependencies are so important.
-
Packages,
pdf
Defines structure for packages, motivates their use.
-
Software Design,
pdf
Goals for design of software.
-
Design Patterns
Course devoted to intermediate level software structure. We will discuss a few of the design patterns in this course.
-
Software Product Model,
pdf
Diagram illustrating Application-side and Solution-side Software Artifacts.
-
Introduction to the Web,
pdf
Survey of the Web, its architecture, history, and technologies.
-
SG - Architecture
Shares many links with this page but omits those that aren't directly related to Software Architecture.
Software Modeling and Documentation
-
What is a Program?
What an odd question to ask!
-
UML Notation,
pdf
Presents Universal Modeling Language (UML): Activity, Package, class, sequence, state diagrams, & structure charts.
-
SG - Operational Concept Document (OCD)
An outline, usage samples, diagram samples, issues samples, document samples.
-
Architectural Concept Survival Guide,
pdf
Some "Do"s and some "Don't"s for writing OCDs.
-
Project Center Use Cases,
pdf
Good example of analysis of application uses - a core part of an OCD.
-
What a Software Architect Does,
pdf
Products and Activities of a Software Architect.
-
Structure, Design, and Implementation Notes
Top-down, Bottom-up, Incremental Design,
Partitioning, Application-side vs Solution-side, Package Structure.
Delegation,
Asynch Messaging, Robustness.
Threads and Queues:
-
Windows Process Model,
pdf
Diagram - Structure of Windows Process: memory, handles, resources.
-
Memory Mapped Files,
pdf
Diagram - Illustrates how virtual memory and memory sharing work.
-
.Net Threads,
pdf
Creation, and use of threads, synchronization. Discusses potential problems with threaded designs.
-
Asynchronous Systems,
pdf
What is an Asynchronous System and why should I care?
-
Queuing Analysis,
pdf
Analysis of queue loading - queue length and message transit time.
-
Multi-Threaded Systems,
pdf
Why we use multi-threaded designs and their properties.
Network Communication:
Windows GUI Programming:
-
Basic Windows,
pdf
How do Windows-based Graphical User Iterfaces (GUIs) work?
-
Windows Presentation Foundation,
pdf
Survey of new .Net GUI framework. Vector Graphics, sophisticated event and dependency models.
Support for 2D and 3D drawing, & building Forms with controls.
C# Programming & .Net Framework
-
C# vs. C++,
pdf
Compares C# to C++ starting with differences in their object models.
-
C# Programming Concepts,
pdf
Discusses managed code, garbage collection, and managed interfaces.
-
IDisposable,
pdf
How to implement the Disposable Pattern.
-
.Net Framework,
pdf
Summary of most important namespaces and classes.
-
XML, XPath, & XSLT,
pdf
Syntax of the XML metalanguage and its friends XPath and XSLT.
-
XML Parse Tree,
pdf
Diagram - In memory representation of XML document.
-
Introduction to LINQ,
pdf
Introduction to Language Integrated Query (LINQ).
-
Application Domains,
pdf
An isolation and interception mechanism - part of every process running managed code.
-
Interception,
pdf
Injection of interception code between function invocations and execution, and between execution and return.
-
Attributes,
pdf
A facility for programming declaratively.
Managed Code:
|
C# Language Demos
-
C# Syntax Examples
Demonstrate arrays, properties, indexers, simple reflection on types, and disposing.
-
C# Equivalence Demo
Distinguish between the four methods of determining object equivalence.
-
Method Parameters Demo
Illustrate pass value and reference types by value and Reference.
-
Using Delegates
Demonstrate extensions, LINQ, delegate shortcuts, lamdas.
-
LINQ Examples
Examples of LINQ Queries, LinqToXml, Linq Binding XML file to WPF display.
-
Delegate Demos,
Delegate Structure,
vsd
Illustrate the Publish/Subscribe pattern supported by .Net delegates and its syntax.
-
File Handling Demos
Demonstrates opening and reading files. Simple multi-package demo.
-
Type Conversion Demos
Illustrates use of casts, primitive Parse functions, and Convert class.
-
Collections Demos
Examples of Arrays, SortedList, HashTable, and GenericList.
-
.Net Containers
Small demos for ArrayList, GenericList, GenericHashSet, HashTable, LinkedList, Queue, SortedList, Stack, Utility.
-
Command Line Handling
Discovers files in current directory matching a pattern from command line, opens each C# file, and reads a few lines.
-
Navigate Directory tree
Executes a depth first walk of the directory tree rooted at a path specified on the command line.
-
Reusable Navigation with Delegates
Makes the navigator, above, reusable with the help of delegates that provide file and directory notifications.
-
Reflection Demo
Loads an assembly and uses reflection to inquire about its types.
-
Serialization Demo
Small demonstration of serialization using memory stream and SOAP formatter.
XML Processing
Form Demonstrations
Windows Presentation Foundation Demonstrations
Windows Communication Foundation
Threads and Synchronization
System Software
System Prototypes
-
Parser Prototype,
Parser Structure,
vsd
Core of code analyzer - has Tokenizer, TokenCollector, Parser, Rules, and Actions.
-
Peer-to-Peer Communication Prototype
Uses Client and Server parts to build a Peer-to-Peer messaging system.
-
Simplified Test Harness,
Test Harness,
Test Harness Structure,
vsd
Test Harness loads assemblies, looks for ITest interface, creates test objects and executes them.
Special Purpose Packages
-
Concurrent Access to Files
Supports access to files in an environment with concurrent readers and writers.
-
Base64 Encoding
Converts binary data to and from character form. Othen used in XML messaging channels to send binary data.
|