Содержание спецкурса составляют классические методы верификации программ, которые базируются на подходах Флойда и Хоара. Вначале вводится логический язык спецификаций, на базе которого определяется понятие корректности программ. Подробно рассматривается метод аксиоматической семантики как для элементарных конструкций, циклов и процедур, так и для операторов над сложными структурами данных, такими как массивы, файлы, указатели. Рассматривается проблема автоматизации трудоемкого процесса верификации программ. В заключение дается обзор современных автоматизированных систем верификации программ. Спецкурс содержит представительную совокупность иллюстративных примеров.