Software Architecture

This course is about designing and implementing component-based software systems using blueprints and architectural design patterns.

Lectures: TU 1:00-2:15pm, Nichols Hall, room 021

Instructor: David Schmidt (das at, phone: 532-7912), 219A Nichols Hall

Teaching assistant: Pavel Janovsky (janovsky at, Nichols 219

Syllabus | Calendar for the rest of the course | Lectures | Assignments

Office hours:
Dave Schmidt: during Dead Week: Tuesday and Thursday, 1pm-3pm

Pavel Janovsky: Mon,Weds, 10:00-11:00am, Nichols 219

You are always welcome to send email to schedule a meeting.


See the CIS501 Lectures page for the text materials.

I wrote some beginner notes about using Visual Studio to build C# Solutions. is a good online reference to using C#.

Dr. Howell's CIS300 notes are publically available, and they cover C# and Visual Studio.


Visual Studio IDE: Since you survived CIS300, you probably have a copy of Visual Studio (VS) to use. Any version of VS, from 2010 on, is OK. If you want a "lightweight" (smaller, faster, simpler) VS, download an Express version: VS C# Express 2013.

Nclass: This is a tool for drawing class diagrams and generating C# Solution folders from them. It's free; download it here.

Lucidchart is a diagram-drawing tool that is oriented towards the UML charts studied in this course. You are welcome to try it:

You should read about and try Nunit, a unit-testing tool for C# classes.