Programming Assignment Optimization Methods For Engineers