This page covers 3 (three) CMPE courses


Home Page       Links to Internet Sources       C/C++ Programming Course

 Software Implementation of Fuzzy Systems        



sm231.png (27865 bytes)
    
"Data Structures"
     
    

sm475.png (27852 bytes)

"Introduction to OR"
    
   

sm417.png (27807 bytes)

"Advanced Topics in C programming"
    


COURSE 1:  CMPE-231 "Data Structures"
CMPE-231 Data Structures
title in Russian (1)
FrontPage'98 and FrontPage'2000 editors were used in the preparation of the page


sm231.png (27865 bytes)

2000/2001 academic year
Fall semester


 
  Course Desciption

    Navigation Tips:

Laboratory Experiments
(C language)
(2000/2001 academic year)

Web-based Materials
for Self-Studying
(Searching/Sorting
Techniques)

Data Structure course
in other Universities worldwide

Lecture examples
(C code)

Student Projects
«Data Structures using C»

(Tutorial program;  version 0.1) prepared by
N.Al-Zoubi (June 2000)

Recommended Books

  

      
Hit Counter

public26.png (29653 bytes)
      

   
               
bd15170_.gif (897 bytes)   «Data Structures» course is one of the basic (fundamental) courses in Computer Engineering/Science Program. As a result of smooth transition to the new Departmental Curriculum, this course uses C programming language for the first time in the Fall semester of 2000/2001 academic year.
bd15170_.gif (897 bytes)  CMPE-102 (Introduction to C Programming) remains a compulsory prerequisite for the «Data Structures» course. Although certain changes will take place in the course material, we decided to keep links (see indicated clauses in the column below) to those laboratory works, which were used in CMPE-231 course for the last 2 years. These lab sheets were prepared in January of 1998 - they cover important introductory topics of the one-semester course «Data Structures» (CMPE-231), e.g. one- and two-dimensional arrays, records, arrays of records, sets, pointers, stacks and linear linked lists, sorting/searching techniques, binary trees. Last year we proposed changes in course contents and also added several Assignments (files processing, arithmetic calculations using prefix/postfix notation, hashing) as a part of students practical studying. We still plan to use selected materials in laboratory session this year as well.
bd15170_.gif (897 bytes)  Total of 7 mentioned above laboratory works are divided into 4 PostScript files (and their PDF equivalents). For implementations Turbo Pascal 6.0/7.0 programming language was used in laboratory experiments. Besides that, in the Appendix1 students can find some routines to use in the experiments (text of routines is taken from «Data Structures and Algorithm Analysis» by M.A.Weiss, The Benjamin/ Cummings Publ.Company, 2nd edition, 1995, ISBN 0-8053-9057-X, 500 p. - this book was recommended before as a reference in the course).
bd15170_.gif (897 bytes)  For the Fall semester of 2000/2001 academic year we selected the book «Data Structures Using C and C++» by Y. Langsam, M.J. Augenstein and A.M. Tenenbaum, Prentice Hall, 2nd edition, 1996 as a main reference (textbook) in the course
     
   for more information see the Course Description
   the duration of the course is 13 weeks = 42 lecture hours


 


Last modified on

March 28, 2001
   

              

momomo1.png (30254 bytes)
      
This page combines together three courses, i.e.
«Data Structures» (CMPE-231), «Advanced Topics in C programming» (CMPE-417) and «Introduction to Operations Research» (CMPE-475).
Both 4xx courses are Technical Elective courses, and they are not given each semester. I hope that CMPE-417 in the future will deal with both C and C++ programming aspects.
In contrast, CMPE-231 is a compulsory second year course, and in the Fall semester of 2000/2001 academic year it uses C programming language. The courseware is updated regularly, and most of the prepared materials and project work done by students remain free for downloading...
      

 

    Below You see links to courses given since 1997. I'm still trying my best to collect together all materials, which were prepared for these courses (the work done by students is also covered):

 
public15.png (37593 bytes)
  :: brief comments

 
public16.png (35240 bytes)
momomo.gif (1110 bytes)

 
public17.png (37684 bytes)
momomo.gif (1110 bytes)

 
public18.png (37518 bytes)
momomo.gif (1110 bytes)
 
 
public19.png (38853 bytes)

  :: brief comments
    


 

          

  CMPE-212

(primarily covers materials on C programming, i.e. laboratory experiments, lecture notes, selected lecture slides, examples and explanations). In the Spring semester of 2000/2001 academic year the course will be given in C++, and the corresponding documents will be published here as well. The prerequisite for this course is CMPE-102, which provides an introduction to C programming)
    
  
 
CMPE-586
  

(this Graduate course was given in the Department for the first time in the Spring semester of 1999/2000 academic year. Currently, the page summarizes one-semester work including lecture notes (publically available slides), MATLAB examples and parts of projects prepared by students. Links to different commercial and non-commercial "fuzzy" software packages are provided. Later on I have a plan to modify the course and to introduce also a chapter on Neuro-Fuzzy Systems)
     

  public20a.gif (1130 bytes)

(this page is still under construction, but the main idea is to put together interesting links related to C/C++ programming and Fuzzy Logic. They indicate my interests and preferences, but on the other hand, it is a source of information for students, a starting point to gain something new (explanation, other links, tutorials, etc.)

 

   

   Note:  All rights to following logo, images and information contents belong to respected designers and owners of the corresponding web sites
        

  Get Acrobat Reader
   
Web site of Adobe Systems Inc.
Adobe Acrobat Reader® (one of the company's products) is a software for viewing and printing documents in Adobe Portable Document Format (PDF). The current version available for FREE downloading is 4.05c (English). All major platforms are supported. The size of downloading file is 5.6 Mb
     

   Ghostscript
    
Aladdin
GhostScript (v.6.01)
      

   GSView  
      
(GSView - Graphical Interface for GhostScript)

Ghostscript family programs are used for viewing and printing files in PostScript (PS) format. They also provide facilities for interpretation of PDF documents. The current version available for FREE downloading is 6.01. Platforms supported include UNIX & VMS, DOS, MS Windows and Macintosh
      

  Copernic 2000
     
Web site of
Copernic Technologies Inc. (developer of innovative agent techology solutions to access and manage information, since 1996). Copernic 2000 («the smart software to search the Web») is one of the company's products available for FREE downloading
         

  MS Office 2000
   
Web site
microsoft.com (Dowload Center) provides many software for FREE downloading - PowerPoint 97 Viewer (Release 2000) is among them. It supports fully functional viewing and printing of .ppt files.
You can also find here Word 97/2000 Viewer.

              
checkred.gif (260 bytes)checkred.gif (260 bytes)  The puzzle collection
     
From time to time a gray matter needs intensive warmup...  Entertainment Pack: The Puzzle Collection from Microsoft® combines 10 original multilevel games from A.Pajitnov (Wooo..oh! the author of the Tetris  rus_flag.gif (364 bytes)). Trial version (1.0) can be downloaded
     

  Download MS Reader
       
The software («dynamic reading engine») from Microsoft® for electronic (computer on-screen) reading of eBooks on PCs and Pocket PCs (enriched with
ClearType™ display technology, which provides clear appearance of words on the monitor's screen). PC's version is available for FREE downloading. FAQs and answers about Microsoft Reader help to get more information about the product
       

  Download ReaderWorks
      
Download FREE OverDrive's
ReaderWorks© Standard (version 1.0) eBook authoring software for converting documents to Reader eBook format. Requires Windows 98, Windows NT (SP5) or Windows 2000 operating system (file for downloading is 1.38 Mb)
       

  eBookcity.com
      
The site (
City of eBooks - texts of books «enhanced by the magic of computer technology») is operated by Versaware. Registration is required for reading and downloading books to My Library, using eReference Center, etc.
       

  Metrowerks company
     
Independently operating subsidiary of Motorola,
Metrowerks company develops and supports CodeWarrior® development tools (CodeWarrior offers a choice of several programming languages: C, C++, Object Pascal and Java). Recently they announce the MMAP program (Motorola and Metrowerks academic program)
       

  Amazon.com - C/C++ books
          
Books on C and C++ (
Amazon.com site offers around 100 titles)
          

  deitel.gif (1798 bytes)
     
The web site of
Deitel & Assoc.,Inc., an internationally recognized «organization specializing in programming languages, Internet/WWW technology and object oriented education». How to Program series (C,C++,e-Business,Perl,XML,Java,...) published by Prentice Hall remain among the best titles for Computer Science/Engineering courses
           


     

Selected Assignments and Quizzes

 sq_blue.gif (59 bytes)

Assignment 2
1998/99 academic year
Topic: Infix/Postfix forms of arithmetic expressions
(22 Kb, PDF format)

sq_blue.gif (59 bytes)

Assignment 2 (part 1)
1999/00 academic year
Topic: Stacks, Conversion of arithmetic expressions from infix to postfix form
(16 Kb, PDF format)

sq_blue.gif (59 bytes)

Assignment 2 (part 2)
1999/00 academic year
Topic: Linked Lists, Basic operations on Circular Doubly Linked Lists (insertion, deletion, traversing)
(40 Kb, PDF format)

sq_blue.gif (59 bytes)

Quiz 3
1997/98 academic year
Topic: Linked List structures
Duration: 50 minutes
(12 Kb, PDF format)

sq_blue.gif (59 bytes)

Assignment 1
2000/01 academic year
Topic: Linked Lists, Basic operations on Circular Doubly Linked Lists (insertion, deletion, traversing)
(40 Kb, PDF format)

sq_blue.gif (59 bytes)

Assignment 2
2000/01 academic year
Topic: Linked Lists, Basic operations on Circular Doubly Linked Lists (insertion, deletion, traversing)
(40 Kb, PDF format)

                           

                       
arr Course Description

bd15170_.gif (897 bytes)  CMPE-231 Course Description  (3 pages)
explains objectives, main topics covered in the course and grading policy,
provides information about recommended books, tentative laboratory works schedule and laboratory works evaluation scheme.
The document is available in two formats:
   
  disk1.gif (866 bytes) 
MS Word 2000 (.doc file, 57 Kb)
  disk1.gif (866 bytes) 
Adobe Acrobat Reader (.pdf file, 109 Kb)

pork22.png (47364 bytes)

1190.gif (980 bytes)

Laboratory experiment # 1
Postscript (PS file),
43 Kb  - PDF file, XX Kb

1190.gif (980 bytes)

Laboratory experiments # 2,3,4
Postscript (PS file),
3.2 Mb  - PDF file, XX Kb

1190.gif (980 bytes)

Laboratory experiments # 5,6
Postscript (PS file),
550 Kb  - PDF file, XX Kb

1190.gif (980 bytes)

Laboratory experiment # 7
Postscript (PS file),
177 Kb  - PDF file, XX Kb
   

Note that these are SAMPLES of laboratory sheets of the 1999-2000 academic year!

bd15170_.gif (897 bytes)   Use Aladdin GhostScript® for viewing and printing PS files (FREE downloading, English version 6.01)

     

  top of the page  
    

pork33.png (57928 bytes)

bd15170_.gif (897 bytes)  Use Adobe Acrobat Reader® for viewing
and printing files in PDF format

1190.gif (980 bytes)

Laboratory experiment # 1
PDF file,
15 Kb  (October 23 - October 27) 

1190.gif (980 bytes)

Laboratory experiment # 2
PDF file,
21 Kb  (October 30 - November 3) 

pork23.png (55513 bytes)

sorting techniques

         

l_red.gif (162 bytes)

Bubble Sort  (simple C code and animated demo) by A.Hausner, CS Department, Princeton University

l_red.gif (162 bytes)

Animator  of 5 Sorting Algorithms: Bubble Sort, Insertion Sort, Selection Sort, Shaker Sort and Shell Sort by J.Dildy and S.Poonen  (a short explanation of big-O notation)

l_red.gif (162 bytes)

Commonly used sorting algorithms  (QuickSort, MergeSort, HeapSort, Insertion/Selection Sort, Bubble Sort, Radix Sort) and their implementation in C by S.Gasch
l_red.gif (162 bytes) Bubble Sort  with explanations and C implementation (with links to other sorting techniques)
l_red.gif (162 bytes) C implementations of Bubble Sort, Insertion Sort and Selection Sort
l_red.gif (162 bytes) Brief ideas about sorting (sorting algorithms, complexity, links to other sites). Sort Algorithms Visualizer by T.Baudel
l_red.gif (162 bytes) Sorting and Searching Algorithms: A Cookbook  by T.Niemann (PDF file, 36 pages). Besides sorting techniques, the document covers hash tables, binary search trees, external sorting and B-trees (provided with C source code). You can also try a "A Compact Guide to Sorting and Searching" (ePaper Press) available in English, Russian, French and Italian

searching techniques

        

l_red.gif (162 bytes)

Data Structures and Algorithms (chapter 4 "Searching") by J.Morris
l_red.gif (162 bytes) Selected programs   (Pascal/C/Fortran code; Linear Search, Binary Search, Hashing, Linked Lists)
l_red.gif (162 bytes) Handbook of Algorithms and Data Structures  by G.H.Gonnet and R.Baeza-Yates (beta version by Addison-Wesley Publ.Co.). Chapter 3 "Searching Algorithms" (Sequential Search, Sorted Array search, Hashing)

linked lists

 

l_red.gif (162 bytes)

Linked Lists  by J.Wood (inquiry.com - answers for IT professionals)

 

   top of the page  
 

DS - other Universities

l_red.gif (162 bytes)

CS308-251B
Data Structures and Algorithms  (McGill University, School of Computer Science, Canada). Online resources include Class notes for 1997 compiled by students. Selected Tutorials and Practice Questions are available

l_red.gif (162 bytes)

PLSD210
Data Structures and Algorithms  (University of Western Australia, Electrical and Electronic Engineering). Includes Lecture Notes and Course Slides (1998 academic year)

l_red.gif (162 bytes)

CS 3358
Data Structures  (Southwest Texas State University, Department of Computer Science, USA)

l_red.gif (162 bytes)

CSCI 2270
Data Structures  (University of Colorado Boulder, Department of Computer Science, USA). Covers the Purpose of the Course, Course Materials and Reading Assignments

l_red.gif (162 bytes)

CS 226
Data Structures and Algorithms  (Princeton University, Computer Science Department, USA). The course material has been prepared to supplement the book «Algorithms in C» by R.Sedgewick (Addison-Wesley, 1998)

l_red.gif (162 bytes)

CSIE
Data Structures  (National Dong Hwa University, Department of CS and Information Engineering, Taiwan). Textbook: «Data Structures in C» by A.Drozdek and D.L.Simon provides Course Contents and Slides (.ppt files)

l_red.gif (162 bytes)

CMCS 420
Data Structures   (University of Maryland, Institute for Advanced Computer Studies, USA). Includes selected presentations (.ps format) and Programming projects

l_red.gif (162 bytes)

CP 114
Data Structures  (Wilfrid Laurier University, Physics & Computing, Canada)

l_red.gif (162 bytes)

CMPE 223
Data Structures and Algorithms I  (Bogaziçi University, Dept. of Computer Engineering, Turkey). Online Lecture Notes, Course requirements and Catalog data can be found here 

l_green.gif (177 bytes)

Superb source of complex practice problems: Linked Lists (Stanford CS Education Library). Cover 18 LL problems of increasing difficulty (with solution code), LL basics, explanation of pointers and memory (how it works)...

l_green.gif (177 bytes)

Compilation of lecture notes done by E.F.Anderson (student of Bournemouth University) - different topics in C programming (i.e. Linked Lists, Trees, Sorting Algorithms, Recursion, etc.)


         
   top of the page  
   

 Lecture examples (.pdf)


       

1190.gif (980 bytes)

All files (PDF format) are available for downloading. They cover examples discussed during the first half of the course.
** Available ONLY in the electronic form **
Last modifications: 
December 6, 2000
   
bd15170_.gif (897 bytes)  Use Adobe Acrobat Reader® for viewing and printing PDF files (FREE downloading, English version 4.05c)
      

exam231
   
(zip-file
261 Kb)

* Basic types in C (fds1)
* Pointers in C programs (
fds1a)
* Basic rules of pointer arithmetic (
fds1b)
* Simple swapping function (
fds1c)
* Minimum and maximum values for data types (symbolic names, file
limits.h) (fds1d)
* Binary representation of the
int type value (fds1e); explanation bd15170_.gif (897 bytes)
* Dynamic allocation, heap (
exds1)
explanation bd15170_.gif (897 bytes)
* Basic operations on primitive DS (
fds2)
* Arrays and structures in C programs (
fds3)
* Pointers and function calls (
fds4)
* Structures, unions and pointers (
fds5)
* Variables of enumerated type (
fds6)
* Physical model of 2D arrays, structures as arguments to functions (
fds7)
* Arrays and pointers; Storage Mapping Function (SMF) (
fds7a)
* Bit field structures, pointers to structures (
fds8)
* Arrays of structures and C strings (
fds9)
* C strings (see example fds9) (
exds2)
explanation bd15170_.gif (897 bytes)
* Arrays. Exchange sorting (bubble sort) (
fds10)
* Bubble sort (see example
fds10) (exds3)
explanation bd15170_.gif (897 bytes)
* Coping from external text file to array (
fds11)
* Binary search (two-dimensional array) (
fds11a)
* More on pointers and pointer arithmetic; conversions (
fds12)

 

   top of the page  


Project - DS using C (.chm file)



Key topics of the course

          
1190.gif (980 bytes)   A Tutorial program «Data Structures using C»
was prepared by
Nader Al-Zoubi (Spring' 2000 graduate). The main aim of the project was to arrange key parts of lecture notes (and examples in C) into a compact, easy-to-use and flexible (in a sense of further extension) program. RoboHELP 2000 (demo version) as a powerful tool for visual HTML design and editing was used to produce compiled standalone HTML-based help file (294 Kb).
bd15170_.gif (897 bytes)
   For the time being it covers 8 chapters including introduction and examples. Explanation of such important topics as atomic & compound data structures, stacks & queues, pointers, dynamic memory allocation, linked lists, binary trees becomes available to students at any time. Please, send by e-mail notifications about found defficiencies).
bd15170_.gif (897 bytes)
   The final version of the program was released on June 27, 2000.    

 

top of the page  


pork270.png (53411 bytes)


        

Algorithms in C

«Algorithms in C: Fundamentals, Data Structures, Sorting, Searching» by Robert Sedgewick
(ISBN 0201314525)
  

Data Structures (pseudocode)

«Data Structures: A Pseudocode Approach with C» by R.F. Gilberg and B.A. Forouzan
(ISBN 0534951236)
  

Data Structures using C/C++

«Data Structures Using C and C++» by Y. Langsam, M.J. Augenstein and A.M. Tenenbaum
(ISBN 0130369977)

DS and Algorithm Analysis

«Data Structures and Algorithm Analysis» by Mark A. Weiss 
[bd15170_.gif (897 bytes)  Pascal language]

DS - A first course

«Data Structures and Algorithms: A First Course» by Iain T.Adamson
[bd15170_.gif (897 bytes)  Pascal language]
(ISBN  3540760474)

Programs and DS in C

«Programs and Data Structures in C (based on ANSI C and C++)» by L. Ammeraal
(ISBN 0471931233, 2nd edition)

     

 

COURSE 2:  CMPE-475 "Introduction to Operations Research"
   
CMPE 475 - Introduction to OR

subtitle in Russian (2)


sm475.png (27852 bytes)

1996/1997 academic year
Spring semester

    Navigation Tips:

Short Survey:
TSLIN
, LPAKO and
MILP88 (programs for solving LP problems)

Lecture transparencies (16 units)

Operations Research Laboratory (ORLAB), Seoul National University

Recommended Books

      

-------   new2.gif (284 bytes)  -------

    

  
mcgraw.jpg (1359 bytes)  August,2000

McGraw-Hill Publishing company announced a 7th edition of the book «Introduction to Operations Research» by F.S.Hillier and L.G.Lieberman
(
ISBN: 0072416181). See more about this tiile

    

    
               
bd15170_.gif (897 bytes)   Technical Elective one-semester course «Introduction to Operations Research» (CMPE-475) was given in the Spring semester of 1997. It covered such topics as historical survey of OR formation, mathematical modeling and optimization aspects, Linear Programming (LP) problems (graphical solution and simplex method), post-optimality analysis, examples (transportation and network flow problems), duality of LP problems, Integer LP, Gomory's and Branch and Bound methods.
bd15170_.gif (897 bytes)  Although no specialized software packages were used in the course (students used software provided with the textbook «Introduction to Operations Research» by F.S.Hillier and G.J.Lieberman, McGraw-Hill, 6th edition, 1996, ISBN 0078414474, 998 p.), we prepared a short supplementary survey of three programs for solving LP problems - they are
  
          sq_blue.gif (59 bytes)   TSLIN (version 3.4),
          sq_blue.gif (59 bytes)   LPAKO (version 3.2f) and
          sq_blue.gif (59 bytes)   MILP88 (version 6.02).
   
Authors copyright is revered and is not affected. This 13 pages document is stored in PostScript format:
      

1190.gif (980 bytes)

  linpror.ps   (811 Kb)

bd15170_.gif (897 bytes)  For this course some lecture materials («extended» transparencies) were prepared as well - they do not cover the whole course, but give introductory insight into keypoints of optimization and LP problems. Total of 16 PostScript files (1 file = 1 transparency) are compressed into zip-file:

1190.gif (980 bytes)

  lecttrans.zip   (257 Kb)
The same slides are also available in PDF format:

1190.gif (980 bytes)

  opres1.zip  (104 Kb) contains slides 1-7

1190.gif (980 bytes)

  opres2.zip contains slides 8-15 (to be prepared)

    


      

   Note:  All rights to following logo, images and information contents belong to respected designers and owners of the corresponding web sites
        

  mathtools.gif (1557 bytes)
   
The technical computing portal for all your scientific and engineering needs (
MathWorks, Inc.). The web site covers such categories as MATLAB, Excel, Scientific C/C++, Scientific Java and Fortran, Applications and Industries, Visual Basic.
        

  msn.jpg (2488 bytes)

The web site unites several sites and pages, which are operated by
Microsoft and its affiliates
      

  wolfram.jpg (1754 bytes)

The web site of Wolfram Research, Inc. (one of the leading companies in technical software). The most known product of the company is
Mathematica™ (now in version 4). Recent releases of MathReader (a viewer for notebook document created with Mathematica) are available for FREE downloading (Windows 95/98/NT/2000, Linux, UNIX and Macintosh platforms).
The company was launched by S.Wolfram, Scientist, Creator of Mathematica, and Author of A New Kind of Science.
          

  mathsource.gif (1588 bytes)

Electronic library (MathSource) provides accessible
Mathematica materials (programs, documents, examples, enhancements). Established in 1990

 

  
logo.gif (3070 bytes)
  
Operations Research Laboratory (ORLAB) of Seoul National University works in the field of Linear and Integer Programming, Network and Game Theory and Design of OR software packages. Professor Soondal Park is a Head of the Laboratory.
    
One of their products is
LPAKO (Large-Scale Linear Programming Package). It uses Simplex Method (with preliminary conversion of the original problem to a standard form) to solve a LP problem given in the form:
     
linprog.gif (1215 bytes) 
More information about the current version of LPAKO (v.4.61f) including a source code and user's documentation can be found here.
   
Besides,
ORLAB maintained two volumes (volume 1, version 4 and volume 2, version 3) of Operations Research Program Library (for educational purpose). Both of them are available for FREE downloading...

                                                          top of the page    

pork270.png (53411 bytes)



  

0078414474_01_MZZZZZZZ.gif (12279 bytes)

«Introduction to Operations Research» by F.S.Hillier and G.J.Lieberman
(ISBN 0078414474, 6th edition)
bd15170_.gif (897 bytes)  7th edition of the book is currently available

0070080208_01_MZZZZZZZ.gif (8341 bytes)

«Schaum's Outline of Operations Research» by R.Bronson and G.Naadimuthu
(ISBN 0070080208)

0471517895.01.MZZZZZZZ (4045 bytes)

«Introduction to Practical Linear Programming» by D.J. Pannell
(ISBN 0471517895)

0387948333.01.MZZZZZZZ (4734 bytes)

«Linear Programming 1: Introduction» (Springer Series in Operations Research) by M.N. Thapa and G. Dantzig
(ISBN 0387948333)

0023984155.01.MZZZZZZZ (11384 bytes)

«Optimization in Operations Research» by R.L. Rardin
(ISBN 0023984155)
              

COURSE 3:  CMPE-417 "Advanced Topics in C programming"
   
CMPE-417  Advanced Topics in C

subtitle in Russian (3)


sm417.png (27807 bytes)

2000/2001 academic year
Spring semester

    Navigation Tips:

Course Materials
(1999/2000 academic year)

CMPE-417 Project
Programs Pfinder and Cchecker (versions 1.0) prepared by B.Gazi, Ç.Özkan, B.Çizili and F.Yorgancioglu (January 2000) 

Recommended Books

           
  Discussion of exception handling topic takes almost 15% of lecture time - I hope that in the future this course will be revised and improved, and exception handling mechanism must be covered with a great care. As Herb Sutter says in his recent book («Exceptional C++ - 47 Engineering Puzzles, Programming Problems and Solutions», Addison-Wesley, 1999), "exception-unsafe and poor design go hand in hand. If a piece of code cannot be made exception-safe, that almost always is a signal of its poor design"