Я тут намедни писал статью о предметной области в обучающей системе по программированию. О возможном вычислении сложности предлагаемого материала.
И тоже написал, что при обучении программированию концепты не являются понятиями только языка программирования. Цикл - он в любом языке цикл, и подпрограмма - тоже. Форма представления меняется от языка к языку (не не сильно), а вот семантика-то остается одна и та же. При автоматизации обучения программированию как раз одна из задач - выделить такие концепты и их связи-отношения. Чтобы можно было построить семантическую сеть. И вычислять неким образом сложность подаваемого системой материала (для адаптивного управления).