16-7213 Object Oriented Methods

 

Dear Student

Welcome to module 16-7213. Please read the information below.

  1. How you may contact me
  2. Recommended reading
  3. The Assignments
  4. A list of Topics to be covered in this course.

 

The programming assignments will be posted during the course of the semester, approximately three weeks before their due date. Programs are evaluated on the correctness of the code and the output, the readability/layout of the code, and the correct usage of the programming concepts discussed in the lectures.

Please feel free to contact me if you have any questions about this course.

Alan Goude
Principal Lecturer
School of Engineering
e-mail: a.goude@shu.ac.uk


 

SHEFFIELD HALLAM UNIVERSITY

16-7213 - Object Oriented Methods

Course Syllabus

Course Objectives:
This course covers the fundamentals of Object Oriented Design(OOD) and the implementation of OOD using the C++ programming language. The course introduces the concepts and methodology of OOD and shows how the C++ language can be used to implement these concepts. The OOD concepts covered include: Abstraction, Encapsulation, Modularity, Inheritance and Polymorphism.

The programming language compiler used will be Microsoft Visual C++.


Recommended reading:

  1. Thinking in C++ 2nd edition by Bruce Eckel. Download book from here.
  2. C++: How to ProgramProgramming with ANSI C, B J Holmes, DP Publications. ISBN 1-85805-117-7
  3. C How To Program, H. Deitel and P. Deitel, Prentice-Hall Publishing.
  4. Class Notes/handouts

Assignments

Assignments

Weighting

Microsoft Word Format

Deadline

Assignment 1

Assignment 2

50%

50%

 

 

For the assignments see the Blackboard site for this module. The site will also indicate the deadline dates and a link to allow submission of the assignments via TurnItin.



Lecture

Topics

Powerpoint Slides

Example Programs etc.

1

Introduction to the unit

Books and other references

OOD - The Object Model

Slides 1

Programming exercises 1

1

Introduction to C++

C++ language features

Comments, Stream I/O, Argument passing, Reference variables, using const

Slides 2

 

2

Classes - Basic features

Slides 3

 

3

Function Overloading,  Default Function Arguments, Constructor and Destructor functions, Constant member functions, Inline functions

Slides 4

 

3 / 4

True object initialisation - member initialisation list

Composition (a type of aggregation)

Copy constructor and assignment operator =

Dynamic Memory

Pointers to objects

Slides 5

lamptest.zip

patient1.zip

patient2.zip(using dynamic variables)

5

Aggregation - by value and by reference

Slides 6

lamptest2.zip

lamptest3.zip

6/7

Operator overloading

Friend functions

Slides 7

patient3.zip (using a private member function and a friend function using operator overloading)

patient4.zip (using standard string class for patient name)

6-10

Inheritance

Class hierarchies.
Inheritance, Base class pointers
Polymorphism, virtual functions, virtual destructors
Abstract classes & pure virtual functions.

Run Time Type Identification

slides 8

Basic Inheritance exercises

Programming exercises 2

C++ Files:

Inheritance1.zip containing code for examples ex01,ex01a,ex02,ex03,ex04 and ex04a

 

Some example code for getting user input from the keyboard safely!

userinput.cpp

 

RTTI.doc

11/12

Templates - STL

STL slides

templates tutorial.doc

C++ Files : STL examples.zip

 

STL programming exercises

12

Design Patterns

Design Patterns - slides

ongoing student centred learning

UML - Rational Rose Tutorials as Word documents =======è

UML & Rational Rose (Word format)

Doc1 - Analysis and Use Case Diagrams.doc

Doc2 - The Object Discovery Process.doc

Doc3 - Classes and Class Diagrams - Part1.doc

Doc4 - Classes and Class Diagrams - Part2.doc

Doc5 - Code Generation with Rational Rose.doc

Doc6 - Collaborations and Interactions.doc

A good site for UML info:-

http://www.intelligentedu.com/blogs/post/best_new_training_sites/3542/best-uml-tutorials

 

Some useful and interesting OOM web sites

 

Bjarne Stroustrup's Home page, FAQ and C++ pages

http://www2.research.att.com/~bs/homepage.html

http://www2.research.att.com/~bs/bs_faq.html

http://www2.research.att.com/~bs/C++.html

 

C++ : The language

http://www.informit.com/guides/guide.aspx?g=cplusplus

http://www.cplusplus.com/

 

C++ FAQ Lite

http://www.parashift.com/c++-faq-lite/

 

C, C++ and other programming languages

http://www.mycplus.com/

http://cplus.about.com/