Durham University
Programme and Module Handbook

Undergraduate Programme and Module Handbook 2018-2019 (archived)

Module COMP2231: SOFTWARE METHODOLOGIES

Department: Computer Science

COMP2231: SOFTWARE METHODOLOGIES

Type Open Level 2 Credits 20 Availability Available in 2018/19 Module Cap Location Durham

Prerequisites

  • COMP1011 Introduction to Programming OR COMP1051 Computational Thinking OR COMP1091 Computational Development

Corequisites

  • None

Excluded Combination of Modules

  • None

Aims

  • To further students' programming skills and understanding, and to enable them to apply their skills and principles learned to a variety of software applications and using various methods.

Content

  • Artificial Intelligence Search: methods for solving hard problems including general heuristic searches, including various best-first searches and A* search, and local searches, including hill-climbing, simulated annealing and genetic algorithms, together with the design of logical, knowledge-based agents.
  • Graphics: methods for 3D graphics application construction, which include rendering pipeline, object modelling, object transformation, shading, texture mapping, user interface construction and OpenGL programming.
  • Digital Communication: entropy and information theory, memoryless sources, noisy channels and error correcting codes, lossless compression, encryption algorithms and Transport Layer Security.
  • Image Processing: intensity transformation functions, histograms, spatial linear and nonlinear filters, Walsh-Hadamard transform, discrete cosine transform, JPEG, colour spaces, pseudo-colouring algorithms.

Learning Outcomes

Subject-specific Knowledge:
  • On completion of the module, students will be able to demonstrate:
  • a fundamental understanding of core software methodologies and the pros and cons of their application. Dependent upon the course content this will include:
  • the key principles of search in an artificial intelligence context where the problems to be solved are computationally hard and emanate from real-world applications (AI Search)
  • the key principles in computer graphics regarding data representation and manipulation together with how the data can be visualized through modern graphics hardware (Graphics)
  • the key principles of information theory and coding theory, how data may be encoded to achieve compression, error-correction or security in digital communication (Digital Communication)
  • the key principles of image representation and manipulation for use in image restoration, enhancement and compression (Image Processing)
  • an understanding of the programming principles and applications used to solve typical computing problems in different software application areas. Dependent upon the course content this will include:
  • core methodologies as regards intelligent searching algorithms and local, knowledge-based agents (AI Search)
  • core methodologies as regards object modelling, manipulation and rendering (Graphics)
  • core algorithms in compression, error correcting codes, encryption and internet security methodologies
  • core algorithms for image restoration, enhancement and compression (Image Processing)
Subject-specific Skills:
  • On completion of the module, students will be able to demonstrate:
  • an ability to use software tools related to different software application areas
  • an ability to implement generic AI search techniques and critically evaluate the resulting programs (AI Search)
  • an ability to implement graphics techniques by OpenGL (Graphics)
  • an ability to quantify information, select appropriate coding algorithms and implement them (Digital Communication)
  • an ability to implement fundamental image processing algorithms in Matlab (Image Processing)
Key Skills:
  • On completion of the module, students will be able to demonstrate:
  • an ability to undertake reasoning in different application areas
  • an ability to communicate technical information
  • an ability to use general IT tools

Modes of Teaching, Learning and Assessment and how these contribute to the learning outcomes of the module

  • Lectures enable students to learn core material on the different subject areas.
  • Practical classes enable students to apply the material learned in lectures and enhance their understanding.
  • Formative and summative assignments encourage and guide independent study.
  • Summative examinations test the knowledge acquired and the students' ability to use this knowledge to solve problems.

Teaching Methods and Learning Hours

Activity Number Frequency Duration Total/Hours
lectures 44 2 per week 1 hour 44
practical classes 21 1 per week 2 hours 42
preparation and reading 114
Total 200

Summative Assessment

Component: Examination Component Weighting: 50%
Element Length / duration Element Weighting Resit Opportunity
Examination 2 hours 100% Yes
Component: Coursework Component Weighting: 50%
Element Length / duration Element Weighting Resit Opportunity
Practical work 100% Yes

Formative Assessment:

Example formative exercises given during the course.


Attendance at all activities marked with this symbol will be monitored. Students who fail to attend these activities, or to complete the summative or formative assessment specified above, will be subject to the procedures defined in the University's General Regulation V, and may be required to leave the University