Lecture-22 hours
Tutorial-11 hours
Supervised time in studio/workshop-30 hours Total: 63 hours
Exclusions
Description
This module presents more advanced software development techniques, enabling the design and development of programs of medium-scale size and complexity. Through a series of lab exercises, students apply concepts taught in the lectures and at the same time practice the design and development of medium-scale programs. Together with its companion module, Software System Components B, it is designed to equip students with programming abilities which may be needed in an individual final year project. The module covers the three topics of datbases, web programming and concurrency, and distributed computing.
Learning Outcomes
By the end of the module the student should be able to:
Use Entity-Relationship diagrams to construct and explain conceptual models of databases, and then design tables for a relational database;
Write and explain SQL queries for a relational database;
Query and update a relational database from Java;
Explain the servlet model and structure, including the servlet lifecycle and application/session/request/page scope;
Configure, install and use servlet based web applications, implementing correct servlet request and response code, including html form processing, session handling, database connectivity and security;
Explain, apply and evaluate web application architecture and technologies;
Explain the concepts and issues of threads and synchronisation, including thread pools;
Implement, debug and test multi-threaded programs with appropriate synchronisation, including Swing, collection classes and network I/O mechanisms as appropriate;