Teaching using .NET at QUT - Microsoft

duckexcellentInternet and Web Development

Feb 5, 2013 (4 years and 5 months ago)

146 views

.NET in the IT Curriculum

Paul Roe

Queensland University of Technology,
Australia

p.roe@qut.edu.au

2

QUT


Queensland University of Technology (QUT)


One of largest universities in Australia: 40,000+ students
(undergraduate, postgraduate, 10% international)


Applied emphasis, strong links with industry e.g. Microsoft


Motto “A university for the real world”


Faculty of IT, 4000 students, 20% international

Brisbane

3

My Background


Academic at QUT for 12 years


Spent last 5 years utilising Microsoft .NET in teaching and
research


Initially Project 7
-

academic programming languages for .NET


Subsequently other projects and teaching


I am a computer scientist interested in


Programming languages


Distributed computing


Practical / applied emphasis


Disclaimer:

these are my views, not Microsoft’s, not QUT’s

4

Overview


Teaching using .NET


Some QUT Subjects using .NET


Brief Aside: Research


Conclusions



Based on my experience (and others at
QUT)


what we tried, what worked, what didn’t work,
what we might try next, …

5

Why use .NET in Teaching?


State of the art: languages, runtime, libraries


Industry strength technology


Can do simple things with minimal effort


This can enable teaching new subjects / ideas e.g. web app
design for non IT students


Can do exciting new things e.g. web services, mobile
devices, games


Excellent support for internationalisation


In demand by industry


Students love it


.NET subjects very marketable


Add balance to degree (most degrees, lot of Java &
Linux in subjects)

6

How to use .NET in Teaching?


Mix of technologies including .NET


Some subjects naturally comparative


E.g. Component technology, comparative programming
languages


Or require a mix of technologies: web services


Single technology


Technology is a vehicle for teaching concepts


E.g. web applications, intro programming


Industry relevance e.g. ASP.NET


Simplicity e.g. business process design for business
students using Biztalk

7

Academic Reality Check:

What should you really be concerned about in order
to teach a subject with a new technology like .NET ?


Resources, resources and resources!

1.
Documentation


Textbooks


Reference material


Tutorials


Courseware


Videos

2.
Software
: availability, cost, resource implications, student access

3.
Labs

set
-
up and administration, systems administrators,…

4.
People

(with necessary skills)


Teaching assistants


Instructors


Students


Systems administrators

8

1. Documentation


Documentation is excellent for .NET


(my favourite feature!)


Problem is navigating through all the doco and
finding what you want


There are good textbooks for .NET covering:


Intro programming using VB and C#


Compilers


Component software


Web applications


Web services


Even free online ones:
http://www.brpreiss.com/books/opus6/


Etc.

9

1. Documentation: Professional


SDK and Visual Studio documentation is excellent, includes:


Lots of example code


Walk throughs
http://msdn2.microsoft.com/library/szatc41e.aspx

e.g.
Creating a web app


Programming guides e.g. C#
http://msdn2.microsoft.com/library/67ef8sbd.aspx



.NET framework class library
http://msdn2.microsoft.com/en
-
us/library/ms306608.aspx



Quickstarts
http://www.asp.net/Tutorials/quickstart.aspx



Developer website
msdn.microsoft.com

inc.


MSDN magazine


well written technical articles


MSDN developer centres for technology specific info
http://msdn.microsoft.com/developercenters/



Videos, discussions, PDC conference videos e.g. Don Box on SOA
http://microsoft.sitestream.com/PDC05/
, Channel 9
http://channel9.msdn.com/
, training videos etc.



Demos: walkthroughs, Quickstarts and PDC

10

1. Documentation: Academic


Academic Alliance web site
http://msdn.microsoft.com/academic


Courseware: MS curriculum repository

http://www.msdnaa.net/curriculum/repository.asp
x




I use all these resources extensively


Augment lecture notes with 3
rd

party
documentation


Can be difficult to find good overview documents
suitable for academia

11

1. Documentation: Community



Dev Hood
www.devhood.com

(for prof developers)


Gotdotnet
www.gotdotnet.com



Singapore
http://www.microsoft.com/singapore/msdn/academic/



Community site for students
http://thespoke.net






MSDN connection Singapore
http://www.microsoft.com/singapore/msdn/connection/de
fault.mspx

for professional, faculty and students


12

2. Software

1.
.NET SDK is free, as is Rotor (SSCLI
-

Shared Source .NET) and
Mono (Open Source .NET)


2.
Visual Studio 2005 and SQL server express editions free


Good for basic development, inc basic web dev


http://msdn.microsoft.com/vstudio/express/



3.
MSDN Academic Alliance (MSDN AA)
http://msdn.microsoft.com/academic/



Cheap scheme for:


Labs: Can install Microsoft development s/w in labs


Students: They can legally install same software on own PCs (for free!)


A great scheme! Includes Windows, VS 2005, …


If going to teach .NET ask Microsoft rep. about this


Overview presentation on the scheme
http://download.microsoft.com/download/f/f/8/ff8c8040
-
d1a7
-
4402
-
90df
-
5d1aaa7d37af/program_overview.ppt


13

3. Labs


Lots of issues, many different ways to set up labs,
depends on circumstances


May need to use Virtual PC or dual boot or boot loader if
want to run other OS e.g. Linux too


Can also use Windows terminal server


Must automatically install Windows patches


A good source of information


MSDNAA IT Solutions
http://msdn.microsoft.com/academic/solutions/itsol/



Also
http://www2.msdnaa.net/devsystem/devsystem_2003.aspx

(for building a development server)


Generally easy to set up a lab for simple programming,
can be tricky for web applications with databases,
COM+, servers etc.


ask MS for help

14

4. People


Tricky…


Ok if small subject and can do everything yourself


lectures,
tutorials, grading


If got graduate students undertaking research using .NET


teaching assistants


May need to promote .NET in your department


Can be difficult (but easier in current climate)


Can use .NET to teach standards e.g. web services


Use .NET in a mix, comparative subject


Systems administrators can be very difficult


It can be expensive to get staff up to speed with new technology
such as .NET, J2EE etc.


Time investment


I’ve often started subjects then handed them to others

15

Cost effectiveness


New technology subjects are expensive to develop and have limited shelf
life



You can’t learn e.g. ASP.NET overnight (despite what some books might
claim)


Conversely traditional and theoretical material doesn’t age quickly


Need to cost new subject and course development


Need lightweight ways to test new subjects


Just in time subject development


A strategy


Keep intro subjects e.g. first year stable ‘traditional material’


Innovate and invest in final year just before students leave (or go on to research)


Have ‘open subjects’ which can be changed without involving university
bureaucracy e.g. “Modern Topics in IT”, change material from year to year


Use new technology to spice up old subjects e.g. computer architecture
using video games, PCI
-
X, Xbox etc


Teaching research nexus


use ideas, techniques, technologies in research
and teaching

16

Some QUT Subjects using .NET

17

Some Subjects at QUT which use .NET

1.
Web applications development*

2.
Web Services*

3.
Projects*

4.
Mobile devices*

5.
Programming Principles

6.
Internationalisation

7.
Compiler Construction

8.
Component Technology


*Subjects I’ve taught and I’ll discuss today




= Tips, tricks and ideas I think are especially useful

18

1.
Subject:

Web Applications
Development


Subject about theory and practice of web
application development e.g. eStores, web
portals, etc.


A capstone elective subject of 3 year
Bachelor of IT degree


Run four times since 2002


Serious programming subject


Uses .NET, in particular ASP.NET

19

Aside: What is ASP.NET?


Framework for generating HTML


presentation tier for 3 tier web
applications


(ASP.NET often used to describe whole of .NET web applications)


Very sophisticated framework for web applications

ASP.NET

Presentation

Business

Logic

ADO.NET

Data

Access

Database

HTML

over

HTTP

Client

(web browser)

Web server

20

Student Learning Objectives


Understand issues of s/w development for web


Different from PC s/w development


Client server


State management


Architecture and design: n
-
tier architecture, data
access


Security, scalability, performance, etc.


Learn about some standard technology e.g.
HTTP, HTML, XML, web services




Gain programming experience with .NET,
particularly ASP.NET

21

Subject Structure


2
-
3 hour lecture & 1 hour prac X 13 weeks


(¼ full time student load
×

one semester)


Assessment: 35% assignment, 65% exam




Some guest lectures by Microsoft and their partners


ASP.NET overview and demos


Real world issues
-

deployment, project management, legacy
code, etc.


Prerequisites: intermediate OO programming, basic
HTML, SQL

22

Documentation


Lot of professional texts, few academic ones



Visual Studio and SDK


excellent documentation


Walk throughs e.g. Creating a web app


Tutorials e.g. C# Tutorials


Reference e.g. SqlConnection Class


Quickstarts
http://www.asp.net/tutorials/quickstart.aspx


Web, particularly for generic technology: HTTP, HTML,
XML


MSDN Academic Alliance notes

23


Topics:


Web basics, HTTP, HTML, CGI, ActiveX, ASP/JSP (evolutionary
perspective)


.NET basics: CLR, C# / VB.NET, VS.NET


ASP.NET


ADO.NET, N
-
tier architecture


Security


XML, web services


Real world issues: deployment, teamwork, debugging, performance etc.


New developments: P2P, business integration servers (Biztalk), etc.


Most lectures mix of:


Concepts, design, architecture


Standards (e.g. HTTP, XML, web services)


.NET: practice inc. demos




Also tutorials covering practical aspects of .NET, often using
VS.NET walkthroughs

Lectures

Core topics

24

Lab Setup and Software




Students developed and tested code on individual machines


Run web server and database on each PC




Labs set up to run a boot loader (Rembo)


Multiple images, can force re
-
image if necessary


Students have admin permission


Machine configuration


Windows XP Professional


Internet Explorer 6


Visual Studio.NET Professional 2003 (moving to VS 2005 in 2006)


IIS (optional Windows XP Professional component)


SQL 2000 Server Developer Edition (moving to SQL Server 2005 in
2006)

25

Assignment (Project)


Students work in pairs


Serious programming assignment


Use SQL Server, Visual Studio.NET,
ASP.NET, VB.NET/C#, ADO.NET


Demo and present system at end of
semester

26

Assignment: Modify an Existing
System




Give an existing system, make modifications


Study a well architected system


Easier marking, less variation


Easier to scope project


Realistic


don’t start from scratch


Students write less code, spend more time
understanding existing well designed system


Can constrain system e.g. give them database


Fewer installation issues




Have server to deploy final system


easier
grading (almost xcopy deployment)


Use server virtualisation technology?

27

Example System: gasTix


gasTix example event ticketing
system like Ticketek


http://www.informit.com/title/06
72322196#



Example system


Best practice


Well architected


Uses C# and VB.NET,
database, security, ASP.NET,
web services


Comes with all source code


Described in: G. Sullivan,
“.NET e
-
Business
Architecture”, SAMS, 2002
(ISBN: 0672322196)

28

Extending gasTix


Gave them a database with some new tables


Force them to use that database, only access via
stored procedures!


Additional features


Customer registration


Support different counties


Web services address validator


Assignment required them to understand
existing code, but less coding for them to do

29

Example Assignment

30

New Front Page

Login

Choose

country

31

Region Map

32

Region Map

33

Searching For Events

34

Booking

35

Alternatives to gasTix


MS Duwamish books example


well documented,
exemplar design


http://msdn.microsoft.com/library/default.asp?url=/libr
ary/en
-
us/dnbda/html/bdasampduwam7.asp



New starter kits for portals etc.
http://msdn.microsoft.com/vstudio/express/vwd/starterkit/

(often only simple architecture …)


Business case studies
http://msdn.microsoft.com/asp.net/info/casestudies/defau
lt.aspx

36

Results


Lots of interest from students: 180
-
230 students each year


Lot of material to cover


Made good use of academic alliance program


Students can work on assignment using own PCs


Couldn’t run the subject without this!


Assignments


Generally very good, extending an existing system works well


Used postgraduate students for staffing tutorials & grading assignments


Prizes for best assignments


Grading very time consuming for start from scratch assignments,
modification ones better


Main issue: setting up database / shared machine for marking


Good support from Microsoft


Guest lectures went really well


Better student behaviour and participation than for academics!

37

2. Subject:

Web Services


Why Teach Web Services?


Represent an important evolution in distributed
computing


Next generation internet


For all communications interprocess
-

Internet


Will enable many new and exciting applications


Design principles still being worked out


different from traditional distributed objects


interesting research follow ons


Hot and important topic for industry


Very attractive to students


WS is a hot topic

38

Web Services Subject


Run twice


Masters level




Covers
business

and
technical

aspects of web
services


Used multiple platforms inc. .NET, Apache Axis (Java),
perl, IBM WebSphere etc.


Cover theory and practice of web services inc.


Service orientation


XML processing


WS standards such as WS Addressing, WS
-
Security




Taught jointly by Information Systems (IS) and
Computing Science (CS)


Mix of IS and CS students


WS representative of IS CS convergence

39

Content


Business rationale


Service orientation and web service introduction


XML and XML processing: inc Schema, XPath, XSLT, XQuery


Emphasised XML foundations of WS


Low level WS: SOAP, WSDL, UDDI


Inc. implementations: .NET and Java


High level WS protocols including WS Security


BPEL, workflow, choreography


Semantic web


Some guest lectures from industry and researchers at QUT



No textbook, lots of web references

40

Web Services Project


Large assignment/project 40% (60% exam)


Groups of 4/5


Not designed to be realistic!


Code all pieces: suppliers and consumers


Deliberately use a variety of implementation platforms &
techniques




Use WS
-
I interop example as a starting point


supply
chain management (
http://www.ws
-
i.org/
)


Emphasised


Build all WS aspects of a system


Use a variety of implementation platforms, techniques and
technologies


Web services


Deemphasised: data storage and GUIs

41

WS Project


Use a mix of implementation technologies


.NET most popular because easiest and most powerful


Also used other MS WS e.g. WSE, Indigo and Java, perl, PHP, …


Equal cover of:


Business rationale


Service orientation, architecture etc.


Implementation




Run Tomcat and IIS on one machine (different ports)


nice for students, can develop systems on one machine e.g. own PC




Prototype demo mid
-
semester


30 min presentation / demo at the end of semester


Two other check points during the semester


meeting with each
group

42

Results


70+ students


excellent for a postgraduate elective


Web service specifications changed underfoot!


Many technologies immature


bleeding edge teaching!


.NET by far easiest and most comprehensive support for
WS


Assignment


Large variation in designs, technologies etc.


Groups a little large


Many groups workflow / choreography was poorly expressed


Some advanced systems using WS Security interop etc.


Groups submitted source but difficult to rerun for further testing




Asked groups to state any known problems, robustness
issues etc.


This plus careful questioning during demo worked well


Technology and specs should start to stabilise next year

43

3. Subject:

Projects




Projects (u/g & p/g) are a good way to
test out technology for teaching or
research



I’ve run .NET projects involving:


Web applications development


Programming languages and compilers


Web services and grid computing


Mobile devices

44

4. Subject:
Mobile Devices


Subject on Software Development for Mobile
Devices




Uses .NET Compact Framework




Builds on success of an u/g mobility project


Also incorporate some wireless networking


Restrict to a small class of 24 students (only got
12 devices!)


Alternative is to use device emulator, much improved
in VS 2005

45

.NET Compact Framework


Reduced version of full .NET framework
for small devices


Program using C#, VB.NET etc. in Visual
Studio




Great way to develop for smart devices
such as: Pocket PCs and MS
Smartphones (students love it)


Demo

46

Mobile Devices


Run as a project / reading subject




100% project assessment, but with structured classes,
lectures etc.


Lectures on:


Intro to mobile devices


.NET Compact Framework


User interfaces inc thick and thin

clients


Data, communications and synchronization


Advanced topics: security, background processing, native code
interop


Guest lecture from MS & local industry


Prototype demo and final presentation




Tried peer review for final systems


rather variable
some students very hard on one another, some too easy

47

One Project:

Blood Glucose Monitor


(Diabetic student)


Blood glucose value entry


History charts


Upload data to doctor

48

Research

49

Research using .NET


Many possibilities to use .NET in research


build on it and move up the food chain


no more reinventing the wheel


E.g. research a programming language or debugger
whichever interests you but you don’t have to do both



Utilise the extensibility of .NET


You don’t really want the source code



.NET can add impact to your research



50

Research using .NET at QUT


Programming languages


Component Pascal


Ruby.NET


Metaphor: Staged programming language


GPSL: Web service language based on XQuery + join calculus


Distributed computing


G2: Cycle stealing framework


Bio workflow using Biztalk


.NET wiki


collaborative environment


For more details email me or see:
http://plas.fit.qut.edu.au


51

Conclusions

52

Recommendations


.NET good for:


New subjects e.g. web services, mobility,
internationalisation


Making old subjects more interesting


Can move up food chain and do more complex /
interesting things


Can do easy things for non
-
IT students


Combination of new subjects and .NET itself are
attractive to students


Other possible subjects include: games,
security, business process modelling

53

Technology Evolution


Change = nature of IT (organic)


Need to stay ahead of the wave


In addition to research papers, read product roadmaps
etc.



Three generations of .NET (1.0, 1.1, 2.0)


Use the latest generation 2.0


Visual Studio 2005


SQL Server 2005


Keep up with cool new stuff e.g. Project LINQ


I expect future .NET SE developments in architecture,
modelling and software lifecycle management

54

Students


Students like to be involved, consider:


Local MS events


Community user groups


Student community


MSDN connection


thespoke.net


Student MS rep


Competitions e.g. ACM or Imagine cup


http://thespoke.net/ViewContent.aspx?PostID=807740



QUT won Australia round of Imagine cup twice 2004 and 2005


Showing off: project exhibitions c.f. trade show


Invite industry

55

Where to From Here?


Consider what you want to achieve, check costs and benefits


Contact local MS rep


very helpful


Investigate and sign
-
up for MSDN Academic Alliance
http://msdn.microsoft.com/academic/


Check out curriculum repository
http://www.msdnaa.net/curriculum/repository.aspx


MS language is different from academic language


become conversant


alternative views can offer insights


Start small, build knowledge and confidence


E.g. undergraduate projects good starting point


Build team (if got large classes) e.g. post grad students for TA


Speak to book reps


good .NET text books


Pay attention to lab sys admin issues
http://msdn.microsoft.com/academic/solutions/itsol/



Make teaching research nexus work for you


Use research students, create Research / TA positions, use .NET in both


Look out for MS RFPs, faculty events etc.

56

Thank you


Questions?


(Please feel free to email me if you have
any questions which arise later
p.roe@qut.edu.au
)

57

5. Subject:

Programming Principles


Intro programming subject for conversion
masters students (non IT graduates)


Teaches programming fundamentals using C#


Conventional programming in the small
philosophy


‘Objects second’


Textbook:
Ira Pohl, C# by Dissection. Addison
Wesley, 2003.


Uses .NET SDK , Visual Studio (MSDNAA) and
ELP.NET

58

Standard Topics


Fundamental concepts of programming


Syntax and semantics of C#


Problem solving through creating, editing, compiling and
running programs


Programming techniques


dynamic memory allocation, file input/output, linked structures


Programming abstraction


using abstract data types such as stack and queue


Testing, documentation including assertions, pre
-

and
post
-
conditions


Ethics in programming

59

ELP.NET IDE


E
nvironment for
L
earning to
P
rogram


Programming environment to support students learning
to program in .NET languages inc C# and VB.NET


Web embeddable intro programming environment


Features


Gap coding


Custom error messages


Small, written in .NET


Shared source


Available from
http://plas.fit.qut.edu.au/elpnet/





Result of a Microsoft RFP we were awarded


Look out for MS Teaching and Research RFPs

60

6. Subject:

Internationalisation




Covers internationalisation of software


Important for Asia Pacific region


Uses .NET, Oracle and Linux


.NET has excellent support for
internationalisation


Main assignment, and emphasis, .NET


Project: Internationalisation of a contacts
database/phone book


Internationalisation is an area of expertise at
QUT

61

7. Subject:

Compiler Construction


Traditional compiler construction subject


Been using .NET since 2001


Subject revolves around a toy compiler
which generates .NET intermediate code


Assignment involves extending this


Just uses .NET SDK not Visual Studio


Loudon, Kenneth, C. 1997,
Compiler
Construction, Principles and Practice
,
PWS, Boston. (doesn’t cover .NET)

62

8. Subject:

Component Technology


Distributed computing and component
technology


Java Beans, COM+, .NET


Assignments in each technology


Uses Clemens Szyperski’s book:
Component Software: Beyond Object
-
Oriented Programming, 2nd edition,
Addison
-
Wesley 2002