CoderAgent: Simulating Student Behavior for Personalized Programming Learning with Large Language Models