🤖

AI-Driven Software Paradigms

Jun 19, 2025

Overview

The lecture discusses the evolution of software programming paradigms in the era of AI, focusing on Large Language Models (LLMs), their impacts on software development, new opportunities, and how students can adapt to and leverage these changes.

Evolution of Software Paradigms

  • Software 1.0 is traditional code written by humans for computers.
  • Software 2.0 uses neural networks where data and weights, not code, define functionality.
  • Software 3.0 centers on LLMs, programmed via English prompts instead of code.
  • GitHub is to Software 1.0 what HuggingFace and Model Atlas are to Software 2.0.

LLMs as Utilities and Operating Systems

  • LLMs resemble utilities (like electricity) in their provisioning and reliability demands.
  • LLM labs require significant capital (capex/opex) and provide intelligence via metered APIs.
  • LLMs are also akin to operating systems, with closed and open-source ecosystems emerging.
  • Current LLM usage mirrors mainframe time-sharing of the 1960s, with personal LLM computing still emerging.

LLM Psychology and Limitations

  • LLMs have vast, encyclopedic memory but are prone to hallucinations and errors.
  • Their "working memory" is limited to context windows and not persistent knowledge gain.
  • Prone to prompt injection, data leaks, and other security issues.
  • Users must manage both LLM strengths and their cognitive deficits.

Partial Autonomy Apps and Human-AI Collaboration

  • Apps like Cursor and Perplexity exemplify partial autonomy: humans supervise, LLMs generate.
  • Key features: LLM-managed context, multi-model orchestration, custom GUIs for verification, autonomy sliders for user control.
  • Fast human verification and keeping "AI on a leash" are crucial for effective use.

Best Practices for Working with LLMs

  • Make prompts specific and concrete to improve output and reduce verification loops.
  • Use GUIs to speed up verification and enhance human-AI collaboration.
  • Incremental, concrete work with LLMs is more effective than large, autonomous actions.

Programming in Natural Language & “Vibe Coding”

  • LLMs democratize programming—anyone who speaks English can now “program.”
  • “Vibe coding” is the practice of building software by iteratively prompting LLMs, often without traditional coding expertise.
  • Launching products involves more than coding; deployment and integration remain manual and complex.

Building for Agents & LLM-Friendly Infrastructure

  • Agents (LLMs) now interact directly with digital infrastructure.
  • Providing LLM-friendly documentation (in markdown, using command-line equivalents, not click instructions) enhances agent usability.
  • Tools exist to optimize data and documentation ingestion by LLMs.

Key Terms & Definitions

  • Software 1.0 — Traditional code-based software written by humans.
  • Software 2.0 — Software defined by neural network parameters instead of code.
  • Software 3.0 — LLM-driven software programmed with natural language prompts.
  • LLM (Large Language Model) — AI models that process and generate human language.
  • Autonomy Slider — Controls the level of independence given to an AI system in an application.
  • Vibe Coding — Building applications by exploring and prompting LLMs without deep coding knowledge.

Action Items / Next Steps

  • Learn to work fluently across Software 1.0, 2.0, and 3.0 paradigms.
  • Experiment with LLM tools and partial autonomy workflows (e.g., Cursor, Perplexity).
  • Practice writing precise prompts and using GUIs for audit and verification.
  • Begin thinking about adapting your digital products/documentation for both humans and LLM agents.