Difficulty aware programming knowledge tracing via large language models | Synapse