today I want to document perceptron learning algorithm for classifications

Below goes following steps for teaching perceptron.

Add one more column with value to 1 to each input row.

Pick training cases according to some rules that gives you guarantee that every training case will be picked

if output is correct, leave weights unchanged

if ouput is 0 but 1 is expected then add input vector to weights of perceptron

if output is 1 but 0 is expected then subtract input vector from weights of perceptron

This simple algorithm will find you a set of weights for right classification of your vector space if such set of weights exists. It will depend only from correctness of features that you use.