18
Developing an Developing an Undergraduate Undergraduate Distributed Distributed Development Course Development Course Gregory Conti Gregory Conti John M. D. Hill John M. D. Hill Curtis A. Carver, Jr. Curtis A. Carver, Jr. United States Military Academy United States Military Academy Department of Electrical Engineering Department of Electrical Engineering and Computer Science and Computer Science

Developing an Undergraduate Distributed Development Course

Embed Size (px)

DESCRIPTION

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. What We Did…. IS450 Distributed Application Engineering. - PowerPoint PPT Presentation

Citation preview

Page 1: Developing an Undergraduate Distributed Development Course

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

Page 2: Developing an Undergraduate Distributed Development Course
Page 3: Developing an Undergraduate Distributed Development Course

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)

Page 4: Developing an Undergraduate Distributed Development Course

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

Page 5: Developing an Undergraduate Distributed Development Course

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

Page 6: Developing an Undergraduate Distributed Development Course
Page 7: Developing an Undergraduate Distributed Development Course

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

Page 8: Developing an Undergraduate Distributed Development Course

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

Page 9: Developing an Undergraduate Distributed Development Course

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

Page 10: Developing an Undergraduate Distributed Development Course

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)

Page 11: Developing an Undergraduate Distributed Development Course

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

Page 12: Developing an Undergraduate Distributed Development Course

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

Page 13: Developing an Undergraduate Distributed Development Course

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

Page 14: Developing an Undergraduate Distributed Development Course
Page 15: Developing an Undergraduate Distributed Development Course

JavaScriptJavaScript

Page 16: Developing an Undergraduate Distributed Development Course

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

Page 17: Developing an Undergraduate Distributed Development Course

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

Page 18: Developing an Undergraduate Distributed Development Course

QuestionsQuestions

???