PM: a system to support the automatic acquisition of programming knowledge | IEEE Journals & Magazine | IEEE Xplore