Undergraduate Programme and Module Handbook 2014-2015 (archived)
Module COMP2231: SOFTWARE METHODOLOGIES
Department: Computer Science
COMP2231: SOFTWARE METHODOLOGIES
Type | Open | Level | 2 | Credits | 20 | Availability | Available in 2014/15 | Module Cap | None. | Location | Durham |
---|
Prerequisites
- Introduction to Programming OR Computational Thinking
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 | 22 | 1 per week | 2 hours | 44 | ■ |
preparation and reading | 112 | ||||
Total | 200 |
Summative Assessment
Component: Examination | Component Weighting: 66% | ||
---|---|---|---|
Element | Length / duration | Element Weighting | Resit Opportunity |
Examination | 2 hours | 100% | Yes |
Component: Coursework | Component Weighting: 34% | ||
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