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.

332• spend a term learning how to implement lists, stacks, hashtables• spend a term learning that sorting is O(n log n)• spend a term learning how to interpret a high-level language• spend a term learning how to build a time-sharing operatingsystem• spend a term learning about the underpinnings of severaldifferent kinds of database management systems• spend a term learning about AI algorithms<strong>Student</strong>s in MIT course 6.001 (Structure and Interpretation ofComputer Programs, based on the Abelson/Sussman textbook of thesame name) learn all of the above in one semester, albeit not verythoroughly. By the end of the semester, they're either really excitedabout the challenges in computer science or... they've wised up andswitched to biology.Survey courses have been similarly successful on the electricalengineering side of our department. In the good old days, MIT offered6.01, a linear networks course. <strong>Student</strong>s learned RLC networks indetail. But they <strong>for</strong>got why they'd wanted to major in electricalengineering. Today the first hardware course is 6.002, wherestudents play with op-amps be<strong>for</strong>e learning about the transistor!One of the most celebrated courses at MIT is the Aeronautics andAstronautics department's Unified <strong>Engineering</strong>. Here is the firstsemester's description from the course catalog:Presents the principles and methods of engineering, as well as theirinterrelationships and applications, through lectures, recitations,design problems, and labs. Disciplines introduced include: statics,materials and structures, dynamics, fluid dynamics, thermodynamics,materials, propulsion, signal and system analysis, and circuits.Topics: mechanics of solids and fluids; statics and dynamics <strong>for</strong>bodies systems and networks; conservation of mass and momentum;properties of solids and fluids; temperature, conservation of energy;stability and response of static and dynamic systems. <strong>Applications</strong>include particle and rigid body dynamics; stress and de<strong>for</strong>mations intruss members; airfoils and nozzles in high-speed flow; passive andactive circuits. Laboratory exposure to empirical methods inengineering; illustration of principles and practice. Design of typicalaircraft or spacecraft elements.Note that this is all presented in one semester, albeit with double thestandard credit hours. For almost every topic in the courseworthwhile in<strong>for</strong>mation to keep with the browser. The text-onlypreference may be related to a slow <strong>Internet</strong> connection to thatcomputer. If the computer is in a home full of Francophones, chancesare that all the people who share the browser will prefer French.The second cookie set, ad_session_id is set to expire after onehour ("Max-Age=3600"). If not explicitly set to expire it would expirewhen the user quit his or her browser. Things worth associating witha session ID include the contents of a shopping cart on anecommerce site, though note that if photo.net were a shopping site, itwould not be a good idea to expire the session cookie after one hour!It is annoying to build up a cart, be called away from your computer<strong>for</strong> a few hours, and then have to start over when you return to whatyou thought was a working Web page.If we were logged into photo.net, there would be a third cookie, onethat identifies the user. Languages and presentation preferencesstored on the server on behalf of the user would then overridepreferences kept with the browser ID.2.4 Server-side StorageYou've got ID in<strong>for</strong>mation going out to and coming back frombrowsers, either via using the cookie extension to HTTP or via URLrewriting. Now you have to figure out a way to keep associatedin<strong>for</strong>mation on the Web server.For flexibility in how you present and analyze user-contributed data,you'll probably want to keep the in<strong>for</strong>mation in a structured <strong>for</strong>m. Forexample, it would be nice to have a table of all the items put intoshopping carts by various users. And another table of orders. Andanother table of reader-contributed product reviews. And anothertable of questions and answers.What's a good tool <strong>for</strong> storing tables of in<strong>for</strong>mation? Consider first aspreadsheet program. These are inexpensive and easy to use. Oneshould never apply more complex technology than necessary <strong>for</strong>solving a problem. Something like Visicalc, Lotus 1-2-3, MicrosoftExcel, or StarOffice Calc would seem to serve nicely.The problem with a spreadsheet program is that it is designed <strong>for</strong> oneuser. The program listens <strong>for</strong> user input from two sources: mouseand keyboard. The program reports its results to one place: thescreen. Any source of persistence <strong>for</strong> a Web server has to contend17

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

Saved successfully!

Ooh no, something went wrong!