Generalization of an active electronic notebook for teaching multiple programming languages | IEEE Conference Publication | IEEE Xplore