SMS: The elements of language curriculum: a systematic approach to program development