Copyright 2018 - CSIM - Asian Institute of Technology

Web Application Engineering

Course code: AT70.12
Credits: 3(2–3)
This course is required

Course objectives

The 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.
 
AT70.12 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 enterprise application frameworks, middleware, and thick clients. Students successfully completing Web Application Engineering will be competent database-backed Web application developers capable of designing, deploying, and maintaining large-scale services like amazon.com.

Learning outcome

Web technology background. Software architecture for Web applications. Data modeling. Version control. Web application security. Ajax. Web services. Scaling Web applications.

Prerequisite(s)

Programming experience.

Course outline

I.        Web technology background
 
II.      Software architecture for Web applications
1.     Layering
2.     Model-View-Controller pattern
3.     Modern MVC frameworks
 
III.     Data modeling
1.     SQLLaboratory sessions

Installing Linux, Apache, and PostgreSQL; Ruby on Rails; JSP; Eclipse IDE; User authentication; Flex; Ajax; REST; Load balancing.

Learning resources

Textbook

E. Anderson, P, Greenspun, and A. Grumet.
Software Engineering for Internet Applications, MIT Press, 2006. Available free online at http://philip.greenspun.com/seia.

Journals

M. Andrews and J.A. Whitaker. How to Break Web Software:
Functional and Security Testing of Web Applications and Web Services, Addison-Wesley, 2006.
 
H. Bergsten.
JavaServer Pages, 3rd edition, O'Reilly, 2003.
 
B. Collins-Sussman, B. Fitzpatrick, and C.M. Pilato.
Version Control with Subversion, 2007. Available free on online at http://svnbook.red-bean.com/nightly/en/index.html.
 
D. Crane and P. McCarthy.
Comet and Reverse Ajax: The Next-Generation Ajax 2.0, Apress, 2008.
 
C. Fowler. Rails Recipes,
Pragmatic Programmers, 2006.
 
M. Fowler. Patterns of Enterprise Application Architecture, Addison-Wesley, 2003.
 
K. Fu, E. Sit, K. Smith, and N. Feamster,
Dos and

Reference books

None. [Online resources such as experts' blogs are more important.]

Back to the list

 

Login Form

Search

School of Engineering and technologies     Asian Institute of Technology