Teaching HCI to engineering students using problem based learning