Coronavirus (Covid-19) Information

Module ICP-2052:
Application Development

Module Facts

Run by School of Computer Science and Electronic Engineering

20 Credits or 10 ECTS Credits

Semester 1 & 2

Organiser: Dr Cameron Gray

Overall aims and purpose

Familiarise students with computer software, tools and techniques. Support taught courses by looking at practical examples that highlight important computer science concepts. Develop logical problems solving skills.

Course content

• Intermediate level programming exercises using C#. Continuing use of an appropriate software development environment.

• Introduction to SQL databases available and configuration of an SQL database.

• Building a database structure in an embedded SQL database and populating the tables with a set of data provided

• Use of library classes; e.g. lists, stacks, queues, maps, sets, trees; definition of new data types; classes as attributes; encapsulation.

• Understanding the exception mechanisms found in C#. try-catch statements.

• Windows GUIs with WPF applications.

• Investigate and utilize advanced features. E.g. Sockets, Threading and Events.

Learning outcomes mapped to assessment criteria







Intermediate Programming Skills using C#.

Understanding of intermediate level programming concepts. Can design, build and optimize non trivial programs using C# Knowledge of intermediate level programming concepts. Can write trivial programs using C# Mastery of intermediate level programming concepts. Can reliably construct, compile and debug non-trivial C# programs.

Ability to follow a development process, from design to testing.

Complete a basic process to produce a working piece of software. Follow the basic process, completing all documentation to produce working, tested software. Select an appropriate process, complete all necessary documentation to produce working, tested software. Able to use another's documentation to complete testing of another's application.

Ability to use SQL statements to create and manipulate a database

Ability to create tables, insert and retrieve data within a database. Create relational tables and insert data into them and retrieve specific data using complex queries Mastery of the SQL syntax, producing optimized database implementations and efficient queries

Make use of classes found in the .NET framework.

Uses a variety of library classes found in the .NET framework. Can create Lists, populate them, retrieve and utilize data from them. Is able to investigate the .NET framework documentation to discover existing solutions to problems and avoid having to implement already existing classes.

Exception handling / Robust programming

Can design solutions to potential exceptions that provide diagnostic output Can handle run-time exceptions Can make programs that are extremely robust to potential exceptions and provide programmatic solutions.

Graphical User Interfaces

Can provide simple graphical input and output solutions utilizing buttons and text boxes. Can make a program that is in some way controlled by a graphical user interface. Can produce advanced user interface solutions that makes use of graphics and dynamic input.

Understanding of the types of software testing, how to construct appropriate defect reports and their uses to limit the number of defects in software.

Can construct a test-plan to be followed by a human tester. Utilises unit tests to provide automated testing of individual components in addition to human testing. Provides a full unit test suite, uses additional automated testing for integration tests as well as human black-box and open-box testing.

Ability to capture requirements and convert those into the appropriate application logic, using intermediary pseudo-code where necessary.

Can describe a set of user requirements accurately. Describes user requirements succinctly using the MoSCoW priority system and can convert these requirements into broad brush algorithms in pseudo code. Accurately describes requirements with priorities and converts them through pseudo code to the final C# code with appropriate detail where necessary.

Assessment Methods

Type Name Description Weight
CLASS TEST Syntax Class Test

C# Syntax Test assessed via Blackboard. Time allowed includes all PLSP adjustments and is applied to everyone.

Written assignment, including essay Development Portfolio - Documentation 35
COURSEWORK Final Program Listings 35
COURSEWORK Test Plan Exercise 20

Teaching and Learning Strategy


Taught material including syntax, algorithmics and problem analysis.


Laboratory exercises and drills.

Private study

Individual research and reading based on sign-posted material.

Individual Project

Development, construction, documentation and testing of the students' portfolio work.


Transferable skills

  • Literacy - Proficiency in reading and writing through a variety of media
  • 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.
  • Leadership - Able to lead and manage, develop action plans and objectives, offer guidance and direction to others, and cope with the related pressures such authority can result in

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
  • Specify, design or construct computer-based systems
  • Deploy tools effectively
  • Development of general transferable skills
  • Deploy systems to meet business goals
  • Methods, techniques and tools for information modelling, management and security
  • Specify, deploy, verify and maintain information systems
  • Defining problems, managing design process and evaluating outcomes
  • System Design
  • Knowledge and/or understanding of appropriate scientific and engineering principles
  • Knowledge and understanding of computational modelling


Pre- and Co-requisite Modules

Courses including this module