A tool-mediated cognitive apprenticeship approach for a computer engineering course | IEEE Conference Publication | IEEE Xplore