Metacognitive strategy patterns in AI-assisted programming: Differences across programming resilience levels | Synapse