pretrained language models, programming education, automated feedback generation, idiomatic code, code quality, fine-tuning, evaluation, programming skills