Developing an Developing an Undergraduate Distributed Undergraduate Distributed
Development CourseDevelopment CourseGregory ContiGregory Conti
John M. D. HillJohn M. D. Hill
Curtis A. Carver, Jr.Curtis A. Carver, Jr.
United States Military AcademyUnited States Military Academy
Department of Electrical Engineering Department of Electrical Engineering and Computer Scienceand Computer Science
What We Did…What We Did…Built an undergraduate Built an undergraduate Distributed Development Distributed Development course to serve as a course to serve as a capstone for our capstone for our computer science minor computer science minor and an elective for and an elective for computer science, computer science, electrical engineering electrical engineering and information systems and information systems engineering majors.engineering majors.IT105
Introduction to Computing
CS350Database Design & Implementation
CS301Fundamentals of Computer Science
IT305 Theory & Practice of IT Systems
IS450Distributed Application
Engineering
USMA Computer Science Minor (a.k.a. CS Sequence)
WhyWhy
Lack of WWW Programming in our Lack of WWW Programming in our traditional CS curriculumtraditional CS curriculum
Serve as a capstone course for our CS Serve as a capstone course for our CS minorminor
Serve as an elective for CS, ISE and EE Serve as an elective for CS, ISE and EE majorsmajors
Student DemandStudent Demand
Relevant Relevant
PhilosophyPhilosophy
Design MethodologyDesign MethodologyClient to ServerClient to ServerStandardsStandardsOpen source tools Open source tools Integrate with 120 (200) lessonsIntegrate with 120 (200) lessonsWeave security throughout courseWeave security throughout courseCode reuseCode reuseArt in addition to ScienceArt in addition to Science
Course StructureCourse Structure
Introduction / Big PictureIntroduction / Big Picture 3 Lessons3 Lessons
Web Site DesignWeb Site Design 5 Lessons5 Lessons
XHTML Development (Static Website)7 LessonsXHTML Development (Static Website)7 Lessons
Dynamic Website (Client Side Only)Dynamic Website (Client Side Only) 7 Lessons7 Lessons
Dynamic Website (Server Side + DB)Dynamic Website (Server Side + DB) 5 Lessons5 Lessons
Server TechnologyServer Technology 6 Lessons6 Lessons
Advanced TopicsAdvanced Topics 5 Lessons5 Lessons
Wrap-upWrap-up 2 Lessons2 Lessons
AssessmentAssessment
Progressive Project on topic of students Progressive Project on topic of students choicechoice
Web Site DesignWeb Site Design
Progressive Programming AssignmentsProgressive Programming Assignments– BasicBasic– Basic + Client Side JavaScriptBasic + Client Side JavaScript– Basic + Client Side + Server Side + DatabaseBasic + Client Side + Server Side + Database
Final ExamFinal Exam
TechnologiesTechnologies
Open SourceOpen Source– ApacheApache– PerlPerl– HTML KitHTML Kit– MySQLMySQL
Standards BasedStandards Based– XHTML vs. HTMLXHTML vs. HTML– ECMA Script vs. JavaScriptECMA Script vs. JavaScript
MethodMethod
Taught in a PC lab Taught in a PC lab – Internet AccessInternet Access– UNIX AccessUNIX Access
Hand onHand on
Maximize Use of Web ResourcesMaximize Use of Web Resources
Text – WWW How to Program (Deitel)Text – WWW How to Program (Deitel)
Student FeedbackStudent FeedbackNo final exam (boilerplate)No final exam (boilerplate)
Integrate w/ online computer based Integrate w/ online computer based trainingtraining
XHTML specific textXHTML specific text
High marks for DeitelHigh marks for Deitel
Individual projects feeding into final group Individual projects feeding into final group project(s)project(s)
Progressive exampleProgressive example
Lessons LearnedLessons Learned
Apache server & MySQL accessApache server & MySQL access– vmwarevmware
Everyone wants to helpEveryone wants to help
Post to web server from day onePost to web server from day one
Perl requires a lot of timePerl requires a lot of time– Move to PHPMove to PHP
Alternative textAlternative text
Lessons Learned (cont)Lessons Learned (cont)
Open Source tools promote continued Open Source tools promote continued learninglearning
Engineers design technically functional Engineers design technically functional websiteswebsites– JavaScriptJavaScript
Too much emphasis on standards is awkwardToo much emphasis on standards is awkward
Future WorkFuture Work
XMLXML
UMLUML
PHP vs PerlPHP vs Perl
Joint engineer & artist projectJoint engineer & artist project
Community serviceCommunity service
Continue to seek out web resourcesContinue to seek out web resources
Future Work (cont)Future Work (cont)
Review 120 lesson sequence Review 120 lesson sequence – Same textSame text– Same technologies where possibleSame technologies where possible
Laptops and wirelessLaptops and wireless
Other technologiesOther technologies– C# / .Net / Java AppletsC# / .Net / Java Applets
Greater emphasis on networksGreater emphasis on networks