Learning by prototyping