Generative Al (GenAI) tools like GitHub Copilot, Codeium, Codex, Claude and GPT are rapidly changing how programming is taught and learnt. These tools can solve software assignments with remarkable accuracy. GPT-4 achieved top-tier performance on several standardized exams, far surpassing earlier models such as Codex on many coding and reasoning benchmarks.
With such capabilities, researchers are shifting from asking, "Should we teach with Al?" to "How do we teach with Al?"
These results spearhead transformation in teaching fundamental programming courses. Integrating GenAI tools, help students tackle complex programming tasks while developing critical thinking and problem-solving skills.
Teaching programming with GenAI involves fostering a mix of traditional and Al-specific skills. The workflow when writing software with Copilot is:

Function Design Cycle that systematically guides students through the stages of problem decomposition, prompt engineering, LLM-assisted code generation, code selection, testing, and debugging. This iterative workflow operationalises the integration of Generative AI tools within foundational programming education, reinforcing both computational thinking and critical code verification competencies.
Writing software with GenAI applications. such as Copilot. needs to be approached differently to traditional programming tasks
The five foundational design principles governing LLM-integrated foundational programming, structured around the full spectrum of programming competencies, encompassing problem decomposition, code explanation, code writing, code tracing, code modification, code testing, and code debugging. The program systematically integrates debugging, testing, and problem decomposition as core programming competencies, ensuring that students develop a disciplined and structured approach to software development from the earliest stages of their academic training.

All programming classes use GitHub Copilot. The course includes with complex problem-solving tasks, creative coding assignments and open-ended problems allowing students to explore their interests while applying the skills they have learnt. The creative coding assignments covers the following areas:
These beginner-level creative coding assignments make programming enjoyable, interactive, and application-oriented while helping students build confidence in fundamental coding concepts through hands-on learning and experimentation.