Beruflich Dokumente
Kultur Dokumente
SYLLABUS
1-semester course
Object-oriented design and programming in C++
4 ECTS Credits
The main aim of the course of object-oriented design and programming in C++ is to
bring together mathematical modeling and modern programming methodology.
Mathematical modeling and computational experiment are basic techniques in mechanics
and biomechanics research but software is a main tool of those techniques. So, the course
is dedicated to the overview of OOD & OOP paradigm, its' methodology and its'
applications in the field of software design for computer-based numerical analysis for
natural science problems. The subject of the course is focused on the ideas of the object-
oriented programming vs. procedure-oriented programming and on the new vision of the
several numerical methods and techniques as an implementation of a set of specific data
types than represent the language of a problem field. While the major emphasis is on the
study of fundamental concepts of OOP: abstraction, encapsulation, modularity and data
2
hierarchy through inheritance, the course also attempts to draw attention to polymorphism
and typing, parallelism, stability and other significant concepts and features of OOP
methodology.
Also this course deals with methods, techniques; tricks and receipts for practical
programming and program coding in C++.
After completing the course, the students are expected to be able to:
compare the programming languages and their facilities for object-oriented
programming;
define a set of abstract concepts as a knowledge domain environment;
design a hierarchical set of data types (classes) on the base of inheritance;
make out the classes hierarchy on the base of inclusion relations and on the
base of private inheritance;
choose and implement a suitable inheritance scheme: behavior and
realization; only realization; only behavior;
understand and utilize dynamic dispatch (dynamic binding or late binding or
run-time linking) and static calls (fixed implementation or name binding or early binding
or compilation-time linking) and utilize both in computer program code;
understand the role of polymorphism and design polymorphic computer
program code;
present coherent arguments to answer questions both orally and in writing.
Teaching
The following methods and forms of study are used in the course:
Lectures
Labs
Problem sets
3
Program coding
Self-study
Use of different reference books and Internet resources
At the end of the course the students are supposed to do problem sets and write a
report, make an oral presentation and participate in discussion. Upon the successful
completion, the students will gain 4 credits.
Course content
Requirements
Grade determination
Class participation - 30%
Laboratory work - 40%
Written report and its presentation – 20%
Participation in discussion – 10%
Literature
Core
Booch, Grady (1997). Object-Oriented Analysis and Design with Applications.
Addison-Wesley. ISBN 0-8053-5340-2.
Stroustrup, Bjarne (1997). The C++ Programming Language (Third ed.). ISBN
0201889544
Sutter, Herb (2004). Exceptional C++ Style. Addison-Wesley. ISBN 0-201-76042-8.
Vandevoorde, David; Nicolai M. Josuttis (2003). C++ Templates: The complete
Guide. Addison-Wesley. ISBN 0-201-73484-2.
Becker, Pete (2006). The C++ Standard Library Extensions: A Tutorial and
Reference. Addison-Wesley. ISBN 0-321-41299-0.
Additional
Meyer, Bertrand (1997). Object-Oriented Software Construction. Prentice Hall.
ISBN 0-13-629155-4.
Rumbaugh, James; Michael Blaha, William Premerlani, Frederick Eddy, William
Lorensen (1991). Object-Oriented Modeling and Design. Prentice Hall. ISBN 0-13-
629841-9.
9
Alexandrescu, Andrei; Herb Sutter (2004). C++ Design and Coding Standards:
Rules and Guidelines for Writing Programs. Addison-Wesley. ISBN 0-321-11358-6.
Schreiner, Axel-Tobias (1993). Object oriented programming with ANSI-C. Hanser.
ISBN 3-446-17426-5. http://hdl.handle.net/1850/8544.
Internet Resources
Object-oriented programming at the Open Directory Project.
http://www.dmoz.org/Computers/Programming/Methodologies/Object-Oriented/
JTC1/SC22/WG21 - The ISO/IEC C++ Standard Working Group. http://www.open-
std.org/jtc1/sc22/wg21/
An incomplete list of C++ compilers, maintained by C++'s inventor: Bjarne
Stroustrup http://www2.research.att.com/~bs/compilers.html
Boost C++ source library http://www.boost.org/