A legtöbb robotot úgy programozzák, hogy vagy bemutató alapján, azt megismételve sajátítsa el egy feladat kivitelezését, vagy mozgástervező technikákkal, például optimalizálással és mintavétellel oldja meg azt. A programozónak explicit módon meg kell határoznia a feladat céljait és korlátait.
Mindkettőnek megvannak a hátulütői: az első esetben a tanultakat nehéz más helyzetekre alkalmazni, mozgástervezésnél pedig időigényes alkalmazkodni a megváltozott körülményekhez, és komoly kézi programozás szükséges hozzá.
Az MIT C-LEARN rendszerét arra találták ki, hogy a két technika összekapcsolásával programozni nem tudó személyek különféle faladatokat taníthassanak meg robotoknak. Egyszerű demókat mutatnak a gépeknek, hogy hogyan hajtsanak végre dolgokat, miként manipuláljanak tárgyakat. Az elsajátított tudást a robotok automatikusan át tudják adni más robotoknak, amelyek másként is kivitelezhetik az adott feladatot.
A felhasználó először alapismereteket szolgáltat a gépeknek arról, hogy hogyan érjen el és fogjon meg különféle tárgyakat. Mindegyiknél mások a megkötések. Ezt követően az operátor háromdimenziós interfésszel egyszerű demonstráció keretében ismerteti meg az „alapkulcs” mozgások sorozatára épülő feladatot. Az ismeretbázisban különféle helyzetekre alkalmazza, különféle helyzetekkel kapcsolja össze ezeket. A robot így lesz képes mozgásterveket javasolni, amelyeket az operátor vagy jóváhagy, vagy, ha kell, megváltoztat.