COMP310P - Web Development
This database contains 2016-17 versions of the syllabuses. For current versions please see here.
|Prerequisites||Introduction to Programming (COMP210P)|
|Taught By||Rae Harbird (100%) |
This is a course for students with some prior experience of programming. The primary objective of the course is for the students to gain practical experience with “full-stack” web development. Students will explore the architecture of web applications and the technologies that are used in the three main components: client, server and data store.
The students will gain experience via hands-on engagement on a weekly basis.
Each week, or stage, serves as a checkpoint that progress is being made.
Students will undertake a substantial project in which they will work in pairs or teams of three to design, develop and deploy a web application of large enough size to be challenging. Support with development in the labs I tutorials will be provided after Reading Week so that at no point is this task too open-ended.
Secondary goals are for the students to gain further experience with computational thinking: to be able to identify problems that they could solve using programming and web technologies and to apply the skills they have learned in this course. They will gain further experience of working in teams.
The expected task outline is as follows. The content may be varied according to the progress made by the students. The length of the course will depend upon the structure of the degree. At the moment. students taking the IEP have two scenario weeks in each term and modules are eight weeks in duration instead of ten. The content will be curtailed according to the number of weeks available.
Week 1: Introduction to the World Wide Web: what happens when you click on a link? The architecture of web applications including 3-tier and Model, View, Controller designs. First tasks including setting up a web server and writing first web page.
Week 2: Introduction to HTML5 and styling web pages with C883. The Document Object Model and how web pages are represented as tree diagrams.
Week 4: Transferring data between client and server with JSON and AJAX.
Week 5: Software as a Service: writing RESTful web services. The concepts will be illustrated with an appropriate server-side programming language for example: Java Server Faces or node.js.
Week 6: Reading week: no labs or lectures.
Week 7: RESTful web services (continued). Version control with git and github. Deploying a web server on a cloud platform.
Weeks 8 & 9: The data store: using a database to store persistent data, NoSQL vs SQL comparison. An appropriate database technology will be chosen for practical examples.
Week 10: Web analytics.
Method of Instruction:
There will be a strong emphasis on the tutorials/labs. Students will have a two-hour lab session every week which will be staffed by TAs. Each topic has a specific problem set that must be completed. A problem set will be introduced with a short video illustrating the set, and a set of lab notes explaining what is expected and providing sufficient information to attempt the task. The videos and lab notes will be available via Moodle in advance. and the students should have reviewed them before attending the labs and, ideally, to have started to solve the problems. During the lab sessions the students will demonstrate briefly to the TA what tasks have been achieved. Tasks are binary marked.
The course has the following assessment components:
Coursework and in class test (total 100%)
Please note: the resources noted here are indicative and may be changed to keep up with the latest
developments in the area.
1. Castro, E. and Hyslop, B., 2013. HTML and 088: Visual Quickstart Guide. Pearson Education.
2. Fain. Y., Rasputnis. V., Tarlakovsky. A. and Gamov. V., 2014. Enterprise Web Development: Building HTML5 Applications: From Desktop to Mobile. O'Reilly Media, Inc.
4. Hogan, B.P., Warren, G, Weber, M., Johnson, C. and Godin, A., 2012. Web Development Recipes.
5. Lynda.com, (2016). PHP with MySQL Essential Training. [video] Available at: http://www.lynda.com/MySQL-tutorials/PHP-MySQL-EssentiaI-Training/119003-2.html [Accessed 13 Feb. 2016].
8. Patel. S.K., 2014. Developing Responsive Web Applications with AJAX and JOuery. Packt Publishing
9. Sullivan, D., 2015. NoSOL for Mere Mortals. Addison-Wesley Professional.
10. Wellens, P., 2015. Practical web development. Packt Publishing, Inc.