Java Programming Laboratory
Run by School of Computer Science and Electronic Engineering
10 Credits or 5 ECTS Credits
Organiser: Dr David Edward Perkins
Overall aims and purpose
To introduce the use of a range of software development tools (e.g. NetBeans, 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.
• 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.
|Make use of library methods to solve a range of programming problems, involving numeric and textual data.||Write a Java program consisting of two or more methods; make effective use of the parameter mechanism.||Demonstrate a clear understanding of the parameter mechanism and the role of the method call stack.|
Make effective use of a modern IDE such as NetBeans or Eclipse.
|Using an IDE edit, compile and execute a “Hello World” type application.||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.|
Make use of Java’s 2D graphics facilities.
|Render a simple 2D image inside a frame.||Render a complex 2D image inside a frame.||Demonstrate extensive knowledge of the Java Graphics2D library.|
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.|
|Practical Programming Exercises||100|
Teaching and Learning Strategy
ASSESSED assignments, including tutorial questions, problems, essays etc.
24 hours over 12 weeks
Laboratory preparation and reports
- 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
Compulsory in courses:
- I110: BSc Computer Information Systems year 1 (BSC/CIS)
- IN00: BSc Computer Information Systems for Business year 1 (BSC/CISB)
- H618: MEng Electronic Engineering with International Experience year 1 (MENG/EEIE)