![[The University of Leicester]](http://www.le.ac.uk/corporateid/departmentresource/000066/unilogo.gif) | Department of Mathematics & Computer Science |
 |
Next: CO2006 Software Engineering and System Development
Up: Year 2
Previous: CO2004 Design and Analysis of Algorithms
CO2005 Object-Oriented Programming Using C++
Credits: 10 |
Convenor: Dr. G. Laycock |
Semester: 2 |
Prerequisites: |
essential: CO1003, CO1004, CO1011 |
desirable: CO2006 |
Assessment: |
Coursework: 50% |
Two hour exam in May/June: 50% |
Lectures: |
18 |
Problem Classes: |
6 |
Tutorials: |
none |
Private Study: |
27 |
Labs: |
24 |
Seminars: |
none |
Project: |
none |
Other: |
none |
Surgeries: |
none |
Total: |
75 |
Subject Knowledge
Aims
This module teaches the basic principles of object-oriented
programming, design and testing.
Learning Outcomes
Students should be able to: understand the basic components of an
object-oriented program including methods and attributes, the
distinction between classes and instances, the structures required
to write basic algorithms, the components of simple text and
graphics based interfaces, the relevance of the design process and
basic object-oriented design notation, the applicability and
effectiveness of various basic software testing techniques.
Methods
Class sessions, recommended textbook,
worksheets, automated feedback and extensive
web support.
Assessment
Marked coursework, written examination.
Subject Skills
Aims
Develop problem solving skills by developing object-oriented
programs in C++.
Learning Outcomes
Students will be able to: breakdown simple programming goals into
object-oriented components, propose and evaluate different
designs for solving problems using knowledge of fundamental
programming techniques and the facilities available in the C++
Standard Template Library, and according to the relative space and
time efficiency of the proposed solutions, implement the solution
using C++ and the Standard Template Library, and test and evaluate
the finished code.
Methods
Class sessions together with worksheets.
Assessment
Marked coursework, one class test, traditional written
examination.
Explanation of Pre-requisites
It is essential that students should have a thorough grasp of
imperative programming before attempting this module. It is assumed
that all students have a good working knowledge of Java, up to and
including the use of inheritance, interfaces and exceptions.
It is beneficial if students taking this module have an understanding
of the object-oriented design philosophy, and are familiar with the
fundamental concepts of the object-oriented paradigm.
Course Description
Over the past 15 years C++ has become one of the world's most popular
programming languages, due to its potential for producing efficient
and compact code taking direct advantage of the powerful
object-oriented philosophy. As such today's computer
scientists and software engineers should be familiar with the use of
its central features. This module is intended to give the student a
basic grasp of its use for object-oriented programming.
The vast majority of programming projects involve the organised
storage of a large number of pieces of information. This module
covers a wide range of well known abstract data types that can be
used as containers for volumes of data. Each structure will be
covered concretely, by studying the implementation in C++ and the
Standard Template Library.
Syllabus
Converting Java to C++. Overview of C++ and comparison with
Java, highlighting the differences between the type systems,
inheritance, dynamic and static method invocations and
exceptions. Memory management issues.
Data Structures. Presentation of the basic abstract
data types (set, sequence and mapping). Use of the basic abstract
data types to model real world data structures.
Implementation issues. The Standard Template Library of
C++, and the basic structures in it (vector, list, set, map). Use of
iterators and algorithms. Low level implementation issues when
creating new structures from scratch.
Reading list
Essential:
Timothy Budd,
Data Structures in C++, using the Standard Template Library,
Addison Wesley, 1998.
Background:
Timothy Budd,
C++ for Java Programmers,
Addison Wesley Longman 1999.
William J. Collins,
Data Structures and the Standard Template Library,
International Edition, McGraw Hill, 2003.
John R. Hubbard,
Data Structures with C++,
Schaum's Outline Series, McGraw Hill, 2000.
Bjarne Stroustrup,
The C++ Programming Language, 3rd edition,
Addison-Wesley, 1997.
Resources
Course notes, web page, study guide, worksheets, lecture
rooms with computer projection facilities and OHPs, past examination
papers.
Module Evaluation
Course questionnaires, course review.
Next: CO2006 Software Engineering and System Development
Up: Year 2
Previous: CO2004 Design and Analysis of Algorithms
Author: N. Rahman, tel: +44 (0)116 252 3902
Last updated: 2003-09-23
MCS Web Maintainer
This document has been approved by the Head of Department.
© University of Leicester.