At my website, http://www.vokabel.com, I use the concept that, just like a computer, we have memory readily available for tasks that require immediate processing (i.e. RAM). As well, we have a much larger store of memory available which has much longer access times. Language learners know the frustrations when trying to speak and not being able to pull up "that word" in time to add to a conversation. The vocabulary tests try to load words from deep memory into near memory for quicker recall through the repeated taking of the tests.
Have you ever heard someone say "I'm just not good at math"? This may be true, but I found that a different approach to learning math may help these people. In our day-to-day lives we tend to perform tasks inductively, that is, we walk around with a predetermined amount of knowledge and when a problem presents itself that cannot be dealt with using the knowledge that we have, we apply new tools or knowledge to our existing base to help deal with the issue. We don't, from scratch, try to deductively solve a problem. The "classic problem" approach helps those making the jump from high school algebra (who often only use the deductive approach) to university calculus by having students essentially memorize classic problems and proofs and then apply this new knowledge to new math problems that present themselves. Why this approach is not used earlier is unclear to me but I think it may help math learners at all levels.
I work in the Information Technology field where a common mantra is "learn by doing". It is very rare that someone will learn the syntax of a programming language and then go to work on building a big project. There are many other elements involved and it is usually best to replicate the "classic problem" approach used when learning mathematics than to reinvent the wheel. On the site, I've created pages that present a classic problem of building and publishing iOS (http://www.vokabel.com/app_prog2.html) and Android (http://www.vokabel.com/and_prog2.html) self-testing apps. In a future project, I hope to address the classic problem of accessing and serving data across the internet through web services.
Immanuel Kant, possibly the greatest of all epistemologists, divided knowledge that was hardwired into us such as logic, mathematics, and memory from knowledge that can only be obtained through intuition (i.e. an input, such as an idea, resonates with intuition which becomes knowledge). This mysterious entity, intuition, has been ascribed to the Holy Spirit, the Shekinah, universal unconscious, or the higher self, among others. Unfortunately this step of knowledge discernment against our own intuition is often skipped in the learning of disciplines such as the humanities and metaphysics. This is often exacerbated in universities by overloading the students with work and using teaching material such as video which leaves little time for discernment of the information that was just presented (unless the pause button is repeatedly pressed).
For the experimental sciences, we simply do not have enough hours in the day to replicate each experiment. We must therefore take the information at face value and assimilate it with our current knowledge base. This method of learning is often referred to as the Hegelian Dialectic where we combine an input (antithesis) with our current knowledge base (thesis) and come up with a new way of seeing things (synthesis). On the other hand for the physical sciences, the "classic problem" approach fits quite well.
Learning can be a rich experience that I am saddened to see seems to have lost a lot of its lustre in my lifetime. Hopefully by applying epistemological principles to the learning process we can make it more fun and enriching for everyone.