(İ.Calallı, M.Medvedyev. Proqramlaşdırma yarışlarına hazırlıq - Bakı: “Bakınəşr”, 2023, 512 s.)
“Proqramlaşdırma yarışlarına hazırlıq” adlı tədris vəsaiti çapdan çıxıb. Azərbaycan dilində bu qəbildən ilk təcrübə olan kitabda proqramlaşdırma olimpiadalarının keçirilmə mexanizmi və onlara necə hazırlaşmaq yolları ətraflı təsvir edilib, əsas mövzuların və alqoritmlərin təhlili verilib.
Kitabın müəllifləri Elm və Təhsil Nazirliyi İnformasiya Texnologiyaları İnstitutunun baş elmi işçisi, texnika üzrə fəlsəfə doktoru İsmayıl Calallı (Sadıqov) və ADA Universitetinin müəllimi, fizika-riyaziyyat üzrə fəlsəfə doktoru, dosent Mixail Medvedyevdir.
Yarış proqramlaşdırması düzgün (korrekt) qoyulmuş hesablama məsələlərinin həlli üçün effektiv alqoritmlərin düşünülüb tapılmasıdır. Alqoritmlərin layihələndirilməsi məsələ həll etmək bacarıqları və riyazi biliklər tələb edir. Çox vaxt həll yaxşı məlum olan metodların və yeni ideyaların birləşməsi nəticəsində yaranır.
Proqramlaşdırma yarışlarında riyaziyyat mühüm rol oynayır. Əslində, alqoritmlərin layihələndirilməsi ilə riyaziyyat arasında dəqiq sərhədlər yoxdur. Bu kitab dərin riyazi hazırlıq tələb etmir. Kitabın soraqça kimi istifadə edilə bilən əlavəsində çoxluqlar, riyazi məntiq və funksiyalar kimi bəzi riyazi anlayışlar və metodlar təsvir edilib.
Yarış proqramlaşdırmasında məsələnin həlli həyata keçirilən alqoritmin bir sıra testlər üzərində yoxlanılması yolu ilə qiymətləndirilir. Buna görə də məsələnin həll alqoritmini düşünüb tapmaq kifayət deyil, onu həm də düzgün həyata keçirmək lazımdır, bu da proqramlaşdırma bacarığı tələb edir. Yarış proqramlaşdırması ənənəvi proqram mühəndisliyindən çox fərqlidir: proqramlar qısadır (bir neçə yüz sətirlik proqramlara nadir halda rast gəlinir), onları tez yazmaq lazımdır və yarışdan sonra dəstəkləməyə ehtiyac yoxdur.
Vəsaitdəki bütün nümunələr C++ dilində yazılıb və bu proqramlarda tez-tez standart kitabxanadakı verilənlər strukturlarından və alqoritmlərdən istifadə edilir. Kod əksər müasir yarışlarda icazə verilən C++11 standartına uyğundur.
Kitabın materialları Beynəlxalq İnformatika Olimpiadalarının (International Olympiad in Informatics, IOI) sillabusu əsasında seçilib. Belə ki, məhz bu proqram Beynəlxalq İnformatika Olimpiadalarında hansı mövzuların təklif oluna biləcəyini müəyyən edir.
Kitab, ilk növbədə, proqramlaşdırma müsabiqələrinə hazırlaşan şagird və tələbələr, onların müəllimləri üçün nəzərdə tutulub. Eyni zamanda, bu kitab əvəzsiz dərs vəsaiti olaraq, informatika təmayüllü liseylər üçün də faydalıdır. Vəsaitdən ali və orta ixtisas təhsili müəssisələrinin İKT ixtisaslarının tələbələri də yararlana bilərlər.
Kitab giriş, 11 bölüm və 3 əlavədən ibarətdir:
• 1-ci bölümdə C++ proqramlaşdırma dilinin xüsusiyyətləri gözdən keçirilir və sonra rekursiv alqoritmlər və bit əməlləri müzakirə olunur.
• 2-ci bölüm effektivlik haqqındadır: böyük verilənlər yığınlarını tez emal edə bilən alqoritmləri necə qurmaq olar?
• 3-cü bölümdə C++ standart kitabxanasından seçilmiş verilənlər strukturlarının - vektorların, çoxluqların və inikasların icmalı təqdim edilir.
• 4-cü bölümdə çeşidləmə və ikilik axtarış alqoritmlərinə, onların alqoritmlərin layihələndirilməsində tətbiqlərinə diqqət yetirilir.
• 5-ci bölüm alqoritmlərin layihələndirilməsi üsullarından biri olan dinamik proqramlaşdırmaya girişdir. Burada bu üsulla həll edilə bilən məsələlərə nümunələr verilib.
• 6-cı bölüm elementar qraf alqoritmlərini, o cümlədən ən qısa yolları və minimal yayılan ağacları əhatə edir.
• 7-ci bölümdə ağac sorğularının emal üsulları da daxil olmaqla, ağac üçün xüsusi alqoritmlər təqdim edilir.
• 8-ci bölüm riyaziyyatın proqramlaşdırma yarışlarında tez-tez rast gəlinən sahələrinə həsr olunub.
• 9-cu bölümdə qraflar üzərində əlavə alqoritmlər, məsələn, güclü bağlantılı komponentlərin axtarışı və maksimum axının hesablanması təsvir edilir.
• 10-cü bölümdə həndəsi alqoritmlərə həsr olunur, həndəsi məsələləri əlverişli şəkildə həll etməyə imkan verən metodlar təsvir edilir.
• 11-ci bölümdə sətirlə iş metodları gözdən keçirilir.
Hər bölümün sonundakı “Praktikum” hissəsində mövzu ilə bağlı məsələlər və onların həll alqoritmləri verilir. 3-11-ci bölümlərdə isə mövzunun mənimsənilməsini möhkəmləndirmək məqsədilə müstəqil iş üçün eolymp portalından əlavə məsələlər tövsiyə olunur.
Son olaraq qeyd etmək lazımdır ki, Azərbaycan dilində proqramlaşdırma olimpiadaları ilə bağlı indiyədək yalnız iki kitab nəşr olunub ki, onlar da daha çox bu olimpiadaların tarixinə həsr edilib: Calallı İ., Beynəlxalq İnformatika Olimpiadaları: 1989-2011. Bakı, “Bakınəşr”, 2012 və Mahmudzadə R., Calallı İ., Əliyev A., Məktəblilərin İnformatika Olimpiadaları: 1989-2014. Bakı, “Bakınəşr”, 2015.
Azərbaycan dilində proqramlaşdırma olimpiadaları ilə bağlı işıq üzü görmüş üçüncü nəşr olan bu kitab ölkəmizdə yarış proqramlaşdırmasının əsasını qoymuş, Beynəlxalq İnformatika Olimpiadalarında Azərbaycan komandasına rəhbərlik etmiş görkəmli alim və pedaqoq Ramin Mahmudzadənin əziz xatirəsinə ithaf olunub.