basic algorithms such as linear list, tree, dynamic programming