Selected Topic: Web Application Engineering
Course code: AT70.9009
This course is elective
Course objectivesThe World Wide Web has already revolutionized the way we work, learn, and publish. The Web not only dramatically increases the size of the potential audience for our content, but also makes it possible to bring physically disparate people together into more tightly-knit communities than hitherto possible. In this highly distributed and collaborative environment, Web application developers face the triple challenge of 1) system complexity, 2) massive concurrency, and 3) a fickle user base always ready to abandon one site for the next. In this course, students will learn to cope with these challenges by using appropriate technology and a user-centered approach to the design and construction of large-scale Web applications. AT 70.xx is a project-oriented course in which student teams will be paired with client organizations needing online community collaborative learning and information sharing systems. Using a Web server, programming language, and relational database of their own choice, students will take the system from an initial concept through the stages of requirements specification, design, implementation, and usability testing. Along the way, focused laboratory sessions will give students experience with specific technologies and techniques useful across many applications, and lectures will introduce students to the most recent developments in Web application frameworks and client-side scripting. Students successfully completing AT xx.xx will be competent database-backed Web application developers capable of designing, deploying, and maintaining large-scale services such as amazon.com.
Learning outcomeEngineering of large-scale Web-based applications.
Prerequisite(s)Experience programming in a high-level programming language, e.g. C or Java.
II Basic Technology for Web Applications
III Service planning
IV User management
V Content management
VI Usability testing
VII Legacy applications
VIII Access from mobile devices
IX Search engines
X Web Services
XI New and hot technology
Laboratory sessionsConfiguring Apache, PHP, and PostgreSQL. SQL for web applications. Publishing and interpreting XML. Templates and style sheets. Usability testing. User registration and management. Implementing a content management system. Building a discussion forum. Interfacing to legacy systems. Mobile web applications: WAP and XHTML-MP. Full-text search: indexing and web robot hints. Web services: RSS and XML-RPC, and SOAP.
TextbookE. Andersson, P. Greenspun, and A. Grumet: Software Engineering for Internet Applications , MIT Press, 2006. Available online: http://philip.greenspun.com/seia/
Reference booksOnline manuals for open-source web technology tools.
D. Norman : The Design of Everyday Things , Basic Books, 2002.
J. Nielsen: Designing Web Usability: The Practice of Simplicity , New Riders Press, 1999.
J. Niederst: Web Design in a Nutshell , 2nd ed., O'Reilly, 2001.
S. Murugesanand Y. Deshpande : Web Engineering: Managing Diversity and Complexity of Web Application Development , 1 st edition, Springer, 2001.
K. Fu, E. Sit, K. Smith and N. Feamster: Dos and Don'ts of Client Authentication on the Web , Proceedings of the 10 th USENIX Security Symposium, 2001.
M. Weiss: Patterns for Web Applications , Patterns Languages of Programming (PLoP), 2003.
L. Rosenfeld and P. Morville: Information Architecture for the World Wide Web: Designing Large-Scale Web Sites , O'Reilly, 2002.
P. Greenspun: SQL for Web Nerds , Available online: http://philip.greenspun.com/sql/
E. Cerami: Web Services Essentials: Distributed Applications with XML-RPC, SOAP, UDDI and WSDL , O'Reilly, 2002.
S. St. Laurent , J. Johnston, and E. Dumbill: Programming Web Services with XML-RPC , O'Reilly, 2001.
E. R. Harold and W. Scott Means: XML in a Nutshell , 3rd ed., O'Reilly, 2004.
GradingThe final grade will be computed from the following constituent parts:
project and lab work (60%),
mid-semester exam (20%),
final exam (20%) .