Brest State Technical University

glintplainvilleSoftware and s/w Development

Nov 18, 2013 (3 years and 4 months ago)

43 views

Brest State Technical University

267 Moskovskaya Str., 224017 Brest, Republic of Belarus

tel./fax: (375

162) 40
-
83
-
74, fax: (375

162) 42
-
21
-
27, e
-
mail: ttc@bstu.by, website: www.bstu.by



Course Description
-

OBJECT
-
ORIENTED PROGRAMMING


Dmitry Kostiuk, A
ssistant Professor

Computer and Computer Systems Department, BrSTU


Table of content
s
1 Introduction

................................
................................
................................
................................
.

2

2 Overview

................................
................................
................................
................................
.....

2

3 Course objectives

................................
................................
................................
.........................

2

4 Course duration

................................
................................
................................
............................

2

5 Prerequisites

................................
................................
................................
................................

2

6 Hands
-
on training

................................
................................
................................
........................

2

7 Course content

................................
................................
................................
.............................

2

Lecture 1. Generalized overview of the computer architecture

................................
.................

2

Lecture 2.

Register memory

................................
................................
................................
........

3

Lecture 3. Events and RAM access

................................
................................
............................

3

Lecture 4. Structure of the assembler program

................................
................................
...........

3

Lecture

5. Addressing data

................................
................................
................................
.........

3

Lecture 6. Basic data manipulations

................................
................................
...........................

3

Lecture 7. Branching in the assembler program

................................
................................
.........

3

L
ecture 8. Base arithmetics

................................
................................
................................
.........

3

Lecture 9. Bitwise operations

................................
................................
................................
.....

3

Lecture 10. Working with arrays

................................
................................
................................

3

Lecture 11. Ma
cro extensions

................................
................................
................................
.....

4

Lecture 12. User
-
defined procedures

................................
................................
..........................

4

Lecture 13. Processing real numbers

................................
................................
..........................

4

Lecture 14. Deep
er view on floating point instructions

................................
..............................

4

Lecture 15. Processing vectorized data

................................
................................
.......................

4

Lecture 16. Deeper view on SIMD extension

................................
................................
.............

4

Lecture 17. Overview of the desktop and server CPU architectural decisions

...........................

4

8 Method of evaluation

................................
................................
................................
....................

4


1 Introduction

The document provides a description of a training course on object
-
o
riented programming.


2 Overview

The course covers practice of object
-
oriented programming in C++ language. Fundamental concepts of the objective
programming paradigm are spread over practical topics related to the programming language.


3 Course objecti
ves

Students will learn how to



Create C++ programs



Build robust applications using C++ object
-
oriented features



Develop complex class hierarchies



Effectively manipulate data using C++ streams and standard library


4 Course duration

66 hours:

Lectures


32 hours

Practical classes


24 hours

Independent work


10 hours

5 Prerequisites

Knowledge of the C programming language is required.

6 Hands
-
on training

Students gain experience creating their own C++ programs. Hands
-
on exercises include:



Developing a
n object
-
oriented model



Using operators overloading



Implementing class hierarchy in C++



Using streamed input/output



Writing the exceptions
-
aware application



Creating and using template classes

7 Course content


Lecture 1. Objective paradigm in C++

Obje
cts and classes. Relationship between objects and classes. Inline functions. References and reference parameters.
Default arguments.

Lecture 2. Polymorph functions

Scope resolution operator. Functions overloading. Using const specificator with pointers
. Function pointers.

Lecture 3. Accessing, creating and destructing objects

Scope of a class, and access to class members. Manipulations with access rights. Initialization of the class objects:
constructors and destructors. Constructors with default arg
uments. Using destructors. Calling constructors and destructors

Lecture 4. Incapsulating class data

Detaching interface from implementation. Access functions. Using data
-
members and function
-
members. Retruning
reference to closed data
-
members. Default bi
t
-
wise copy assignment.

Lecture 5. Class members

Constant objects and member functions. Objects as class members. Friend functions and friend classes. Using “this”
pointer. Dynamic memory allocation with new and delete. Static class members.

Lecture 6.

Operators overloading

Operators overload basics. Limitations of overload. Operator functions as class members and as friend functions. Stream
i/o operations overloading. Unary and binary operations overloading. Type casting. Increment and decrement opera
tions
overloading.

Lecture 7. C++ input/output streams

Stream i/o classes and objects. Stream input and output. Stream manipulators, format and error states. Streams bounding.
Files and streams. Creating file, data reads & writes. Objects i/o.

Lecture 8
. Inheritance and class members

Base and derived classes. Protected members of a class. Bas class type casting to a derived class type. Using member
functions. Redefining base class members in derived class. Public, protected and private base classes.

Le
cture 9. Accessing, creating and destructing derived objects

Direct and indirect base classes. Using constructors and destructors in derived classes. Implicit mapping of derived class
objects to base class objects. Multiple inheritance. Virtual base class
es.

Lecture 10. Polymorphism in the inheritance

Virtual functions. Abstract base classes. Polymorphism. New classes and late binding. Virtual destructors. Internal details
of polymorphism, virtual functions, and late binding in C++.

Lecture 11. Templa
tes in C++

Function templates. Their overloading. Class templates. Class templates and non
-
type parameters. Templates and
inheritance. Templates and friends. Templates and static members.

Lecture 12. Exception handling

C++ exception handling basics. Th
r
owing, catching exceptions. Specifying exceptions. Handling unexpected
exceptions. Constructors, destructors and exceptions. Re
-
throwing an exception. Exceptions hierarchy

Lecture 13. C++ standard library basics

Introduction to STL. Iterators. Simple c
ontainers (vector, list, deque). Associative containers (multiset, set, multimap,
map).

Lecture 14. C++ container classes

Container adapters (stack, queue, priority_queye). Functional objects.

Lecture 15. Casting and namespaces specifics

bool data type
; static_cast and const_cast operators. reinterpret_cast. Namespaces. RTTI.

Lecture 16. More on pointers, signals and events

Pointers to class members. Variable length arguments lists. Interrupting program with exit and atexit functions.
volatile type sp
ecificator. Signals handling. Binding specification.


8 Method of evaluation

Evaluation Item

The Number of Times

Evaluation Proportion

Remarks

attendance


20%

80% of the classes

midterm exam




final exam

1

20%


final report




test




presentation




discussion

4

10%


homework


20%


practice task

6


30%

All the practice tasks should
be completed

etc