Module 19321 (2012)
Syllabus page 2012/2013
06-19321
Software System Components A
Level 2/I
Seyyed-Madasar Shah:8:Networks/Concurrency
Links | Outline | Aims | Outcomes | Prerequisites | Teaching | Assessment | Books | Detailed Syllabus
The Module Description is a strict subset of this Syllabus Page. (The University module description has not yet been checked against the School's.)
Relevant Links
Outline
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.
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: | Assessed by: | |
| 1 | use Entity-Relationship diagrams to construct and explain conceptual models of databases, and then design tables for a relational database | Examination, Continuous assessment |
| 2 | write and explain SQL queries for a relational database | Examination, Continuous assessment |
| 3 | query and update a relational database from Java | Continuous assessment |
| 4 | explain the servlet model and structure, including the servlet lifecycle and application/session/request/page scope | Examination, Continuous assessment |
| 5 | 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 |
| 6 | explain and evaluate web application architecture and technologies | Examination |
| 7 | explain the concepts and issues of threads and synchronisation, including thread pools | Examination, Continuous assessment |
| 8 | 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 |
| 9 | explain and implement socket based communication | Continuous assessment, Examination |
| 10 | implement programmatic email sending | Continuous assessment |
| 11 | explain and use object serialisation and use RPC to interact with remote objects | Examination, Continuous assessment |
Restrictions, Prerequisites and Corequisites
Restrictions:
None
Prerequisites:
06-18190 (Software Workshop 1), 06-22754 (Foundations of Computer Science), 06-11224 (Introduction to Software Engineering)
Co-requisites:
06-19343 (Software System Components B)
Teaching
Teaching Methods:
3 hrs/week lectures/tutorials, 2-3 hrs/week labs.
Contact Hours:
Assessment
- Sessional: 2 hour examination (80%), continuous assessment (20%).
- Supplementary (where allowed): By examination only.
- The continuous assessment will consist of programming exercises.
Recommended Books
| Title | Author(s) | Publisher, Date |
| Core JAVA 2 Volume 1 - Fundamentals (7th Ed) | Cay Horstmann & Gary Cornell | Sun Microsystems Press/Prentice Hall, 2005 |
| Core JAVA 2 Volume 2 - Advanced Features (7th Ed) | Cay Horstmann & Gary Cornell | Sun Microsystems Press / Prentice Hall, 2005 |
| Java Threads (3rd Ed) | Scott Oaks and Henry Wong | O'Reilly, 2004 |
| Concurrency: State Models & Java Programs | Jeff Magee and Jeff Kramer | Wiley, 1999 |
| Core Servlets and JavaServer Pages (Enterprise Edition S.) | Marty Hall, Larry Brown (Eds) | Prentice Hall PTR, 2003 |
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)
Last updated: 4 May 2012
Source file: /internal/modules/COMSCI/2012/xml/19321.xml
Links | Outline | Aims | Outcomes | Prerequisites | Teaching | Assessment | Books | Detailed Syllabus