Настоящото издание е учебник, създаден по едноименния курс за студентите от базова програма "Информатика и телекомуникации" на Нов Български Университет. Това предопределя неговата задача да даде от една страна основни познания, необходими като първа стъпка в по-нататъшното обучение на бъдещите информатици, а от друга - достатъчен обем от основни знания и умения на бъдещите бакалаври по телекомуникации, които няма да изучават други курсове, свързани с алгоритмите.
При разработването на методическия подход на представения тук материал, първата цел беше той да бъде разбираем, общообразователен, леко да се запаметява и да създава стабилни представи за основни понятия в алгоритмите и програмирането. Поради това материалът е придружен с много аналогии, метафорични илюстрации, опорни схеми и т.н.
Втората цел беше да подпомогне обучаемите да създават сами програми за по-елементарни алгоритми, като им даде методическа опора и тренира у тях умението да извършват преход от задачата към алгоритъма и към съответстващ му програмен текст. Поради това изложението е придружено с много подробни обяснения както на методите и алгоритмите, така и на практически задачи "трениращи" алгоритмичното мислене и уменията за кодиране.
Третата цел беше знанията и уменията да бъдат универсализирани по отношение на използвания език за програмиране. Това наложи да се изобрети един подход за обобщено изобразяване на алгоритъма-програма посредством схема за управление, която позволява "пренасяне" в който и да е процедурен език за програмиране. Като опорни за примерите са избрани Pascal, като идеен основоположник на структурното програмиране, най-близък до естествения език и най-отчетлив на абстрактно равнище на организация на работата с паметта и данните, и С, който е основа за привикване към синтаксиса на най-често използвания език при обучение в обектно-ориентирано програмиране. Практически няма никакво значение за обучаемите кой от езиците ще изберат за упражненията в компютърните класове, дори се препоръчва да опитат и двата опорни езика.
Предполага се, че студентите са програмирали в средния курс на обучение и са запознати на начално равнище с базовия синтаксис на някой език за програмиране, както и със значението на термини от рода на "машинна памет", "компилатор", "бит", "взаимно еднозначно съответствие", "ред", "вектор" и други базови термини от областта на информатиката и математиката.