~~SLIDESHOW~~
Introducing the Module
Contact Hour 1: To be reviewed on Tuesday 29th January, 2013.
Lecturer: Dr Chris P. Jobling.
An introduction to the module EG-259 Web Applications Technology, its aims, content etc, and how it fits into the ICCT programme.
Introducing the Module
EG-259: Web Applications Technology
Learning Outcomes for this Session
What resources will I need to use to pass this module?
Which modules are pre-requesites for this module?
Which modules are related to this module?
What are the main topics to be covered in this module?
What are the learning outcomes for this module?
What transferable skills will I have at the end of this module?
How will I be assessed?
Recommended Text Books
The books that I have chosen to recommend are all available on the Internet as free eBooks but they can be purchased in book form, for those who prefer paper, and some are available in Kindle editions.
Mark Pilgrim, Dive into HTML5,
diveintohtml5.info/ published as Mark Pilgrm,
HTML5: Up & Running, Google Press [O'Reilly Inc], 2010.
ISBN: 0596806027 (
Amazon also available for
Kindle)
Marijn Haverbeke,
Eloquent JavaScript: A Modern Introduction to Programming, No Starch Press, 2011,
ISBN 1-59327-282-0. (
Amazon also available for
Kindle) Free ebook online in PDF and
HTML at
eloquentjavascript.net/)
Kevin Yank,
Build Your Own Database Driven Web Site Using PHP & MySQL, 4th Ed., SitePoint, 2009,
ISBN 0980576814. The first 168 pages are free in exchange for your email from
SitePoint.com where you can also order the book in print form and as a PDF. The whole book is also available from
Amazon and as a
Kindle Edition.
Optional but Highly Recommended
The first of these texts was a main text for EG-146 last year. The other, discovered after that module, is a very well presented introduction to Website design.
Robert W. Sebasta, Programming the World-Wide Web, 7th Edition, Pearson, 2013. ISBN: 0-13-266581-6. The third edition, published in 2006, was a former main text, still a source for many of the slides.
Elizabeth Castro and Bruce Hyslop, HTML5 and CSS3, 7th Edition, Visual Quickstart Guides, Peachpit Press, 2012. ISBN: 0-371-71961-1.
Jon Ducket,
HTML&
CSS: design and build websites, Jon Wiley, Indianapolis, USA, 2011. ISBN: 978-1-118-00818-8.
Books for Self-Directed Learners
If you are a self-directed learner, the Head First series of books is ideal as a “Teach Yourself Resource”. Although they are a bit expensive (around £20 each on Amazon.co.uk), they are excellent and I use them myself.
The following from the series are directly relevant to this course:
Worth a Look
Nigel Chapman and Jenny Chapman, Web Design: A Complete Introduction, Wiley, 2007. ISBN: 0-470-01775-9. Nice comprehensive text and source of many alternative examples and problems.
Chris Bates, Web Programming: Building Internet Applications, 3rd Edition, John Wiley & Sons Ltd., 2006. ISBN: 0-470-01775-9. Was the main text a couple of years ago, but a bit out of date now.
J.F. Kurose and Keith W. Ross, Computer Networking: A Top Down Approach Featuring the Internet, 3rd Edition, Addison Wesley, 2005. ISBN: 0-321-26976-4. Provides useful background.
J. Niederst Robbins, Web Design in a Nutshell, 3rd Edition, O'Reilly, 2006. ISBN: 0-596-00484-2. Excellent reference.
S. Spainhour and R. Eckstein, Webmaster in a Nutshell, 3rd Edition, O'Reilly, 2003. Another excellent, although perhaps slightly dated, reference.
Further Reading
Leonard Richardson and Samy Ruby, RESTful web services, O’Reilly Media, Inc. 2007. ISBN: 0-596-52926-0.
Jeffry Zeldman, Designing with Web Standards, 2nd Edition, New Riders, 2007. ISBN: 0-321-38555-1. Very worthwhile reading if you are interested in web standards and there use to create backwards and forwards compatible web sites and web applications.
B. Laurie and P. Laurie, Apache: The Definitive Guide, 3rd Edition, O'Reilly, 2003.
-
Other books and articles will be posted on the Blackboard site as they are referenced in the lectures.
Other Learning Resources
Module Notes and Support
Follow links to EG-259: Web Applications Technology from the My Courses list.
Lecture Content
What You Should Already Know
In the pre-requisite module EG-146: Communications for the Internet you learned about:
What the Internet is
Application Protocols
Web Content
What is the Internet?
A nuts and bolts description is concerned with the end-systems (workstations, mobiles and servers) which are located at the periphary (or edge) of the network; the routers (or packet switches) that form the core of the network; and the links of various wired and wirless media that interconnect all of the components.
A service description is concerned with the ideas of architectures (client-server, peer-to-peer and hybrid), distributed applications, and the various services provided by the protocol stack which includes data transport, network addressing and routing and the various link protocols.
What is a protocol? A protocol is a set of rules and message formats that define a conversation between any two components on a network. Protocols are to be found at all levels of the so-called “protocol stack”.
Network Edge/Network Core
The Network Edge
The Network Core
The Network Edge
end systems (hosts) run application programs (e.g. Web, email) at “edge of network”.
client/server model: client host makes requests and receives service from always-on server (e.g. Web browser/server; email client/server).
peer-peer model has minimal (or no) use of dedicated servers (e.g. Gnutella, KaZaA, BitTorrent).
The Network Core
Delay and Loss
Protocol Layers and their Service Models
Internet protocol stack
application: supporting network applications
transport: host process to host process (port-port) data transfer
network: routing of datagrams from source host to destination host
link: data transfer between neighboring network elements
physical: bits “on the wire”
Application Protocols
Application Protocols (continued)
Web Content
Module Aims
Intended Module Learning Outcomes
After completing this module you should be able to:
Describe the architectures used in web applications;
Describe in detail the life-cycle of a web request that is satisfied by a web application;
Give examples of best practice for the development of client- and server-side programming.
Compare and contrast the options available for the deployment of web applications.
Transferable Skills
After completing this module you should have:
Installed and configured the Apache web server
Installed and configured several common web applications
Developed a web application that makes use of XHTML/
CSS and JavaScript on the client-side and CGI/PHP and MySQL on the server-side.
Module Contents
What is a web application?
Web application architectures: client-server, web browsers, web servers, middleware and databases.
Representational State Transfer (REST): HTTP methods, URIs, representations.
Client-side technologies: revision of
HTML,
CSS, multimedia and plug-ins; client-side programming: JavaScript, AJAX, HTML5 APIs.
Server technologies: the LAMP platform: Linux, Apache Webserver PHP and MySQL database.
Server programming: Perl CGI and PHP.
Web application frameworks: Ruby on Rails, model-view-controller pattern.
Case studies: an HTML5/CSS3 page, a wiki engine, a blogging platform, a contents management system.
Part 1: The Basics of Web Applications Technology
Largely revision of material covered in EG-146 and EG-153.
Part 2: Client-Side Programming in JavaScript
Programming in JavaScript
Regular Expressions
JavaScript and the DOM
Dynamic documents with JavaScript
The HTML5 JavaScript APIs
The jQuery JavaScript Library
Mobile Web Apps
Part 3: Server-Side Programming
Part 4: Database Access and Web Applications
Database access through the web
Web Database Access with MySQL, Perl and PHP
Web Application Frameworks
Case Studies
Module Delivery
30 Hours of timetabled contact of which
Continuous Assessment: 25 hours
Directed private study including preparation for final examination: approx 43 hours
Examination: 2 hours
Supporting labs
Tuesdays 9.00 am in Vivian 129
Tuesdays 9.00 am in Kheir Hardy 231
Fridays 12.00 pm in Kheir Hardy 301
Homework
Many of the homework problems take form of programming exercises.
These are designed to get you to learn by doing.
Not optional but not assessed.
Will mostly be reviewed in examples classes.
Course Work
Designed to ensure that you will do some programming!
Two programming exercises which will be assessed.
One will be client-side (XHTML/
CSS/JavaScript).
One will be server-side (PHP)
Worth 20% of marks for module.
Peer Learning
By learning you will teach;
by teaching you will understand.
— Latin Proverb
Material covered in this module will be expanded in:
CS-219: Database Systems
EG-253: Practical Internet Technology
EG-252: Group Design Exercise
You will find out more about networking in Teaching Block 2.
Assessment by Exam
Blackboard “quiz”: approximately 50 questions.
Each question worth 1–5 marks.
Results Scaled to 75.
75% for exam + 25% for exercises = 100%.
Summary of the Session
Learning Outcomes
What resources will I need to use to pass this module?
Which modules are pre-requesites for this module?
Which modules are related to this module?
What are the main topics to be covered in this module?
What are the learning outcomes for this module?
What transferable skills will I have at the end of this module?
How will I be assessed?
Homework
What's Next?