Module ICL-3001:
Advanced Programming

Module Facts

Run by School of Computer Science and Electronic Engineering

20 Credits or 10 ECTS Credits

Semester 1

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.

Assessment Criteria

good

Systematically apply the use of the Java 2D graphics framework. Critically design and develop graphical user interfaces using Java-based programming structures.

Render a complex 2D image inside a frame.

Customize panel structures to conform with specialised user requirements.

Analyse, develop and test multi-threaded software.

Synchronise data access in threads; write multi-threaded applications which run with no deadlocks.

Develop applications to access 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.

Have a critical appreciation of document type definitions (DTD) for data, for example XML, JSON

Successfully parse an DTD document of arbitrary complexity using either the SAX and DOM parsing API; understand a DTD.

Evaluate internet-based exchanges of information.

Design and set-up a communication between two machines with a client/server configuration.

threshold

Systematically apply the use of the Java 2D graphics framework. Critically design and develop graphical user interfaces using Java-based programming structures.

Render a simple 2D image inside a frame.

Write a Java program with a graphical user interface that responds to user generated events (e.g. button clicks).

Analyse, develop and test multi-threaded software.

Write a simple multi-threaded program.

Develop applications to access manipulate data in a relational database.

Connect to, query and manipulate a database using a JDBC driver and the java.sql package.

Have a critical appreciation of document type definitions (DTD) for data, for example XML, JSON

Design an DTD document on the basis of informal data descriptions; describe the role that DTD plays in web applications.

Evaluate internet-based exchanges of information.

Explain how to set-up a basic client/server application using Java

excellent

Systematically apply the use of the Java 2D graphics framework. Critically design and develop graphical user interfaces using Java-based programming structures.

Demonstrate extensive knowledge of the Java Graphics2D library.

Effectively combine layout managers to create desired interface; make use of a wide range Java’s graphical components.

Analyse, develop and test multi-threaded software.

Apply multi-threading techniques to the solution of complex programming problems.

Develop applications to access manipulate data in a relational database.

Make use of advanced features of JDBC including: stored procedures, transaction processing, row sets and cached row sets.

Have a critical appreciation of document type definitions (DTD) for data, for example XML, JSON

Define a DTD for use with an for example XML document; use a range of techniques to generate and validate the files.

Evaluate internet-based exchanges of information.

Develop multi-user network applications (e.g. chat programs, network versions of popular games etc).

Learning outcomes

    1. Systematically apply the use of the Java 2D graphics framework.
    1. Critically design and develop graphical user interfaces using Java-based programming structures.
    1. Evaluate internet-based exchanges of information.
    1. Have a critical appreciation of document type definitions (DTD) for data, for example XML, JSON
    1. Analyse, develop and test multi-threaded software.
    1. Develop applications to access and manipulate data in a relational database.

Assessment Methods

Teaching and Learning Strategy

Hours
Lecture

24 of the 200 Notional Learning hours - 24 hours of lectures.

The classroom sessions which take place in dedicated computer hardware networking rooms will include interactive lectures, group discussions, practical labs using network simulator or real hardware, individual and group work.

Formative assessment is provided by end of chapter and end of module online exams which are also used to gauge student’s suitability.

24
Laboratory

24 of the 200 Notional Learning hours - 24 hours of Laboratory work.

The classroom sessions which take place in dedicated computer hardware networking rooms will include interactive lectures, group discussions, practical labs using network simulator or real hardware, individual and group work.

Formative assessment is provided by end of chapter and end of module online exams which are also used to gauge student’s suitability.

24
Tutorial

152 of the 200 Notional Learning hours - 152 hours of tutor directed student learning.

The classroom sessions which take place in dedicated computer hardware networking rooms will include interactive lectures, group discussions, practical labs using network simulator or real hardware, individual and group work.

Formative assessment is provided by end of chapter and end of module online exams which are also used to gauge student’s suitability.

152

Transferable skills

  • Numeracy - Proficiency in using numbers at appropriate levels of accuracy
  • 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
  • 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.
  • Self-awareness & Reflectivity - Having an awareness of your own strengths, weaknesses, aims and objectives. Able to regularly review, evaluate and reflect upon the performance of yourself and others

Resources

Reading list

Horstmann, Cay, 2013. Big Java: Late Objects, Wiley ISBN 978-1-118-08788-6

Horstmann, Cay, 2014. Big Java: Early Object 5th Ed, Wiley ISBN 978-1-118-31877-5

Pre- and Co-requisite Modules

Courses including this module

Compulsory in courses: