Programming Models In Algorithms