Bilgisayar programlamasında ilk safha, problemin analiz edilmesi ve bu analiz doğrultusunda problemin çözülmesine ait işlemlerden oluşur. Bu işlemler programcı tarafından bilgisayar programlama dili ile kodlanmadan önce adım adım yapılmalı ve buna paralel olarak çeşitli şekillerle desteklenmelidir. Kısaca kodlamadan önceki bu işlemlere Algoritma, bu algoritmanın birbirleriyle ilişkili şekillerle desteklenmesine de akış diyagramı adı verilir.
İyi bir programcı aynı zamanda iyi bir algoritma yeteneğine de sahip olmalıdır. Günümüzde bilgisayar mühendisliği veya programcılığı öğrencilerinin ya da bilgisayar programcılığıyla uğraşanların en büyük sorunu algoritma yeteneklerini arttırmadan direkt programlama dilini öğrenmeye çalışmalarıdır. Ancak unutulmamalıdır ki problemin çözümü bilinmezse programlama dilini bilmek de bir anlam ifade etmeyecektir. Bu düşünceden hareketle bilgisayar bölümlerinde okuyan öğrenciler ve bilgisayar programcılığıyla ilgilenenler için çözümlü bir soru bankası oluşturmak istedik. Konuyla ilgili alıştırmaların çözümlerine birtakım yorumlar ekleyerek okuyucuların çözümlemeye çeşitli bakış açıları getirebilmelerini, hızlı ve dinamik programlamaya hazır algoritmalar oluşturabilmelerini amaçladık. Çözdüğümüz problemlerin C ve C# dilinde kodlarını ekleyerek kitabın programlama ve veri yapıları için de bir giriş niteliği taşımasını istedik. Oluşturmaya çalıştığımız bu geniş algoritma soru bankasının bütün okuyucularımıza faydalı olmasını ümit ediyoruz.