The book introduces the reader to computer programming, ie algorithms and data structures It covers many new programming concepts that have emerged in recent years including object-oriented programming and аюцснdesign patterns The book emphasizes the practical aspects of software construction without neglecting their solid theoretical foundation.