Teaching software design with social engagement | IEEE Conference Publication | IEEE Xplore