A systematic evaluation of large language models for generating programming code