Module 19321 (2012)

Module Description - Software System Components A

The Module Description is a strict subset of the Syllabus Page, which gives more information

Module TitleSoftware System Components A
SchoolComputer Science
Module Code06-19321
DescriptorCOMP/06-19321/LI
Member of StaffBob Hendley:10:DBs, Seyyed-Madasar Shah:8:Networks/Concurrency
LevelI
Credits20
Semester1
Pre-requisites06-18190 (Software Workshop 1), 06-22754 (Foundations of Computer Science), 06-11224 (Introduction to Software Engineering)
Co-requisites06-19343 (Software System Components B)
RestrictionsNone
Contact hoursApprox. 63
Delivery3 hrs/week lectures/tutorials, 2-3 hrs/week labs.
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 databases, web programming and concurrency, and distributed computing.
Outcomes
On successful completion of this module, the student should be able to:Assessed by:
use Entity-Relationship diagrams to construct and explain conceptual models of databases, and then design tables for a relational database Examination, Continuous assessment
write and explain SQL queries for a relational database Examination, Continuous assessment
query and update a relational database from Java Continuous assessment
explain the servlet model and structure, including the servlet lifecycle and application/session/request/page scope Examination, Continuous assessment
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 Continuous assessment
explain and evaluate web application architecture and technologies Examination
explain the concepts and issues of threads and synchronisation, including thread pools Examination, Continuous assessment
implement, debug and test multithreaded programs with appropriate synchronisation, in a variety of contexts such as Swing, collection classes and network I/O mechanisms Continuous assessment
explain and implement socket based communication Continuous assessment, Examination
implement programmatic email sending Continuous assessment
explain and use object serialisation and use RPC to interact with remote objects Examination, Continuous assessment
AssessmentSessional: 2 hour examination (80%), continuous assessment (20%).
Supplementary (where allowed): By examination only.
The continuous assessment will consist of programming exercises.
TextsCay Horstmann & Gary Cornell, Core JAVA 2 Volume 1 - Fundamentals (7th Ed), 2005
Cay Horstmann & Gary Cornell, Core JAVA 2 Volume 2 - Advanced Features (7th Ed), 2005
Scott Oaks and Henry Wong, Java Threads (3rd Ed), 2004
Jeff Magee and Jeff Kramer, Concurrency: State Models & Java Programs , 1999
Marty Hall, Larry Brown (Eds), Core Servlets and JavaServer Pages (Enterprise Edition S.), 2003