I created a library for Arduino, called qitlib, which is intended to be used for educational purposes. It comes with (atm incomplete) short tutorials and a quick start for those who arent completely new to programming.
Its a work in progress. I want it to stay small in code size.
It makes it easier to program sensors and components using templates and object orientation. It also includes a timer server and a basic way to manage states.
To understand it better you could look at the getting started document.
Basically they are a bunch of objects that automate functionality like button presses, timers, potmeters etc.