One would think my last post related to this topic was a Oxidizing Agent in a Redux Reaction (yep, I started out as a pure science major) given the response by Larry and Eric. Hey, but thats a good thing... it gets people thinking.
So a few sessions into this endeavor, here is what I think is working. People need to immediately tie back a concept they learn to everyday applications. Being able to immediately apply something learned helps retention of that which is presented. So instead of going weeks teaching abstract concepts and hoping participants will be able to put 2 and 2 together in the end, I am ensuring they can immediately put to use a concept that is discussed in class when they leave.
Towards the end of every session, I randomly pick pieces of our code containing the concepts just presented and have students verbally break it down. Using the knowledge just obtained, they have begun to see how simple queries in the source where particular event log entries are made can help reinforce the traditional troubleshooting techniques in problem isolation. This is baby steps for those not from a coding background, but hopefully this is a catalyst for those individuals of a non-coding background can use source code to begin to research how some aspect of a large, complex product such as Exchange works and determine the appropriate next steps in resolving customer issues.