Reviews
Софтуерен университет (СофтУни)
Книга за всеки, който иска да надскочи нивото на обикновен кодер и да стане ефективен софтуерен инженер с дълбоки познания.
Софтуерен университет (СофтУни), 2015 г.
Информатически портал ИнфоМан
http://infoman.musala.com/resources/main_bg_papers.html
Програмиране = ++Алгоритми
от П.Добриков и Пр.Наков
Top Team, 2003
Без съмнение това е най-добрата книга за алгоритми и програмиране, излизала на българския пазар, и ще е полезна за всички интересуващи се от информатика. Повече информация за книгата –
www.algoplus.org
PC Magazine
http://www.sagabg.net/PCMagazine/articles.php3?unit_id=23&issue_id=98
Ако сте избрали програмирането за своя професия, то “Програмиране = ++ алгоритми;” (около 700 стр., Преслав Наков и Панайот Добриков) е задължително четиво за вас. Книгата, която се появи на
книжния пазар в края на април, е сходна по тематика с “Основи на компютърните алгоритми” от Преслав Наков (400 стр., претърпяла 3 издания).
Целта на авторите е да запознаят читателите с най-разпространените техники на програмиране. Наред с представянето на широкоизвестни методи за решаване на алгоритмични задачи (и анализ на техните свойства, приложения, предимства и недостатъци), се разглеждат и стотици конкретни алгоритмични проблеми, обръща се внимание на анализа на алгоритмичната сложност на предложените решения, прави се сравнение между различни подходи. Засегнат е широк спектър от теми както в теоретичен, така и в чисто приложен аспект. Материалът е ориентиран по-скоро към приложната страна и
реализацията на разглежданите алгоритми за сметка на чисто теоретични изследвания и доказателства за коректност (като се обхващат в някаква степен най-актуалните съвременни научни резултати в съответната област)…
Предговор от научния редактор
С настоящата книга се продължава уникалното
явление в нашата учебна и научна литература (а, може би и в световната) —
студенти да пишат оригинални учебници за компютърната информатика на изключително
високо ниво, новаторски съчетавайки практика и теория. Първата книга,
започнала този стил, беше “Основи на компютърните алгоритми” на
Преслав Наков. Сега авторът й заедно с Панайот Добриков правят следваща
стъпка, като предлагат на читателя значително разширен и видоизменен труд,
който по качества се доближава до такава основна книга за съставители на
алгоритми, каквато е “библията” Introduction to Algorithms от
Cormen, Leiserson и Rivest, но притежаващ и много свои специфични черти.
Забележимата разлика с повечето университетски
учебници и ръководства по алгоритми и структури от данни е, че авторите
използват подход “отдолу-нагоре”, тръгвайки от самото програмиране,
за да стигнат до теорията. И това е естествено за тях, защото и двамата са
навлезли в компютърната информатика чрез състезанията по програмиране и са
преминали успешно през многобройните кръгове на националната и международната
олимпиади по информатика. Това обяснява и значителното присъствие в книгата на
цялостно завършени, елегантно оформени програми с изходен текст на езика
Си. Те са написани от авторите и носят отпечатъка им на елитни алгоритмисти и
програмисти-практици.
Оттук следва и основното предназначение на книгата
— да бъде учебник за състезатели — ученици и студенти. Разбира се, това никак
не изключва възможността тя да бъде ползвана от професионални програмисти,
на които е възложено или им се е наложило да програмират нещо, което надхвърля
леймърското ниво (за “леймър” — виж въведението на авторите) — т.е.
нещо, за което се изисква да се помисли предварително и да се потърси теория,
преди да се започне с програмирането.
Книгата може да служи и като превъзходен
университетски курс за въведение в алгоритмите и структурите от данни. Може
да се каже, че научното и педагогическото й ниво е значително. Всъщност тя е
експериментирана от авторите й именно за такъв курс, защото са я ползвали,
когато е била в още незавършения си вид, за да преподават по нея. Така
предложеният учебник има достойнствата, че споделя едновременно опита на
доскорошни активни състезатели по информатика с по-новия им опит да преподават
на студенти основите на компютърната информатика. Авторите са водили курса си
“Проектиране и анализ на компютърни алгоритми”, когато самите те са
били студенти и по всеобщо признание този курс, който е тясно свързан с
настоящата книга, е оценен много високо.
В книгата са застъпени няколкото основни линии, по
които могат да се разглеждат и преподават алгоритми. Въпреки, че е трудно
да се правят методологически класификации, може да приемем най-общо, че двете
възможни гледни точки са — от позицията на предмета и от позицията на
метода. Традиционно към предмета, върху който работят алгоритмите, се
причисляват обекти като числа, множества и по-общи структури от
данни, графи и т.н., а към предмета на самите алгоритми могат да бъдат
отнесени темите за сортиране и търсене, компресиране, получаване на комбинаторни
конфигурации и т.н., докато методите за съставяне на алгоритми са рекурсия и
итерация, търсене с връщане, разделяй и владей, динамично оптимиране,
евристични алгоритми и др.
Подробното съдържание на книгата дава много добра
представа за включения материал. За начинаещия читател то може да служи като
пътеводител в една обширна област, а за запознатия с тази област опитен програмист
то има качества на справочник.
Книгата е оригинално българско творение,
неотстъпващо от световното ниво в разглежданата бързо развиваща се
съвременна област на компютърната информатика. Тя съчетава програмистка
практика с теория, изградена върху математически методи, което допринася за
по-добро разбиране и прилагане на многобройните алгоритми, съдържащи се в
нея. Предназначена е за читатели, които биха оценили този синтез — ученици и
техните учители, студенти и техните преподаватели, професионални програмисти и
техните ръководители и разбира се, тя е за всички любители.
Институт по математика и информатика
Българска академия на науките
Review
За създаването на качествени програми не е достатъчно перфектното владеене
на един език за програмиране. Без сериозни познания в областта на алгоритмите
не е възможно да се направи ефективна програма, особено когато се работи с
големи обеми от данни. За съжаление, в достъпната за българския читател
литература съществува празнота в това отношение. Наличните текстове са малко и
не покриват достатъчно добре темата.
Книгата, която държите в ръцете си, е следващо, по-мъдро и по-систематично,
усилие след двутомното издание на единия от авторите – Преслав Наков – добре
познато на всички, които в последните години са участвали в състезания по
програмиране. И Преслав Наков, и Панайот Добриков са дългогодишни участници в
състезания по програмиране. Отначало за ученици, а по-късно и за студенти. И
двамата имат огромен опит в решаване на програмистки задачи с определено
алгоритмичен характер. А многообразието от алгоритми и алгоритмични техники,
много решени примери и много задачи за самостоятелна работа, са основни
характеристики на настоящата книга.
Разбира се, никое издание, колкото и обемисто да е то, не може да обхване
абсолютно всичко, което е направено от човечеството в областта на алгоритмите,
но работата, която двамата автори са свършили, е чудесна.
Факултет по Математика и Информатика, СУ “Св. Климент Охридски”
Американски университет – Благоевград
Review
Неслучайно авторите на книгата са поставили за нейно заглавие “Програмиране
= ++Алгоритми;”. Макар такова опростяване все повече да губи своята
актуалност в съвременното програмиране, изборът на алгоритми (и структури от
данни) продължава да оказва значително влияние върху ефективноста на почти
всяка програма.
Основният акцент в настоящата книга е поставен върху проектирането и
анализа на компютърни алгоритми, независимо от конкретния език за
програмиране, макар за реализацията им да е избран Си. Предложено е задълбочено
и изчерпателно изложение, което се възприема лесно от читателя ¾ едно наистина рядко
съчетание.
Не може да не се подчертае, че авторите са сред най-изявените състезатели
по програмиране у нас и, макар и млади, имат значителен практически опит
във водещи софтуерни фирми. С тази книга на читателя се дава възможност да се
запознае с важни и фини програмистки техники.
Пловдивски Университет
Recent Comments