Module 06-19321 (2011)
Software System Components 2
Level 2/I
Robert Hendley Madasar Shah | Semester 2 | 20 credits |
Co-ordinator: Robert Hendley
Reviewer: Rami Bahsoon
The Module Description is a strict subset of this Syllabus Page.
Aims
The aims of this module are to:
- improve students' programming skills generally, and develop students' programming design and development skills to cope with large programs
- provide programming experience with more advanced but commonly used Java class libraries and other packages as appropriate
- teach specific skills in databases, web programming and concurrency, and distributed computing
Learning Outcomes
On successful completion of this 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 and evaluate web application architecture and technologies
- explain the concepts and issues of threads and synchronisation, including thread pools
- implement, debug and test multithreaded programs with appropriate synchronisation, in a variety of contexts such as Swing, collection classes and network I/O mechanisms
- explain and implement socket based communication
- implement programmatic email sending
- explain and use object serialisation and use RPC to interact with remote objects
Teaching methods
3 hrs/week lectures/tutorials, 2-3 hrs/week labs.
Assessment
- Sessional: 2 hour examination (80%), continuous assessment (20%).
- Supplementary: By examination only.
Detailed Syllabus
- An Introduction to the design and use of Database systems (4 weeks)
- Background, alternatives and justification of DBMSs
- Relational Databases: i. Relational model ii. Introduction to SQL iii. creating & manipulating DBs iv. Introduction to Transactions and concurrency
- Database Design ER diagrams and mapping to DB implementation
- Java & SQL using a DB through JDBC
- Distributed Computing and Sockets (2 weeks)
- Background: the network communication models
- Sockets: purpose, justification and methods of application
- Clients, servers and protocols
- Implementation issues in distributed systems
- Threads and Concurrency (3 weeks)
- Background to concurrent processing
- Threads: purpose, justification and methods of application
- Concurrent processing and shared resources
- Multi-threaded programming caveats
- Patterns for concurrent systems
- Internet Computing (2 weeks)
Programmes containing this module
- BEng Computer Science/Software Engineering [4753]
- BEng Computer Science/Software Engineering with an Industrial Year [9500]
- BSc Artificial Intelligence & Computer Science [0144]
- BSc Artificial Intelligence & Computer Science [9502]
- BSc Computer Science [4436]
- BSc Computer Science with an Industrial Year [9499]
- BSc Computer Science with Business Management [5914]
- BSc Computer Science with Business Management with an Industrial Year [9503]
- BSc Computer Science with Study Abroad [5571]
- BSc Mathematics and Computer Science [5196]
- BSc Mathematics and Computer Science with an Industrial Year [9495]
- BSc Pure Mathematics and Computer Science [5249]
- BSc Pure Mathematics and Computer Science with an Industrial Year [9497]
- MEng Computer Science/Software Engineering [4754]
- MEng Computer Science/Software Engineering with an Industrial Year [9501]
- MSci Mathematics and Computer Science [5197]
- MSci Mathematics and Computer Science with an Industrial Year [9496]
- MSci Pure Mathematics and Computer Science [5256]
- MSci Pure Mathematics and Computer Science with an Industrial Year [9498]