TechEd 2007 SEA: Using .NET in the Curriculum

[5:19PM]

Prof. John Gough, QUT, is starting to talk about .NET in his university curriculum.  Hm - I seem to recall attending this presentation before - I can't remember where, though.  Anyway, John is talking now about his involvement with .NET way before it was called .NET.  Very interesting stories.

[5:33PM]

Prof. Gough is explaining why programming is hard.  Writing correct programs is hard and we tend to forget how hard it is for students who are just starting out.  Techniques exist for producing extremely high reliability software, but except for small, safety critical applications the cost of production is prohibitive.  The cost of ensuring provable correctness increases non-linearly in the size of the program.  Two tools available: decomposition and abstraction.  Break everything into smaller parts (decomposition) and ensuring that everything still works with each other (abstraction).

Component Programming.  A natural extension of the principle of decomposition is to deal with programs that are composed of components that are independently produced and may be assembled by independent third parties.  These components must be able to be treated in an abstract manner.  The major issue here is to specify the behavior of the components in some suitable language.

[5:40PM]

Managed Execution.  Intended to guarantee non-interference between parts of the same program (also called metadata driven execution).  Meta-data is present at run-time and very important in a managed execution environment.

Microsoft Research Project: Bartok - suitable for doing such things as writing device drivers or operating system kernels using managed code.  Interesting.

Isolation between program parts is exactly the kind of guarantee that is required for component based programs.  This only works if you have verified code.

[5:56PM]

Prof. John Gough is concluding on managed execution.  It's been very difficult to catch most of the content up until this point.

My favorite quote:

"DLL hell has not really gone away.  DLL Hell, well, itself has gone away, but now we have GAC hell." [Referring to the problem of versioning.]

[6:02PM]

.NET in the mainstream curriculum in QUT.  Object-Oriented Programming - this subject is the introduction to OOP, and uses C# as its vehicle. The subject also makes use of the ELP Package (Environment for Learning to Program) to allow students to practice online see https://www.elp.fit.qut.edu.au/.

Prof. John Gough is mentioning that most schools are either using C# or Java as the primary and introductory language.  However, C# is a much richer language (value types, reference types, etc.) which gives a broader definition.  In contrast, it takes a little longer to teach as compared to Java because of these but Prof. John Gough goes on to mention how he much prefers C# - "the language Java should have been."

QUT also uses .NET to teach Web Development and Advanced Web Development.  it also uses .NET in the Databases major study area.  Includes a subject XML: Data and Document Processing.

Specialist subjects: The Software Architecture major study area is the place where the technical software engineering content is to be found.  There are two SE subjects with a particular emphasis on .NET technologies - Programming Abstraction, and Enterprise Software Architecture.  Programming Abstraction contains the advanced algorithms and data structures content.  It follows on from the OOP subject by using C# as its vehicle.  Enterprise Software Architecture deals with software architecture at the component and enterprise level.  Practical work on Service Oriented Architecture uses ASP.NET (and J2EE).  Other specialist subjects are based around the .NET technologies: Compiler subject has been based around the .NET CLR since 2001.  There is also a specialist subject on mobile devices which uses the Windows Mobile OS and the compact framework.

[6:14PM]

John Gough is concluding and is opening the floor for questions.