There are two design goals in sm1.
One goal is to provide a backend engine for the ring of differential
operators in a
heterotic distributed computing system.
Another interesting design goal is to help to teach basics of
intermediate level computer science quickly
and invite students to mathematical programmers' world.
It is a fun to learn computer science with sm1!
Here are some topics that I tried in class rooms.
These are intermediate level topics that should be learned after
students have learned elementary programming by languages like
Pascal, C, C++, Java, Basic, Mathematica, Maple, Macaulay 2, etc.