Monthly Archives

2 Articles

Learning : How do we learn new words ?

Hello Everyone , Its been a while I made a blog post as I have been busy , but while I am preparing for GRE , I have noticed a lot of patterns as well as problems in learning new words .

I want to enumerate some of my observations below

1. Conceptual Models : Conceptual model is again borrowed from the design world , for more information you can read my previous blog post regarding (,d.c2I )

But We have conceptual models for every words that know in our brain , consider a simple word like apple , Try saying it one time , do you see a visual image ( conceptual model ) in your brain ? This basically provides evidence to my first observation . However , there are a lots of words for which we have hard time retrieving a good mental image , or perhaps we cant associate them with images .

2. We Strive for patterns in world , and words are no different , We naturally try to relate new words with ones we are already quite familiar with , a simple and obvious example is that , when my brain already knows the word audacity quite well and I havnt used or heard the word audacious , I know by my natural instincts that it is related to audacity.

3. STM ( Short Term Memory ) is quite limited and not be stressed too much , We have a capacity of introducing new words to our brain everyday which varies from a person to person , but we shouldnt put too much load on STM.
storing words on LTM ( Long Term Memory ) requires quite effort , but once done is quite effective , This can be achieved if you learn a word thoroughly , see various examples associated with it , learn it to use in different contexts.

4. It can be very useful to associate few chars of word to something we can extract meaning of the word from ,
for example I came across this word bucolic, which I havnt heard but when I read its meaning which is relating to country , village , rural area. I somehow associated bu prefix of word with the word buffalo , and It basically created an association of the following kind

bucolic -> buffalo -> rural area, village

So we see that these forced mappings can actually be very useful .

There is one more design concept hidden in this observation , Knowledge from the word and knowledge from the head .
Knowledge in head requires a lot of effort in extraction , whereas knowledge from external world is relatively easy to identify , but both have advantages and limitations , the ideal case is carefully making use of them both , in the above example we identify bu prefix from external world and then retrieve buffalo from brain and then further retrieve true meaning of the word .

5. We learn by actually doing things ( Constructionism ) : This might seem very simple , but is very powerful , if you write words manually youself by your hand , you are in a way using this principle, It can be used in a more powerful way by creating a virtual simulating environment , lets say you are learning a new word , if we can design a system that can give us a task/activity to do and in that activity we mimic the true meaning of the newly seen word , and then we use it in a sentence . Its hard to actually find a suitable example here , I might update this post soon

6. We learn more quickly and can have a better conceptual models if we can associate images that capture the meaning of the word partially or completely .
Maybe if we are learning the word swiftly , and we are provided with a speedy car moving on a street , we can get a better meaning.

7. Frequent rehearsal of newly learnt words is very essential to save the words permanently in LTM.

Naive String Matching algo implementation in c++

using namespace std;

#include <iostream>
#include <conio.h>
#include <stdio.h>

string T = "this is awesome";
string M = "is";

int match() {
int flag=0;

for(int i=0; i <T.length() -M.length(); i++) {
if (T[i] == M[0]) {
flag =1;
for (int j=1; j<M.length(); j++) {

if(T[(i+j)] == M[j]) {

// flag=0;

else {
cout << "failure";
return -1;

cout << "success , value of shift is : " << i ;

if (flag == 0) {

cout << "failure";


int main() {

return 0;

< }