Coronavirus (Covid-19) Information

Module ICP-1024:
Java Programming Laboratory

Module Facts

Run by School of Computer Science and Electronic Engineering

10 Credits or 5 ECTS Credits

Semester 2

Organiser: Dr David Edward Perkins

Overall aims and purpose

To introduce the use of a range of software development tools (e.g. Eclipse, Java Builder Tool); to present the object-oriented approach to software design and implementation; to explore a range of advanced features of Java, including the 2D Graphics API, the AWT and Swing packages, and file handling facilities; to familiarize students with a variety of test strategies. All of these topics will be explored practically in two-hour weekly laboratory sessions.

Course content

• Project creation; file management; basic and advanced editing facilities;project navigation tools; debugging aids; source management; program compilation and execution. • Program modules in Java;static methods; return types; the parameter mechanism; method call stack and activation records; variable scope; use of method stubs for program development. • Rendering 2D images inside frames; drawing complex objects; colour schemes; implementing classes that draw objects • Classes, objects and encapsulation; instance variables and method implementation; the public interface of a class; constructors and overloading; access and mutator methods; reference types; static variables and methods. • Panel customisation; layout management; design of frames, choices, menus; AWT and Swing frameworks; Event Driven Programming; event handling. • Unit and system testing; white-box and black-box testing; regression testing; boundary conditions; tester classes; mock objects; use of debugging facilities in a modern IDE; use of pseudo-random data sets. • Text and binary file formats; Java class hierarchy for handling IO; streams; sequential and random file access; object streams; serialization.

Learning outcomes mapped to assessment criteria







Develop applications using structured programming techniques.

Demonstrate a clear understanding of the parameter mechanism and the role of the method call stack. Write a Java program consisting of two or more methods; make effective use of the parameter mechanism. Make use of library methods to solve a range of programming problems, involving numeric and textual data.

Make effective use of a modern IDE such as NetBeans or Eclipse.

Use a range of basic IDE facilities to support program development., including program documentation. Able to make use of at least two advanced features of an IDE e.g. profiler tools, service access, source code management tools. Using an IDE edit, compile and execute a “Hello World” type application.

Make use of Java’s 2D graphics facilities.

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

Apply an object-oriented approach to the process of software construction.

Understand the concept of a class, distinguish between a class and an object; implement simple classes. Implement classes in accordance with a given public interface; declare and use arrays of objects. Independently design and develop classes to solve a range of programming problems.

Using a builder tool design and construct a range of graphical user interfaces.

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

Test and debug software.

Correct simple errors arising from user input; conduct tests in accordance with a test plan. Design and implement a test plan; document the process of testing; utilize a variety of debugging strategies and techniques Produce data sets for use in program testing; clearly distinguish test strategies and assess their utility.

Use a range of advanced file handling techniques.

Use readers and writers to manipulate sequences of bytes and characters Write programs to process binary data; use sequential and random access to process data stored in files. Make effective use of object streams; use simple file encryption techniques.

Assessment Methods

Type Name Description Weight
COURSEWORK Practical Programming Exercises 100

Teaching and Learning Strategy


24 hours over 12 weeks


Laboratory preparation and reports

Private study 60

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
  • 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.

Subject specific skills

  • Knowledge and understanding of facts, concepts, principles & theories
  • Problem solving strategies
  • Deploy tools effectively
  • Knowledge and/or understanding of appropriate scientific and engineering principles

Pre- and Co-requisite Modules

Courses including this module