Advanced Java Programming
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 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.
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.|
|Open Book Programming Examination||50|
Teaching and Learning Strategy
- 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
Compulsory in courses:
- G400: BSC Computer Science year 2 (BSC/CS)
- G40B: BSc Computer Science (4 year with Incorporated Foundation) year 2 (BSC/CS1)
- I102: BSc Computer Science (with International Experience) year 2 (BSC/CSIE)
- GW49: BSC Creative Technologies year 2 (BSC/CT)