Module ICP-2152:
Java Technologies

Module Facts

Run by School of Computer Science and Electronic Engineering

10 Credits or 5 ECTS Credits

Semester 2

Organiser: Mr Cameron Gray

Overall aims and purpose

To explore a range of Java based technologies from amongst the following: AWT and Swing libraries, JavaFX, RMI, database programming using JDBC, APIs for text processing (e.g.XML, Regular Expressions), web technologies(e.g. servlets, JSP and JSF) and Web services (e.g. SOAP, REST).

Course content

  • Use of the JDBC API to connect to a database; database programming facilities in Java; use of open-source databases (e.g. MySQL ) and lightweight Java databases (e.g.HSQL, Derby).

  • The three-tier web application model; the JSF web application framework; JSF interface components; Java Beans; page navigation; session tracking; data validation; Java servlets; AJAX.

  • Remote Procedure Call; Java Remote Method Invocation technology, RMI Architecture; Remote object programs; RMI registry.

  • Web services; JAX-WS and JAX-RS; Publishing and consuming web services; SOAP; REST; JSON; Creating web services; Describing Web services using WSDL; Creating REST based services.

  • Regular expressions; metacharacters;matching text with regular expressions; modifying text with regular expressions.

  • XML elements and attributes; parsing XML documents; creating XML documents; use of DTDs to validate XML documents; use regular expressions to define a DTD; the DOM standard; SAX interface; XPath syntax.

Learning outcomes mapped to assessment criteria







Use project management software (e.g. Maeven) to support development process.

Can create a Maeven project and utilise basic project facilities e.g. test suites. Use a GUI builder tool to provide a visual interface to an application; create/use a range of dependencies; access a database; can with guidance use POM files to manage project development. Independently develop and modify POM files; use Maeven in various environments (e.g. Unix command line).

Develop applications with appropriate user front-ends to access and manipulate data in a relational database.

Write well-structured code which may be easily reused across a range of DBMSs; access and appropriately utlise meta-data. Make use of advanced features of JDBC including: stored procedures, transaction processing, row sets and cached row sets. Connect to, query and manipulate a database using a JDBC driver and the java.sql package

Encode data using XML, define DTDs for XML documents, make use of an XML parser.

Design an XML document on the basis of informal data descriptions; describe the role that XML plays in web applications. Define a DTD for use with an XML document; use a range of techniques to generate and validate XML files. Successfully parse an XML document of arbitrary complexity using either the SAX and DOM parsing API; understand a DTD.

Develop a range of applications using various Java APIs, such as Swing and AWT, RMI, Regular Expressions, JavaFX.

Write simple 'toy' applications illustrating use of specific Java APIs; read and understand API documentation. Develop non-trivial applications (500-1,000 lines of code) using a selected range of Java APIs; use AWT and Swing to develop graphical user interfaces. Develop non-trivial applications (500-1,000 lines of code) using advanced or complex features of a selected range of Java APIs.

Design and build three-tier web applications using a variety of web technologies (Servlets, JSPs, Java Server Faces, REST and SOAP Web Services).

Utilise appropriate Java technologies for separation of coding tasks from interface design; use a range of interface components; develop non-trivial web applications using various Java technologies and database management systems. Provide a detailed account of how a web application is installed and subsequently executed on an application server such as Glassfish. Describe the architecture of a web application; describe the three-tier model; write a simple 'toy' web application.

Assessment Methods

Type Name Description Weight
Individual Programming Mini-Projects 60
Group Project 40

Teaching and Learning Strategy

Laboratory 24
Private study 76

Transferable skills

  • Literacy - Proficiency in reading and writing through a variety of media
  • Numeracy - Proficiency in using numbers at appropriate levels of accuracy
  • Computer Literacy - Proficiency in using a varied range of computer software
  • Self-Management - Able to work unsupervised in an efficient, punctual and structured manner. To examine the outcomes of tasks and events, and judge levels of quality and importance
  • Exploring - Able to investigate, research and consider alternatives
  • Information retrieval - Able to access different and multiple sources of information
  • Inter-personal - Able to question, actively listen, examine given answers and interact sensitevely with others
  • Critical analysis & Problem Solving - Able to deconstruct and analyse problems or complex situations. To find solutions to problems through analyses and exploration of all possibilities using appropriate methods, rescources and creativity.
  • Teamwork - Able to constructively cooperate with others on a common task, and/or be part of a day-to-day working team
  • Leadership - Able to lead and manage, develop action plans and objectives, offer guidance and direction to others, and cope with the related pressures such authority can result in

Subject specific skills

  • Knowledge and understanding of facts, concepts, principles & theories
  • Use of such knowledge in modelling and design
  • Problem solving strategies
  • Deploy theory in design, implementation and evaluation of systems
  • Knowledge of information security issues
  • Specify, design or construct computer-based systems
  • Deploy tools effectively
  • Work as a member of a development team
  • Development of general transferable skills
  • Defining problems, managing design process and evaluating outcomes
  • System Design
  • Knowledge and/or understanding of appropriate scientific and engineering principles

Pre- and Co-requisite Modules

Courses including this module