LESSON 4

Computers You Can Talk to

Developed by Carl T. Bergstrom and Jevin D. West

Photo: Carl Bergstrom

Photo: Carl Bergstrom

On January 24th, 1984, Apple Computer released a machine that would change the way that people interact with computers.

Still of zombie-like workers watching a face on a blue screen.

Ridley Scott directed Apple's famous "1984" commercial

Ridley Scott directed Apple's famous "1984" commercial

Publicity shot of Apple's original 128K Mac.

Apple Computer (1984)

Apple Computer (1984)

The Macintosh 128K introduced both the mouse and the graphical user interface (GUI) to mass-market computing. 

These developments shattered what was then a steep learning curve for computer users.

Before 1984, humans had to communicate with computers in ways that were easy for computers. Programmers and computer users had to adapt their thinking to the machines.

To tell the computer what to do, you had type instructions into a text shell.

Users struggled to memorize scores of arcane command and cryptic option flags.

And to keep track of the files on their computers, they had to learn their way around a file tree that there was no way to see.

Text from a UNIX shell, logging in, listing the current directory, and looking at the file ssh_config

A UNIX text shell

A UNIX text shell

The Macintosh 128K reversed that script, allowing humans to communicate with computers in ways that were easy for humans.

Giving the computer instructions became as simple as navigating intuitive menus using a mouse, and filling out well-prompted dialog boxes.

And users could now find files by navigating a metaphorical desktop, replete with file drawers, folders, and documents.

The devices we all use today still rely on these basic design metaphors.

Black-and-white computer desktop with two folders, trash can, and top menu bar

The early MacOS desktop

The early MacOS desktop

Large Language Models may propel a similar revolution. 

This technology solves one of the oldest, most challenging problems in computer science: creating general-purpose programs that people can talk to in everyday language. 

Let me explain with a story.

My first experience with a home computer took place in 1979. I was eight years old.

Through a school loan program, my friend Nicholas had borrowed a Commodore PET computer for the weekend. First thing Saturday morning I went to his house to check it out.

Nicholas suggested that we write a game together.

"What do you want to write?"

I was sick of losing quarters at the arcade:

"Let's write Space Invaders, but the aliens don't shoot back!"

Nicolas looked at me with a mixture of exasperation and pity. He tried to explain that this wasn’t the sort of program you could just sit down and write in BASIC, but I didn’t understand.

Why can’t you just tell it to play space invaders but turn off the shooting?

What I didn't get at the time was that you couldn't just talk to a computer in natural language. You had to learn to speak its language—and that was really hard.

And for the subsequent forty-some years of my life, that has just been how things are.

Photo of the PET computer on a white background

Wikimedia Commons

Wikimedia Commons

Screen capture from Atari's original space invaders arcade game

Atari

Atari

I had to wait nearly half a century, but with the help of an LLM, I can finally have my game of Space Invaders That Don't Shoot Back.

I went to ChatGPT and explained, in plain English, what I wanted.

ChatGPT session: I've always wanted to be able to play space invaders where they don't shoot back and destroy my ship.  Write Python code for a game of space invaders where the aliens doesn't shoot back.

ChatGPT query 1/3/2025

ChatGPT query 1/3/2025

ChatGPT parses my request, and writes computer code for me.

With a bit of prompting, it even creates images of the space invaders and the player's rocket.

ChatGPT session: Here is a simple Python implementation of a Space Invaders-like game using the pygame library. In this version, the aliens don't shoot back, allowing the player to focus on destroying the aliens. Prerequisites:  Make sure you have pygame installed. You can install it using:  pip install pygame  Code:  import pygame import random import sys  # Initialize pygame pygame.init()  # Screen dimensions SCREEN_WIDTH = 800 SCREEN_HEIGHT = 600  # Colors BLACK = (0, 0, 0) WHITE = (255, 255, 255) RED = (255, 0, 0) GREEN = (0, 255, 0) BLUE = (0, 0, 255)

ChatGPT query 1/3/2025

ChatGPT query 1/3/2025

Here's video of us playing the game that ChatGPT wrote for me. Press ►.

PRINCIPLE
Large language models make computing radically more accessible, by allowing untrained users to converse with the machine in their own natural language. Look for places where that ability solves real problems.

DISCUSSION
Large language models make it possible for us to communicate with computers in our natural language instead of learning languages that work for them. What does this allow you to do, right now, you couldn’t do before? What could it make possible in the relatively near future?

Photo: Carl Bergstrom

Photo: Carl Bergstrom

VIDEO

Coming Soon.