- The Syllabus describes topics to be covered, reading material for you to digest before coming to class, and due dates for the assigned projects.
-
Midterm:
The Midterm Makeup Exam for last year is posted here. If you do both parts A and B for this years makeup very well, your grade will be raised to 85, but no higher. So no one who receives higher than 85 need do the makeup.I'm providing my solutions to the midterms, along with supporting code, below. We will go over these when I return your graded midterm exams.
If you are curious and want to look at them now, you should remember that I give a lot of partial credit so you may do better than you expect after looking at these solutions (your mileage may very of course).
MT1F15-InstrSol, docx, MT2F15-InstrSol, docx, MT3F15-InstrSol, docx, MT4F15-InstrSol, docx
There may be a few changes to these as I grade midterms, mostly to illustrate correct solutions that are different than those shown here now, occasionally to incorporate a student's solution that is in some way better than mine, e.g., clearer, or briefer, or smarter.MTF15-Code
This code contains solutions to the "write all the code that ..." questions and also to develop code from which I use fragments to complete a question.Project2_Instr_Sol-11-08-2015
I've extended my Project #2 solution to provide children(key) and descendents(key) methods for QueryEngine and VirtualDB, both because with them we can use Linq to do interesting queries. I'll illustrate that in class soon. Also, the descendents function provides the answer to MT4Q1. Questions MT3Q1, MT4Q1, MT4Q4, and MT4Q6 all explore required functionality in Project #2.CommPrototype-08-Nov-2015
I've included CommPrototype because questions MT1Q1, MT1Q4, MT2Q4, MT3Q3, MT3Q5, and MT3Q6 inquire about that functionality (either for your design or my prototype). -
Projects:
-
Asynchronous Communication
Asynchronous Systems Presentation, pptx, BasicNetThreadDemos Queued Messages
Deposit messages in a queue for later retrieval by another thread. WPF Thread Demos
Illustrates use of (1) threads, and (2) asynch awaits to implement long running activities and displaying results in a WPF window. Abstract Task Model
Illustrates basic use of C# Tasks. Basic Tasks
Explores asynchronous processing, using Tasks, with combinations of inputs and outputs, and also use of continuations. async await Pattern
Shows how to use asynch await emphasizing the affect of await's continuation. Asynchronous Calls Demo
Use delegates asynchronous BeginInvoke and EndInvoke methods. Form with BeginInvoke
Use the same asynchronous delegate, but now dequeue with a UI thread. ThreadPool Demo
Dispatch work items to members of a thread pool. Form's BackgroundWorker
The Form provided BackgroundWorker wraps the use of a ThreadPool to simplify a developer's implementation. You can use the BackgroundWorker with WPF, accorting to this blog post -
Another interesting way of implementing message passing:
Cell-based message passing, Blog Discussion
This demo grew out of the prototype linked below. ADAM-Wrapper-Prototype, updated with Comm component
All message handlers, e.g., virtually all parts, inherit from AWrapper, except for UIs that already inherit implementation from Form. UIs need to create a message handler that does inherit from AWrapper. -
Peer-to-Peer Prototype
Illustrates use of bilateral remoting with SingleCall activation to establish Peer-To-Peer communication. - Program Structure
- Software Design
- Software Structure Research - motivation for Pr #5