Durham University
Programme and Module Handbook

Undergraduate Programme and Module Handbook 2007-2008 (archived)

Module COMP1082: PROGRAMMING AND DATA STRUCTURES

Department: Computer Science

COMP1082: PROGRAMMING AND DATA STRUCTURES

Type Open Level 1 Credits 40 Availability Available in 2007/08 Module Cap None. Location Durham

Prerequisites

  • None.

Corequisites

  • Formal Aspects of Computer Science (COMP1021).

Excluded Combination of Modules

  • Introduction to Programming (COMP1011).

Aims

  • To introduce the theory and practice of programming by means of the Java programming language, and to use this in the wider context of problem solving and software development.

Content

  • The construction of simple programs.
  • The use of objects from the Java API.
  • Using control statements to loop and make decisions.
  • Using methods to structure the algorithmic aspects of programs.
  • Defining data types through class and interface declarations.
  • Making programs robust through the use of exceptions and exception handling.
  • Motivation for implementing data structures.
  • Data structures: Basic, Linear and non-linear.
  • Tree structures and algorithms analysis.
  • Operations on data structures.
  • Solving problems through the construction of algorithms.
  • Techniques for reasoning about and evaluating algorithms.
  • Algorithmic mechanisms such as sequence, iteration, choice and recursion.
  • Abstraction by specification and parameterisation.
  • Strategies for problem solving such as divide and conquer.

Learning Outcomes

Subject-specific Knowledge:
  • Understand the theory and practice of programming by means of the Java programming language.
  • Use of this knowledge in the wider context of problem solving and software development.
  • Be familiar with the most common (non-trivial) data structures, their relative advantages/disadvantages, and how to implement and / or use them.
  • Be able to explain the form of program specifications using pre and post conditions.
  • Be able to describe mechanisms of program execution such as procedure call with pass-by-value parameters.
Subject-specific Skills:
  • Competence in dealing, both theoretically as well as practically, with some non-trivial data structures (e.g. search trees, hash tables), and knowledge about when to use which (type of) data structure.
  • Producing algorithmic solutions to problems, using the algorithmic mechanisms of sequence, choice, iteration and recursion.
  • Basic understanding of complexity issues (e.g. running time of important operations like insert, delete or lookup).
  • Knowledge in issues regarding efficient implementation (also applicable outside of this course).
  • Ability to select which data structures to use as they differ widely regarding many aspects (e.g. running time of various basic operations, or memory overhead).
Key Skills:
  • Combine theoretical analysis with application of the gained knowledge.
  • Use problem solving strategies such as divide and conquer, drawing a diagram, trial and error.
  • Reflect on own learning and performance through the maintenance of a learning log.
  • Develop problem solving skills through the identification of strategies used to solve problems.

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

  • Lectures provide the students with a focus for what is to be learned which is then supported by practical classes where the application of the theory is enabled. Summative assignments encourage and guide further independent study to be conducted. Summative examinations test the knowledge acquired and the students' ability to use this knowledge to solve complex problems.

Teaching Methods and Learning Hours

Activity Number Frequency Duration Total/Hours
Lectures 54 3 per week 1 hour 54
Practicals 18 2 per week 2 hours 72
Preparation and Reading 274
Total 400

Summative Assessment

Component: Examination Component Weighting: 40%
Element Length / duration Element Weighting Resit Opportunity
three-hour written examination 100%
Component: Practical Component Weighting: 60%
Element Length / duration Element Weighting Resit Opportunity
practical work 100%

Formative Assessment:

Example exercises given through the course. In addition a collection paper is sat in January.


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