COM160 Computer Problem Solving and Object Oriented Design
The first part of this module introduces basic concepts
of computer programming, through an introduction to problem
solving and the development of simple algorithms using the
programming language Python. The module will stress the
importance of good programming style and good code design
and will introduce how an object-oriented approach can help
to achieve these aims.
The second part of this module introduces some of the
fundamental principles of object oriented programming and
software engineering using the Java Programming Language. In
particular it covers the principles that underlie the
structuring of software and introduces models of real-world
systems. Techniques for developing sound programming
techniques are introduced and applied.
||Academic Year 2021/22
- Blackboard quizzes and assessed labs
- Multiple choice exam (at the end of the Semester 1)
- Assignment (during Semester 2).
||Dr Mark Hepple & Dr Siobhán North
- to provide an introduction to the concepts of problem
solving and developing algorithms;
- to provide a grounding in the principles of
programming, using the Python and Java languages;
- to establish good programming style.
- to introduce the main features of object-oriented
- to develop the ability to construct Java programs
from existing libraries, classes and objects;
- to introduce some features of the Java Application
- to develop good programming practice particularly
with respect to reuse.
|| By the end of this course the students should:
- be able to express algorithms using sequencing,
conditional and iterative constructs.
- be able to use basic data structures and produce
programs employing them;
- be able to design, implement and test programs in
Python and Java;
- demonstrate an understanding of object oriented
approaches to software development;
- be able to develop software solutions to well-defined
problems using object oriented techniques;
- be aware of the Java Collections Framework;
- have an understanding of how Java can be used in
- Be familiar with an Integrated Development Environment
- introduction to algorithms and problem-solving;
- introduction to imperative programming in Python;
- control structures: conditionals, loops, functions;
- data structures: arrays/lists, dictionaries;
- introduction to object-oriented programming in Python
- software development within an object-oriented
- the Java Collections Framework and its use.
| Not open to students from the Department of Computer
Science or students who are taking or have taken COM161 or
|| 1 lecture per week and 2 hours of supervised practical
work per week, involving programming exercises in Python and
Students are also expected to work in their own time.
|| Within 24 hours of Blackboard quizzes otherwise within the usual
time limit of 3 working weeks.
|| Python: There are a number of introductory
texts/tutorials available free on the web. The following is
suitable for student having no previous programming
Online resources will be provided for both semesters.