A metaphorized and gamified visualization of the von Neumann architecture for programming learning