Module ICP-2150:
Advanced Java Programming

Module Facts

Run by School of Computer Science and Electronic Engineering

10 Credits or 5 ECTS Credits

Semester 1

Organiser: Dr David Edward Perkins

Overall aims and purpose

To provide an in-depth understanding of advanced features of Java, including 2D graphics, graphical user interfaces, multi-threading, network programming, database programming using JDBC, and the use of XML based APIs.

Course content

Rendering 2D images inside frames; drawing complex objects; colour schemes; implementing classes that draw objects.

Panel customisation; layout management; design of frames, choices, menus; AWT and Swing frameworks; Event Driven Programming; event handling.

Basics of thread operations; structure of threaded programs; thread priorities; thread synchronization; deadlock avoidance; applications of multithreaded programming.

Overview of the Internet Protocol; HTTP; networking with Java; sockets; client and server software; implementing simple protocols; URL connections. 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).

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







Make use of Java’s 2D graphics facilities.

Render a complex 2D image inside a frame. Render a simple 2D image inside a frame. Demonstrate extensive knowledge of the Java Graphics2D library.

Design and develop graphical user interfaces using Java-based programming structures.

Write a Java program with a graphical user interface that responds to user generated events (e.g. button clicks). Customize panel structures to conform with specialised user requirements. Effectively combine layout managers to create desired interface; make use of a wide range Java’s graphical components

Develop and test multi-threaded software.

Synchronise data access in threads; write multi-threaded applications which run with no deadlocks. Write a simple multi-threaded program. Apply multi-threading techniques to the solution of complex programming problems.

Develop software for internet-based exchange of information.

Explain how to set-up a basic client/server application using Java Design and set-up a communication between two machines with a client/server configuration. Develop multi-user network applications (e.g. chat programs, network versions of popular games etc)

Develop applications to access and manipulate data in a relational database

Connect to, query and manipulate a database using a JDBC driver and the java.sql package 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.

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. Successfully parse an XML document of arbitrary complexity using either the SAX and DOM parsing API; understand a DTD. Define a DTD for use with an XML document; use a range of techniques to generate and validate XML files.

Assessment Methods

Type Name Description Weight
Open Book Programming Examination 50
Laboratory Exercises 50

Teaching and Learning Strategy

Private study 48
Laboratory 24
Lecture 24

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
  • 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.
  • Presentation - Able to clearly present information and explanations to an audience. Through the written or oral mode of communication accurately and concisely.
  • Teamwork - Able to constructively cooperate with others on a common task, and/or be part of a day-to-day working team
  • Mentoring - Able to support, help, guide, inspire and/or coach others
  • Management - Able to utilise, coordinate and control resources (human, physical and/or financial)
  • Argument - Able to put forward, debate and justify an opinion or a course of action, with an individual or in a wider group setting

Subject specific skills

  • Knowledge and understanding of facts, concepts, principles & theories
  • Use of such knowledge in modelling and design
  • Problem solving strategies
  • Analyse if/how a system meets current and future requirements
  • Deploy theory in design, implementation and evaluation of systems
  • Deploy tools effectively
  • Development of general transferable skills
  • Defining problems, managing design process and evaluating outcomes
  • Knowledge and/or understanding of appropriate scientific and engineering principles
  • Knowledge and understanding of computational modelling
  • Principles of appropriate supporting engineering and scientific disciplines

Pre- and Co-requisite Modules

Courses including this module