13.07.2015 Views

Software Engineering for Internet Applications - Student Community

Software Engineering for Internet Applications - Student Community

Software Engineering for Internet Applications - Student Community

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

• we want to see if a student is capable of good writtenanalysis of <strong>Internet</strong> applications and compelling writtenjustifications of his or her design work• by giving take-home exams rather than in-class quizzes weare able to create an experience that will add to thestudents' skillsA good style of question involves asking the students to try out aparticular public <strong>Internet</strong> service and then build a data model thatwould support what they've just seen. The students should then loadtheir data model and try to solve some SQL puzzles against them.Another good question asks the students to visit a public <strong>Internet</strong>application, try it out, and write a critique of the user experience. Inour exam we include the following admonition: "Your critique shouldbe clear concerning what is wrong with the current system. Yourcritique should be explicit about what to change, such that a juniorprogrammer could implement your improvements without dependingon his or her own taste and judgement."You might also want to ask the students to propose and justify ahardware and software architecture to handle a specific service anduser load.Note that all of these questions are sufficiently open-ended to lead tointeresting classroom discussion. Note further that these exams mustbe graded by someone experienced with software engineering anddata modeling.Finding clientsA real-world client has much to offer your students. A real-world clientwill phrase problems in vague and general terms. A real-world clientwill bring content and users to flesh out what would otherwise be apurely academic exercise. A real-world client can provide studentswith per<strong>for</strong>mance feedback. A real-world client <strong>for</strong>ces students toconfront the challenge of demonstrating their achievement to a nontechnicalaudience.want to learn about quantum mechanics, you need only pull a bookfrom your shelf and turn on the reading light. But what if you want toteach at 3:00 am? Your friends may not appreciate being called up at0300 and told "Hey, I just learned that the Franck-Hertz Experimentin 1914 confirmed the theory that electrons occupy only discrete,quantized energy states". What if you could go to a server-basedin<strong>for</strong>mation system and say "show me a listing of all the unansweredquestions posted by other users"? You might be willing to answer afew, simply <strong>for</strong> the satisfaction of helping another person and feelinglike an expert. When you got tired, you'd go to bed. Teaching is fun ifyou don't have to do it 40 hours per week <strong>for</strong> 30 years.Imagine if every learning photographer had a group of experiencedphotographers answering his or her questions? That's the onlinecommunity photo.net, started by one of the authors as a collection oftutorial articles and a question-and-answer <strong>for</strong>um in 1993 and as of2004 home to 270,000 registered users engaged in answering eachother's questions and critiquing each other's photographs. Imagine ifevery current MIT student had an alumnus mentor? That's whatsome folks at MIT have been working on. It seems like a much moreeffective strategy to get some volunteer labor out of the 90,000alumni than to try to squeeze more from the 930 faculty members.Most of MIT's alumni don't live in the Boston area. <strong>Student</strong>s can onlybenefit from the volunteerism of distant alumni if (1) student-facultyinteraction is done in a computer-mediated fashion so that itbecomes visible to authorized mentors, and (2) mentors can use thesame in<strong>for</strong>mation system as the students and faculty to get access tohandouts, assignments, and lecture notes. We're coordinating peopleseparated in space and time who share a common purpose. Again,that's an online community.Online communities are challenging because learning is difficult andpeople are idiosyncratic. Online communities are challengingbecause the software that works <strong>for</strong> a community of 200 won't work<strong>for</strong> a community of 2,000 or 20,000. Online communities are inspiringengineering projects because they deliver to users two of the thingsthat they want most out of life: connections to other people andeducation.What can your students offer real-world clients? In some cases astudent team will build a launchable, documented, maintainable,high-per<strong>for</strong>mance system that the client can run <strong>for</strong> years. This happyresult, however, is not necessary in order <strong>for</strong> a client to get valuefrom participating in a course based on this textbook. Oftentimes3409

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!