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