Dynamic Web Applications

Web based software development is one field which sees massive innovation. In the 90's most websites were static websites. These were soon replaced by dynamic websites which were backed by databases and developed mostly in Perl. Since then several languages (Java, Python, PHP, Ruby, etc) and frameworks (Struts, JSF, Django, Rails, etc) have become prevalent for web programming. These take a lot of the boiler plate tasks away from the developer, thus making it possible for the developer to focus more on the business logic.

More recently we have also seen an increase in rich client web applications which make extensive use of Javascript, CSS, AJAX, and now HTML5.

When we make a web based software, we normally do it in a particular language and use libraries and frameworks available for that ecosystem. I plan to use Java for this course. However, I feel that working with just one language is not good enough now. We seem to be moving towards polyglot programming. PHP is a language that is very widely used for web development. I would like to at least become familiar with using PHP and it's libraries.

Main topics that will be covered

  • Understand the basics of web based development (Request/Response cycle, HTTP Headers, MIME types)
  • Client technologies (Javascript, CSS, XML, HTML5, AJAX)
  • Server side technologies (Java - Servlets, JSP, EJB)
  • Java web frameworks (Wicket)
  • Server side technologies (PHP)
  • Creating a database driven backend (SQL, NoSql, JPA, Hibernate)
  • Deploying and managing a web server (Apache, Tomcat, Jetty, JBoss)
  • Web services (includes basics of XML, REST and SOAP, and deploying web services)

Introductory Posts:

Competencies, Concepts, and Learning Trail

HTML (also 5), XML, CSS, HTTP

Competency, Concept Learning Trail
Understand what is HTML and why is it needed
Understand the structure of an HTML document
Understand the basic categories that HTML tags fall into HTML Basics
Understand how to change various aspects of foreground and background display
Understand how to create ordered and unordered lists HTML Lists
Understand how to create a table
Understand various ways in which horizontal and vertical space can be controlled Block Level Elements: MindMap and Short Description, Block Level elements in HTML
Understand various ways in which we separate elements in an HTML page
MORE COMPETENCIES TO BE ADDED
Competency, Concept Questions Asked Questions Answered Homework
TO BE ADDED TO BE ADDED TO BE ADDED TO BE ADDED

Resources

Open courseware

Websites

Forums