620 likes | 717 Views
.NET in the IT Curriculum. Paul Roe Queensland University of Technology, Australia p.roe@qut.edu.au. Brisbane. QUT. Queensland University of Technology (QUT) One of largest universities in Australia: 40,000+ students (undergraduate, postgraduate, 10% international)
E N D
.NET in the IT Curriculum Paul Roe Queensland University of Technology, Australia p.roe@qut.edu.au
Brisbane 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
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
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, …
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)
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
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! • Documentation • 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
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.
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
1. Documentation: Academic • Academic Alliance web site http://msdn.microsoft.com/academic • Courseware: MS curriculum repositoryhttp://www.msdnaa.net/curriculum/repository.aspx • I use all these resources extensively • Augment lecture notes with 3rd party documentation • Can be difficult to find good overview documents suitable for academia
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/default.mspx for professional, faculty and students
2. Software • .NET SDK is free, as is Rotor (SSCLI - Shared Source .NET) and Mono (Open Source .NET) • Visual Studio 2005 and SQL server express editions free • Good for basic development, inc basic web dev • http://msdn.microsoft.com/vstudio/express/ • 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
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
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
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
Some Subjects at QUT which use .NET • 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
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
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) ASP.NET Presentation Business Logic ADO.NET Data Access HTML over HTTP Database
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
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
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
Lectures • 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 Core topics
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)
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
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?
Example System: gasTix • gasTix example event ticketing system like Ticketek • http://www.informit.com/title/0672322196# • 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)
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
New Front Page Choose country Login
Alternatives to gasTix • MS Duwamish books example – well documented, exemplar design • http://msdn.microsoft.com/library/default.asp?url=/library/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/default.aspx
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!
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
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
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
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
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
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
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
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
.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
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
One Project:Blood Glucose Monitor • (Diabetic student) • Blood glucose value entry • History charts • Upload data to doctor
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
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