Родился в 1949 году в одном из сёл нынешней Белгородской области. Род берёт начало от знаменитого русского (запорожского) казацкого полковника. Закончил сельскую школу, затем мехмат МГУ. Специализировался по логике. Затем стал заниматься программированием, философией, лингвистикой и общим системным и логическим анализом.
Является одним из основателей теории неформализуемых понятий и теории логического синтеза программ на базе конструктивных логик, создал две из четырёх известных классов конструктивных логик, разработал методику логического подхода, ставшего естественной альтернативой системному подходу.
Более 15 лет ведёт интенсивные эксперименты по перестройке преподавания информатики, рассматривая это как комплексную проблему (научить настоящему программированию без надлежащей математики и философии невозможно).
Участвовал в разработке учебных планов и становлении Факультета Информационных Технологий НГУ, выросшего из состава механико-математического факультета.
Работал консультантом ведущих российских софтверных фирм.