WEB APPLICATIONS DEVELOPMENT - 2020/1
Module code: COM2025
In light of the Covid-19 pandemic, and in a departure from previous academic years and previously published information, the University has had to change the delivery (and in some cases the content) of its programmes, together with certain University services and facilities for the academic year 2020/21.
These changes include the implementation of a hybrid teaching approach during 2020/21. Detailed information on all changes is available at: https://www.surrey.ac.uk/coronavirus/course-changes. This webpage sets out information relating to general University changes, and will also direct you to consider additional specific information relating to your chosen programme.
Prior to registering online, you must read this general information and all relevant additional programme specific information. By completing online registration, you acknowledge that you have read such content, and accept all such changes.
This module will demonstrate some of the latest technologies for building interactive web applications. The students will learn how to choose the appropriate tools and the foundations of how to develop such applications. Although there is a focus on Ruby on Rails for the server side computing, a range of different technologies will be explored.
CROSSAN Andrew (Computer Sci)
Number of Credits: 15
ECTS Credits: 7.5
Framework: FHEQ Level 5
JACs code: I320
Module cap (Maximum number of students): N/A
Prerequisites / Co-requisites
COM1028 Programming Fundamentals COM1029 Software Engineering
Indicative content includes:
Week 1 - 2: RESTful Architectures
* Introduction to web frameworks providing an overview of the main web frameworks and their role in developing and executing web applications
* The request-response cycle
* Distributed architectures for web applications focusing on 3-Tier architectures and the MVC design pattern
Week 3 - 9: Web Application Development
* Illustrate how web frameworks respond to a client request by dynamically constructing a web page incorporating data from a DBMS
* The specific components of a web application and how they relate to architectural design patterns such as MVC and 3-Tier
* RESTful Routing
* Server side processing and managing data from backend databases systems including CRUD operations, ORM, migrations, validations, associations and scopes
* Moving beyond request/response to applications that employ real time two-way communication between client and server
Week 10 - 11: Scalable Distributed Architectures
* Considerations for and technologies that allow Responsive Design of a web application
* Challenges when deploying a large scale system (such as Load Balancing)
Week 12: Revision
|Assessment type||Unit of assessment||Weighting|
|Coursework||INDIVIDUAL PROJECT WORK||40|
|School-timetabled exam/test||LAB-BASED TEST (1 HOUR 30)||10|
|Examination||2 HOUR WRITTEN EXAM||50|
The assessment strategy is designed to provide students with the opportunity to demonstrate
· Ability to design and develop a client-server based interactive web application
· Ability to use the MVC design pattern for developing an interactive web application
· Ability to use, and in depth technical understanding, of a framework for web development such as the Ruby on Rails development framework
· Understanding of the best practice incorporated into modern web application frameworks
· Ability to develop web applications using best software engineering practice.
Thus, the summative assessment for this module consists of:
· An individual project in which the students will need to demonstrate both technical understanding and good engineering practice – submission deadline: beginning of week 11. This addresses LO1 through to LO5 and LO7
· A multiple choice lab-based test late in the semester which will assess practical and theoretical concepts introduced in the module. (1hr) (in week 09). This addresses LO1,through to LO7
· A formal examination in which students will be required to demonstrate strong technical understanding of all the technical elements of the course. This addresses all LOs.
Formative assessment and feedback
Self-assessment exercises will be provided in SurreyLearn.
- Provide an overview of the technologies that support the development of client-server systems and interactive web applications
- Bring students up to a sufficient level of development skill to be able to develop a basic interactive web application
- Familiarise students with standards-based design of web applications.
- To familiarise students with the challenges of building scalable web applications
|002||Be able to explain the concepts of client and server, and how a 3-tier architecture supports the development of client-server based applications and apply this knowledge to build web applications||KPT|
|003||Be able to explain the Model View Controller (MVC) design pattern in the context of developing web applications, compare and contrast it with the 3-tier architecture, and apply knowledge of MVC to build web applications||KCPT|
|004||Demonstrate proficiency in the basics of some chosen client side web technologies||KCP|
|005||Demonstrate proficiency in the use of a web framework for server-side technologies||KCP|
|006||Be able to identify main MVC-based frameworks (Spring, Rails and Django) and outline their underlying technologies||KT|
|007||Be able to describe and demonstrate best practice for web application development||KCPT|
|001||Recognise and describe challenges of building a scalable and responsive web application||KCT|
C - Cognitive/analytical
K - Subject knowledge
T - Transferable skills
P - Professional/Practical skills
Overall student workload
Independent Study Hours: 106
Lecture Hours: 24
Laboratory Hours: 22
Methods of Teaching / Learning
The learning and teaching strategy is designed to:
Develop a critical understanding of best practice in developing state of the art web applications through directed learning and facilitated self-directed learning. The skills learned in this module will be transferable to other software-engineering modules in the programme and the wider software engineering profession.
The learning and teaching methods include:
- Twenty-two hours of lectures with class discussion
- Twenty hours of lab classes
- Use of an online forum for facilitated discussion
Indicated Lecture Hours (which may also include seminars, tutorials, workshops and other contact time) are approximate and may include in-class tests where one or more of these are an assessment on the module. In-class tests are scheduled/organised separately to taught content and will be published on to student personal timetables, where they apply to taken modules, as soon as they are finalised by central administration. This will usually be after the initial publication of the teaching timetable for the relevant semester.
Upon accessing the reading list, please search for the module using the module code: COM2025
Programmes this module appears in
|Computer Science BSc (Hons)||1||Compulsory||A weighted aggregate mark of 40% is required to pass the module|
|Computing and Information Technology BSc (Hons)||1||Compulsory||A weighted aggregate mark of 40% is required to pass the module|
|Computer and Internet Engineering MEng||1||Optional||A weighted aggregate mark of 40% is required to pass the module|
|Computer and Internet Engineering BEng (Hons)||1||Optional||A weighted aggregate mark of 40% is required to pass the module|
Please note that the information detailed within this record is accurate at the time of publishing and may be subject to change. This record contains information for the most up to date version of the programme / module for the 2020/1 academic year.