- Microsoft Center

Download Report

Transcript - Microsoft Center

.NET in the IT Curriculum
Paul Roe
Queensland University of Technology,
Australia
[email protected]
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
2
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
3
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, …
4
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)
5
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
6
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
–
–
–
–
–
2.
3.
4.
Textbooks
Reference material
Tutorials
Courseware
Videos
Software: availability, cost, resource implications, student access
Labs set-up and administration, systems administrators,…
People (with necessary skills)
–
–
–
–
Teaching assistants
Instructors
Students
Systems administrators
7
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.
8
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/enus/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
9
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 3rd party
documentation
• Can be difficult to find good overview documents
suitable for academia
10
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
11
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-90df5d1aaa7d37af/program_overview.ppt
12
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
13
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
14
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
15
Some QUT Subjects using .NET
16
Some Subjects at QUT which use .NET
1.
2.
3.
4.
5.
6.
7.
8.
Web applications development*
Web Services*
Projects*
Mobile devices*
Programming Principles
Internationalisation
Compiler Construction
Component Technology
*Subjects I’ve taught and I’ll discuss today
 = Tips, tricks and ideas I think are especially useful
17
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
18
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
Web server
Client
(web browser)
HTML
over
HTTP
ASP.NET
Presentation
Business
Logic
ADO.NET
Data
Access
Database
19
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
20
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
21
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
22
Lectures
Core topics
• 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
23
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)
24
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
25
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?
26
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)
27
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
28
Example Assignment
29
New Front Page
Choose
country
Login
30
Region Map
31
Region Map
32
Searching For Events
33
Booking
34
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
35
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!
36
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
37
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
38
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
39
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
40
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
41
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
42
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
43
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
44
.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
45
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
46
One Project:
Blood Glucose Monitor
•
•
•
•
(Diabetic student)
Blood glucose value entry
History charts
Upload data to doctor
47
Research
48
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
49
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
50
Conclusions
51
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
52
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
53
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
54
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.
55
Thank you
• Questions?
• (Please feel free to email me if you have
any questions which arise later
[email protected])
56
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
57
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
58
ELP.NET IDE
• Environment for Learning to Program
• 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
59
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
60
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)
61
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 ObjectOriented Programming, 2nd edition,
Addison-Wesley 2002
62