Developing an Undergraduate Distributed Development Course

advertisement
Developing an
Undergraduate Distributed
Development Course
Gregory Conti
John M. D. Hill
Curtis A. Carver, Jr.
United States Military Academy
Department of Electrical Engineering
and Computer Science
IS450
Distributed Application
Engineering
CS350
Database Design & Implementation
CS301
Fundamentals of Computer Science
IT305
Theory & Practice of IT Systems
IT105
Introduction to Computing
USMA Computer Science Minor
(a.k.a. CS Sequence)
What We Did…
Built an undergraduate
Distributed Development
course to serve as a
capstone for our
computer science minor
and an elective for
computer science,
electrical engineering
and information systems
engineering majors.
Why
Lack of WWW Programming in our
traditional CS curriculum
Serve as a capstone course for our CS
minor
Serve as an elective for CS, ISE and EE
majors
Student Demand
Relevant
Philosophy
Design Methodology
Client to Server
Standards
Open source tools
Integrate with 120 (200) lessons
Weave security throughout course
Code reuse
Art in addition to Science
Course Structure
Introduction / Big Picture
3 Lessons
Web Site Design
5 Lessons
XHTML Development (Static Website)7 Lessons
Dynamic Website (Client Side Only) 7 Lessons
Dynamic Website (Server Side + DB) 5 Lessons
Server Technology
6 Lessons
Advanced Topics
5 Lessons
Wrap-up
2 Lessons
Assessment
Progressive Project on topic of students
choice
Web Site Design
Progressive Programming Assignments
– Basic
– Basic + Client Side JavaScript
– Basic + Client Side + Server Side + Database
Final Exam
Technologies
Open Source
– Apache
– Perl
– HTML Kit
– MySQL
Standards Based
– XHTML vs. HTML
– ECMA Script vs. JavaScript
Method
Taught in a PC lab
– Internet Access
– UNIX Access
Hand on
Maximize Use of Web Resources
Text – WWW How to Program (Deitel)
Student Feedback
No final exam (boilerplate)
Integrate w/ online computer based
training
XHTML specific text
High marks for Deitel
Individual projects feeding into final
group project(s)
Progressive example
Lessons Learned
Apache server & MySQL access
– vmware
Everyone wants to help
Post to web server from day one
Perl requires a lot of time
– Move to PHP
Alternative text
Lessons Learned (cont)
Open Source tools promote continued
learning
Engineers design technically functional
websites
– JavaScript
Too much emphasis on standards is awkward
JavaScript
Future Work
XML
UML
PHP vs Perl
Joint engineer & artist project
Community service
Continue to seek out web resources
Future Work (cont)
Review 120 lesson sequence
– Same text
– Same technologies where possible
Laptops and wireless
Other technologies
– C# / .Net / Java Applets
Greater emphasis on networks
Questions
Download