
From Hand-Coded to AI-Co-Created: Comparing Traditional and AI-Enhanced Programming Paradigms
This course explores how software development is changing as AI-assisted coding tools become mainstream. You will compare traditional programming workflows with emerging AI-enhanced paradigms, analyze their trade-offs, and learn how to reason about quality, security, and responsibility when humans and AI co-create code.
Course Content
8 modules · 2h total
Mapping the Landscape: Traditional vs AI-Enhanced Programming
Introduce the core idea of programming paradigms and contrast classic human-centric coding with today’s AI-assisted and agentic approaches.
Traditional Programming Paradigms and Workflows
Review core traditional paradigms (procedural, object-oriented, functional) and the standard tools and practices that shaped pre-AI development.
AI-Assisted Programming: Copilots, Code Generators, and Intelligent IDEs
Examine the current generation of AI coding assistants and how they embed into editors, terminals, and pipelines to augment traditional programming.
From Copilot to Co-Creator: AI-Enhanced Programming Paradigms
Explore how AI shifts programming from writing code line-by-line to steering systems, designing prompts, and orchestrating agents—creating new paradigms like AI-native and agent-first development.
Human–AI Collaboration Patterns in Coding
Analyze concrete collaboration patterns between developers and AI, including when to rely on AI, when to override it, and how to combine human strengths with machine strengths.
Quality, Security, and Trust: Comparing Risks in Traditional and AI-Generated Code
Compare how defects and vulnerabilities arise in traditional code versus AI-generated code, and examine emerging evidence on security, verification debt, and trust in AI outputs.
Verification, Testing, and Governance in AI-Enhanced Development
Focus on how testing, code review, and governance practices must evolve to safely incorporate AI-generated code into production systems.
Ethics, Responsibility, and the Future of Programming Work
Examine the broader ethical, professional, and societal implications of moving from traditional to AI-enhanced programming paradigms, including skills, jobs, and accountability.
Read the Textbook
Read every chapter for free, right here in your browser.
In software development, two ideas help us map the landscape: Programming paradigm A programming paradigm is a style or model of thinking about and structuring programs. It influences: How you decompose problems (e.g., objects vs functions vs data flows) How you represent state and behavior How you reason about correctness and performance
Classic examples (which you may already know): Imperative (e.g., C, Python) – step-by-step instructions Object-oriented (e.g., Java, C#) – objects with state and behavior Functional (e.g., Haskell, modern JavaScript) – pure functions and immutability
Today, we also talk about AI-related paradigms, such as: AI-assisted programming – humans still drive, AI copilots help Agentic / AI-native programming – systems of AI agents coordinate tasks with less direct human control Programming workflow (development lifecycle) A workflow is the sequence of activities developers follow to turn an idea into running software. It usually spans: Understanding requirements Designing a solution Writing and organizing code Testing and debugging Deploying and maintaining the system
Study Flashcards
Key concepts from this course as flashcard pairs.
Mapping the Landscape: Traditional vs AI-Enhanced Programming
Programming Paradigm
A style or model of structuring and reasoning about programs (e.g., imperative, object-oriented, functional, AI-assisted, agentic). It shapes how you decompose problems and organize code.
Development Workflow / Lifecycle
The ordered sequence of activities for building software, commonly including planning, design, implementation, testing, deployment, and maintenance.
AI-Assisted Programming
A paradigm where humans remain in control of design and decisions, while AI tools (copilots, chat assistants) help with tasks like code generation, testing, and documentation.
AI Agent (in Software Development)
An AI system that can take a goal (e.g., modify a codebase), plan steps, use tools (editor, tests, git), execute changes, and adjust based on feedback, usually under human oversight.
Agent-First / AI-Native Environment
A development environment designed around AI agents as first-class participants, where developers give high-level goals and review agent-generated changes (e.g., pull requests).
Hallucination (in Code Generation)
When an AI model produces code or explanations that look plausible but are factually or logically incorrect, potentially introducing bugs or security issues.
Traditional Programming Paradigms and Workflows
Procedural Programming
A paradigm where programs are organized as sequences of procedures (functions) that operate on shared data, emphasizing explicit control flow and step‑by‑step instructions.
Object‑Oriented Programming (OOP)
A paradigm that organizes code around objects which combine state (fields) and behavior (methods), using concepts like classes, encapsulation, inheritance, and polymorphism.
Functional Programming (FP)
A paradigm that emphasizes pure functions, immutability, and function composition, avoiding mutable state and side effects where possible.
IDE (Integrated Development Environment)
A software application that provides tools for coding (editor, build integration, debugger, etc.) in a single interface; historically used for manual coding without AI assistance.
Version Control
A system (e.g., Git) for tracking changes to code, enabling collaboration, branching, merging, and history inspection.
Code Review
A process where developers inspect each other’s code changes (e.g., via pull requests) to find defects, improve design, and share knowledge; traditionally done entirely by humans.
+4 more flashcards
AI-Assisted Programming: Copilots, Code Generators, and Intelligent IDEs
AI coding assistant / copilot
A tool embedded into editors, terminals, or pipelines that uses large language models to suggest, generate, or explain code and related artifacts (tests, docs, configs) based on code and natural language context.
Context-aware completion
Code suggestions that use surrounding code, project files, and sometimes repository-wide information to predict the most likely next tokens or lines, rather than just simple syntax-based autocomplete.
Natural-language-to-code
The capability of an AI model to transform human language prompts (e.g., "write a function that...") into executable code in a target language or framework.
Hallucinated API
An invented function, method, class, or configuration option suggested by an AI model that does not actually exist in the libraries or codebase being used.
Intelligent IDE
An integrated development environment that tightly embeds AI models for inline suggestions, chat-based assistance, code understanding, refactoring, and integration with project-wide context.
Context window
The maximum amount of text (code + natural language) an AI model can consider at once when generating a response; limits how much of a repository or conversation the model can 'see' simultaneously.
+1 more flashcards
From Copilot to Co-Creator: AI-Enhanced Programming Paradigms
Prompt-driven ("vibe") development
A style of AI-assisted programming where you describe desired outcomes informally and at a high level, often focusing on style or general behavior rather than precise requirements.
Specification-driven (instruction-driven) development
An AI-enhanced programming style where you provide explicit, structured instructions (inputs, outputs, constraints, edge cases) so the AI generates more predictable and testable code.
AI-native development environment
A coding environment designed around AI from the ground up, where chat, code, project context, and AI actions are deeply integrated rather than added as a plugin.
Agent-first paradigm
A development approach where AI agents that can plan, call tools, and modify code are treated as first-class collaborators, with humans defining goals, constraints, and oversight.
Low-code / no-code AI builder
A platform that lets users build applications using visual tools and natural language instructions, with AI generating code or workflows behind the scenes, trading control for speed and abstraction.
Developer as orchestrator
A modern role where developers focus on problem framing, task decomposition, tool/agent coordination, and verification, rather than hand-writing every line of code.
Human–AI Collaboration Patterns in Coding
AI-as-autocomplete
A collaboration pattern where AI suggests small, inline code completions as you type, mainly for boilerplate and common idioms. You accept or reject suggestions line by line.
AI-as-pair-programmer
A conversational collaboration pattern where AI helps you design, explain, debug, and refactor code through back-and-forth prompts and feedback, similar to working with a human peer.
AI-as-agent
A more autonomous pattern where AI can perform multi-step tasks like editing many files, running tools, or orchestrating commands under your constraints and review.
Iterative prompting and refinement loop
A cycle of (1) framing a clear task, (2) getting an AI draft, (3) running/inspecting it, (4) giving targeted feedback, and (5) repeating until the result is acceptable and understood.
Task suitability
Evaluating whether a coding task is appropriate for AI assistance based on its nature (boilerplate vs domain logic), risk level, and ease of verification.
Cognitive load in AI-assisted coding
The mental effort required to understand, evaluate, and integrate AI-generated code, including the trade-off between reduced boilerplate work and increased need for critical review.
Quality, Security, and Trust: Comparing Risks in Traditional and AI-Generated Code
Verification debt
The accumulated gap between the volume of AI-generated (or AI-modified) code and the amount of careful human verification (reviews, testing, security analysis) actually performed on it.
Automation bias (in coding)
The tendency of developers to over-trust AI suggestions, assuming they are correct or standard practice, and therefore reviewing them less critically than human-written code.
Comparative risk profile
A structured comparison of how traditional and AI-generated code differ across dimensions like security, maintainability, traceability, and speed of development.
License risk (with AI tools)
The potential legal and compliance issues that arise when AI-generated code reproduces or is influenced by code under restrictive licenses (e.g., GPL), potentially conflicting with a project’s licensing or organizational policies.
Supply-chain / dependency risk
The risk introduced when AI suggests third-party libraries or packages that may be outdated, vulnerable, poorly maintained, or license-incompatible, affecting the security and compliance of your project.
Verification, Testing, and Governance in AI-Enhanced Development
AI-generated code
Code whose content was produced wholly or partly by an AI system (e.g., code assistant or generative model), rather than being written manually by a human developer.
Verification
The process of checking that software correctly implements specified behavior, often using tests, static analysis, and code review.
Governance (in AI-enhanced development)
The policies, processes, and controls that define how AI tools are used in development, who approves AI-generated changes, and how risks are monitored and managed.
Traceability
The ability to track the origin and evolution of code and decisions (e.g., knowing which parts were AI-generated, who reviewed them, and which tests cover them).
Static analysis
Automated examination of code without executing it, used to detect bugs, security issues, style violations, and maintainability problems.
AI-assisted testing
Using AI tools to generate or suggest test cases, test data, or test structures, which are then reviewed and refined by humans.
Ethics, Responsibility, and the Future of Programming Work
Responsibility vs Accountability
**Responsibility**: The duties and tasks someone is expected to perform (e.g., reviewing AI-generated code). **Accountability**: Who is ultimately answerable for outcomes and consequences (e.g., an organization being liable for harm caused by its software).
Verification Debt
The accumulated burden of **extra verification and validation work** created when you accept AI-generated code more quickly than you can thoroughly review and test it.
Data Provenance (in code models)
Information about **where training data came from** (sources, licenses, collection methods). Crucial for assessing legal, ethical, and security implications of a model.
Democratization of Software Creation
The process by which more people (including non-experts) gain the ability to build software, often through tools like AI assistants, low-code platforms, and natural-language interfaces.
Platform Lock-In
A situation where it becomes **costly or difficult to switch** away from a specific vendor or platform because your workflows, data, or code heavily depend on it.
Autonomous Coding Agent
An AI system that can **take actions in a codebase** (editing files, running tests, opening pull requests) with some level of autonomy, beyond just suggesting code snippets.