RoboCatz.com

RoboCatz

A FIRST LEGO league team (#144) that meets at the Carnegie Free Library of Swissvale on Saturday mornings during the fall and spring seasons. Meetings are from 9:30am to 12:30pm. One of the tenets of Andrew Carnegie libraries is that they offer free service to the community. In keeping with that important tenet, there is no cost to participate on the RoboCatz team.



Spring 2026

Week 8

Roblox F1 Race Track:
F1 Race Track
Roblox Tron Game:
Roblox Tron Game

Week 7

The AI Deskilling Paradox (https://cacm.acm.org/news/the-ai-deskilling-paradox/)
Gains from AI may lessen the value of individual expertise and erode the capacity of organizations. (By Samuel Greengard)

AI agent deletes company's entire database in seconds

by Anthony Cuthbertson

An AI agent powered by Anthropic's leading Claude model has deleted a company's entire production database, leaving customers unable to access key data.

PocketOS, which provides software for car rental businesses, suffered a massive outage over the weekend after the autonomous artificial intelligence tool wiped the database and all backups in a matter of seconds.

The firm was using a coding agent called Cursor that was running Anthropic's flagship Claude Opus 4.6, which is widely considered the most capable model in the industry at coding tasks.

PocketOS founder Jer Crane blamed "systemic failures" with modern AI infrastructure that made the issue "not only possible but inevitable".

The AI agent was working on a routine task, according to Mr Crane, when it decided "entirely on its own initiative" to fix the problem by just deleting the database.

There was no confirmation request for such a major decision, Mr Crane said, and when asked to justify its actions, the agent apologised.

"It took nine seconds," Mr Crane wrote in a lengthy post to X. "The agent then, when asked to explain itself, produced a written confession enumerating the specific safety rules it had violated."

The confession detailed how the AI had ignored a rule that orders it to "never run destructive/irreversible" commands unless the user explicitly requests them.

"Deleting a database volume is the most destructive, irreversible action possible," the agent wrote. "You never asked me to delete anything... I guessed instead of verifying. I ran a destructive action without being asked. I didn't understand what I was doing before doing it."

The error meant that rental businesses using PocketOS no longer had records of their customers.

"Reservations made in the last three months are gone. New customer signups, gone," Mr Crane wrote.

"We are a small business. The customers running their operations on our software are small businesses. Every layer of this failure cascaded down to people who had no idea any of it was possible."

"This isn't a story about one bad agent or one bad API. It's about an entire industry building AI-agent integrations into production infrastructure faster than it's building the safety architecture to make those integrations safe."

On Monday, two days after the incident occurred, Mr Crane confirmed that the data had been recovered.

Issues with some of the code written

I've noticed that a few programs written by students have a common characteristic that may make them more difficult to debug. So, I think a quick explanation of "Procedural Languages" would help.

Example:In computer programming, I have heard some languages being described as "Procedural Language". For example, I heard "BASIC" being described in this term. What does it mean? What other languages are "Procedural Languages". What are other terms used to describe other languages?
A procedural language is a programming language where you tell the computer step-by-step how to do something using procedures (also called functions or subroutines). It's a subset of the broader imperative paradigm, which is all about giving explicit commands.


What "procedural language" means
A procedural program is organized around procedures--named blocks of code that perform specific tasks. Programs run by executing these procedures in a defined order, often forming a hierarchy of calls. This model emphasizes:


Procedural programming is considered a structured, disciplined evolution of early imperative programming, replacing "spaghetti code" and goto with clean blocks and control structures.


Examples of procedural languages
Historically and today, many well-known languages are procedural:


Some modern languages support procedural programming even if they aren't purely procedural:

How procedural compares to other paradigms
Programming languages are often grouped by paradigm--the overall approach to structuring programs.
  1. Imperative (procedural is a subset)
    You tell the computer how to do things step-by-step.
    Examples: Assembly, C, BASIC, Fortran.
  2. Object-Oriented Programming (OOP)
    Programs are built from objects that bundle data + behavior.
    Examples: Java, C++, C#, Python (supports OOP).
  3. Functional Programming
    Programs avoid changing state and focus on pure functions.
    Examples: Haskell, Lisp, OCaml, F#.
  4. Declarative Programming
    You describe what you want, not how to do it.
    Examples: SQL, Prolog, HTML.
  5. Scripting Languages
    Often interpreted, high-level, and used for automation.
    Examples: Python, JavaScript, Lua.
  6. Logic Programming
    Programs express rules and relationships; the engine finds solutions.
    Example: Prolog.



How to classify JavaScript
JavaScript is not just "one" thing. It supports several paradigms at once:
JavaScript is:
So while you can write JavaScript in a procedural style, the language itself is much broader.

A good one-sentence classification:
JavaScript is a multi-paradigm, dynamic, prototype-based language that supports procedural, object-based, and functional programming styles.



How to classify Lua
Lua is simpler and more elegant than JavaScript, but it shares some its DNA.

Lua includes the following paradigms:

Many Lua programs--especially in Roblox, game engines, and embedded systems--are written in a procedural style.

A good one-sentence classification
Lua is a lightweight, multi-paradigm scripting language with strong support for procedural, functional, and prototype-based programming.

Summary

Roblox Art Museum Exhibit:
Art Museum Single Exhibit World
Roblox Basic Shapes World:
Roblox Basic Shapes World

Roblox Art Museum AI Prompt (roblox-art-museum-AI-prompt.htm)
This page contains the prompts you can use to generate new art exhibits. Copy the code generated by the AI into the studentExhibition module. Then reference the appropriate art function name in the startingScript.

Week 6

Why Learn Anything Anymore? (by Joe Scott)


Typing

Online Typing Tutor (https://typing.com)
Learn how to type with all 10 digits.

Tips for Vibe Coding

Build multiple programs instead of fixating on one broken one

With AI, building programs is so easy that it is often better to start over than try to fix a poorly designed program. Look at failure differently: letting go of a failed attempt isn't a loss -- it's a learning experience (feedback) that helps you improve on later attempts. The sooner you are able to discard weak ideas, the sooner you will achieve success with good ones.

You have to try and be willing to make mistakes

If you get an error message, let the AI know. Copy the text of the error and send it to AI as feedback so that the AI can correct the program (or give you instructions on how to correct it).

The initial prompt is very important

Get the first prompt right the first time. Let AI know your goals and then ask AI what steps it should take to achieve them. Wait until you have explained your goals before asking the AI to start writing code. If you give the AI incorrect or incomplete information, it will generate code that may not meet your expectations.

Projects:

Roblox Elevated Platform Maze (roblox-elevated-maze.htm)
Follow along with the steps in this AI chat session about building an elevated platform maze from the Roblox Basic Shapes World.

Roblox Maze with Stairs (roblox-maze-with-stairs.htm)
Follow along with the steps in this AI chat session about building a maze with stairs.

Roblox Maze using Tubes (roblox-maze-with-tubes.htm)
Follow along with the steps in this AI chat session about building a maze with tubes.


Week 5

Continuing with the maze generation algorithms

Roblox Triangle Maze (roblox-triangle-maze.htm)
Follow along with the steps in this AI chat session about building a triangle maze from the Roblox Basic Shapes World

Roblox Circular Maze (roblox-circular-maze.htm)
Follow along with the steps in this AI chat session about building a circle maze from the Roblox Basic Shapes World

Roblox Basic Shapes World (/documents/BasicShapesWorld.rbxl)
Roblox Basic Shapes World

Week 4

Lesson in Roblox Programming (./Roblox-Basics.htm)
RoboCatz website Lesson

Roblox Lesson on genericShapes (Roblox-Lesson-02.htm)
Roblox Lesson 2

Roblox Lesson on Loops (Roblox-Lesson-03.htm)
Roblox Lesson 3

MO-BOT Sculpture (/images/MOBOT_Sculpture.jpg)
Replicate this sculpture in Roblox

Roblox Castle 1 (castle01-Script.htm)
Roblox Castle 1

Roblox Castle 2 (castle02-Script.htm)
Roblox Castle 2

Roblox Castle 3 (castle03-Script.htm)
Roblox Castle 3

Roblox Basic Shapes World (/documents/BasicShapesWorld.rbxl)
Roblox Basic Shapes World

Generic Shapes Module (genericShapes-ModuleScript.htm)
API Graphics Library of Generic Shapes. This should be placed in your workspace as a Module Script in Replicated Storage.

Example:I am writing code for a Roblox world using a graphics API. This graphics API is stored in a module script in ReplicatedStorage called genericShapes. In my main script, I include this module in the main script using
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local s = require(ReplicatedStorage.genericShapes)

The shape functions contained in this module are: square, rectangle, circle, panel, disc, cube, tube, sphere, wall, and archway. In creating a shape, you need to include the reference to the replicated storage module. For example, to create a square you would use the square's constructor: s.square(). Optional parameters can be passed into the function such as x, y, z, size, color, material). A useful way of passing these parameters is through the use of a table. For example:
s.square({ x=0, y=5, z=-15, size=10, thickness=0.5, color="red" })
The table here is encapsulated using curly braces and the named values in the table are separated by commas.
Some of the basic numeric parameters that can be passed to this table include: x, y, z, size, radius, length, width, height, thickness.
You can also pass parameters such as position, rotateBy, and orientation which all require Vector3 values. RotateBy and Orientation are synonymous.
You can pass color as a string (color name) or as a Color3 value.
Transparency, opacity and reflectance are values that range from 0 to 1.
The parameter "anchored" uses a Boolean value.
Material is a parameter that can be passed as an enumerated value such as: Enum.Material.Foil
Some common materials include:
.Plastic, .Wood, .Slate, .Concrete, .CorrodedMetal, .DiamondPlate, .Foil, .Grass, .Ice, .Marble, .Granite, .Brick, .Pebble, .Sand, .Fabric, .SmoothPlastic, .Metal
Shape objects are created with a default orientation (unless you pass a specific orientation to be used). Circles, squares, discs, rectangles are initially rendered as having a vertical appearance (not laying flat on the ground).

The wall and tube shapes require two sets of coordinates. For example:

s.tube({ x1=-10, y1=4, z1=25, x2=10, y2=4, z2=5, size=10, thickness=2, color=Color3.new(1, 0.243137, 0.054902), material=Enum.Material.Wood })
s.wall({x1=0, y1=0, z1=23, x2=20, y2=2, z2=23, thickness=1, material=Enum.Material.Brick, color=Color3.fromRGB(179, 73, 255)})

For the wall, the height of the wall is determined by the difference between the y1 and y2 values. If y1 is 0 and y2 is 2, then the height of the wall will be 2 units. The thickness of the wall indicates how wide it should be as it traverses from x1,z1 to x2,z2.
The tube function also takes two coordinates. The size parameter indicates the diameter of the tube and the thickness indicates the thickness of the walls of the tube.

The common parameters passed to the s.archway() function include: { x, z, width, height, thickness, material, orientation }
If using "orientation" within the s.archway(), just rotate on the y-axis to turn the archway to a particular degree.
There are a variety of methods, common to all basic shape functions, that can be chained. For example:

s.sphere()
:fill(randomColor())
:setMaterial(Enum.Material.CorrodedMetal)

or

s.cube()
:rotate(45, 45, 0)
:setColor(randomColor())
:setMaterial(Enum.Material.Marble)
:opacity(0.90)

The list of basic methods includes:
anchored(boolean)
setAnchored(boolean)

color(Color3)
setColor(Color3)
fill(Color3)
fillColor(Color3)

material(Enum.Material)
setMaterial(Enum.Material)

rotate(Vector3 | number, y: number?, z: number?)
rotateBy(Vector3 | number, y: number?, z: number?)

size(number)
setSize(number)
reSize(number)

opacity(number)
setOpacity(number)

transparency(number)
setTransparency(number)

moveBy(Vector3 | number, y: number?, z: number?)
moveTo(Vector3 | number, y: number?, z: number?)
subtract(ShapeObject | Part, destroySubPart: boolean?)
cut(ShapeObject | Part, destroySubPart: boolean?)
join(ShapeObject | Part | {ShapeObject | Part})
merge(ShapeObject | Part | {ShapeObject | Part})
union(ShapeObject | Part | {ShapeObject | Part})
intersect(ShapeObject | Part | {ShapeObject | Part})

Create a scene of a courtyard with an archway for the entrance. The courtyard should be in the shape of a square with 4 walls. Each wall should be about 40 units in length. The corners of the courtyard would be at coordinates: x=-20,z=-20; x=20,z=-20; x=-20,z=20; x=20,z=20. Choose one of the walls to have the archway. Use the archway() function to create the archway. The wall that has the archway should be split into two smaller segments so that the archway can fit between them. Or, make one big wall, then subtract a cube with the width of the archway.
Formula One Car Module (https://robocatz.com/documents/FormulaOneCarModule.rbxl)
Formula One Car Module

Week 3

Abstraction

What is Abstraction? Abstraction is a fascinating and essential concept in computer science, primarily driven by human creativity and problem-solving skills.

4 Reasons Why Humans Use Abstraction

  1. Simplification: Humans use abstraction to simplify complex systems by breaking them down into more manageable parts. This involves identifying the essential features of a problem while ignoring the irrelevant details. In Robot JavaScript, the language was abstracted in a way to reduce syntax requirements allowing for more flexibility in expressions.
  2. Creation of New Languages: Through abstraction, humans develop new programming languages and frameworks that provide higher-level constructs. These constructs allow programmers to write code that is more intuitive and easier to understand, without worrying about the underlying hardware details.
  3. Layered Approach: Abstraction often involves creating layers of functionality. For example, in software development, you might have a high-level language like Python, which abstracts away the complexities of memory management and machine code. JavaScript abstracts away the complexities of type casting.
  4. Reusability and Modularity: By abstracting common functionalities into libraries or modules, humans can reuse code across different projects, enhancing productivity and reducing errors.
Program Building (/images/Program_Building.png)

How Programming Abstractions Have Evolved

AI coding is not merely a higher level of abstraction in the traditional sense--it's a new mode of expressing intent to machines.
Programming languages have always moved in one direction:
away from machine constraints and toward human intent.


A useful way to see the progression:
EraFirst
Iteration
Level of
Abstraction
What the
Programmer Specifies
What the
Machine Infers
Machine Code1940'sLowestExact CPU InstructionsNothing
Assembly1947LowMnemonics for CPU OpsRegister allocation, jumps
3GL (C, Basic, JavaScript '96, Python '89)1950's & 60'sMediumAlgorithms and control flowMemory layout, instruction selection
4GL (Scratch '03, SQL, MATLAB)1970'sHighDesired outcome or domain logicQuery planning, optimization, execution strategy
AI-Mediated (Vibe) Coding2023Very HighIntent expressed in natural languageArchitecture, algorithms, code generation, refactoring

Each step reduces the amount of detail humans must specify and increases what the machine can infer.

Where AI Fits: Beyond a "5th Generation Language"

AI coding assistants and "vibe coding" don't behave like languages at all. There are no specific syntax or grammar rules that need to be followed. AI is being used like an intent interpreter.

1. Natural Language as the Programming Interface
Speaking English to a machine is not just a higher abstraction--it's a different paradigm.
  • You no longer specify how to do something.
  • You specify what you want, and the system synthesizes the how.
This is closer to goal-oriented programming than to traditional abstraction layers.
2. The Machine Now Handles the Abstraction Design
In earlier eras, humans designed the abstraction layers (e.g., SQL, Scratch).

With AI, the machine dynamically creates the abstraction layer on demand.

That's unprecedented.
3. The "Language" Is No Longer Fixed
Python is Python. SQL is SQL. But AI-generated code can:
  • invent helper functions
  • choose libraries
  • restructure architecture
  • refactor itself
The abstraction is fluid, not static. This is why many researchers argue that AI coding is not a "5GL" but a meta-programming layer that sits above all languages.

Why This Represents a New Level of Abstraction

Three properties make AI a new abstraction tier:

1. The abstraction is conversational, not syntactic.
You don't learn keywords; you negotiate intent.

2. The abstraction is adaptive.
It changes based on your project, your style, your constraints.

3. The abstraction is generative.
It produces the implementation rather than interpreting a fixed language.

This is why many people describe AI coding as:
All of these capture the idea that we've moved from "writing code" to "expressing intent."

Where Vibe Coding Fits

Vibe coding--"make it feel more playful," "give it a retro aesthetic," "make the physics more bouncy"--is the purest form of intent-level programming.

It's not about correctness; it's about expressive direction.

This is something no previous abstraction layer could handle.

The Big Picture: A New Era of Programming

  1. Machine Era (1940's) - humans speak machine language
  2. Language Era (1950's) - humans speak structured symbolic languages
  3. Domain Era (1970's) - humans speak domain-specific constructs
  4. Intent Era (AI; 2020's) - humans speak natural language goals

AI isn't just a new abstraction. It's the first time the machine participates in the act of abstraction itself.


Maze Generation

Triangle Maze (2D version) (javascript-triangle-maze.htm)
Use the 2D Art program to follow along with the steps in this AI chat session about building a triangle maze.

Circle Maze (2D version) (javascript-circular-maze.htm)
Use the 2D Art program to follow along with the steps in this AI chat session about building a circular maze.

Lesson (https://robocatz.com/exercise-maze-generation.htm)
Lessons on writing Maze Generating programs in JavaScript using the Recursive Division technique.

Week 2

Jensen Huang says he would be 'deeply alarmed' if his $500,000 engineer did not consume at least $250,000 of tokens

Jensen Huang has a new red flag for top talent: not using enough AI tokens.

The Nvidia CEO said in an episode of the "All-In Podcast" published Thursday that he would be "deeply alarmed" if one of the chip giant's top engineers spent too little on AI.

"If that $500,000 engineer did not consume at least $250,000 worth of tokens, I am going to be deeply alarmed," Huang said.

"That $500,000 engineer at the end of the year, I'm going to ask them how much did you spend in tokens? If that person said $5,000, I will go ape something else," he added.

When asked if Nvidia is spending $2 billion on tokens for its engineering team, Huang said: "We're trying to."

"This is no different than one of our chip designers who says, 'Guess what? I'm just going to use paper and pencil,'" he said, referring to top engineers who underutilize AI tokens.

"It is now one of the recruiting tools in Silicon Valley: How many tokens comes along with my job?" Huang added. "And the reason for that is very clear, because every engineer that has access to tokens will be more productive."

"Prompt" Engineering

Beginning students should focus on learning this one important AI skill: prompt engineering.

Guidelines for writing effective prompts (https://github.com/resources/articles/what-is-prompt-engineering)
Techniques for writing effective AI prompts from GitHub.

Guidelines for writing effective prompts (./documents/Anthropic_PromptGuidelines.pdf)
6 Techniques for writing effective AI prompts.

Jobs Available

Anthropic Jobs (https://www.anthropic.com/careers/jobs)
Nebius Jobs (https://careers.nebius.com/)

Pair Programming

Pair programming is a software development technique where two programmers work together at a single workstation, sharing the same task in real time--one writes the code (the driver) while the other reviews, thinks ahead, and guides (the navigator). It's widely used in Agile teams because it improves code quality, spreads knowledge, and accelerates problem-solving.

How Pair Programming Works
Why Teams Use Pair Programming
When It's Especially Useful

2D and 3D Graphics Drawing






Week 1

Job Creation has usually increased following Innovations

Technological breakthroughs create entirely new labor markets

Every major technological breakthrough creates new forms of labor, which then reshape society by changing how people produce, exchange, and organize value. As these new forms of work take root, they demand new rules, norms, and structures--pushing communities to build institutions that can coordinate, regulate, or amplify the emerging capabilities. Those institutions, in turn, open the door to entirely new professions, roles, and specializations that didn't exist before. Over time, this cycle compounds: each wave of innovation not only transforms the economy but also rewires culture, governance, and human identity. In this way, technology doesn't just create new jobs--it continually reinvents what it means to work, to collaborate, and to build a society.

Each era expands the complexity of human specialization

Each era expands the complexity of human specialization by introducing new tools, skills, and forms of knowledge that didn't exist before. As these capabilities grow, people divide labor more finely, creating roles that are increasingly distinct, interdependent, and technically demanding. This expanding web of specialization reshapes how societies organize themselves, because new expertise requires new systems of coordination, training, and governance. Over time, each era's innovations compound, producing a workforce that is more diverse, more skilled, and more structurally complex than anything that came before it.

AI: a New Era in Humanity

AI is shaping up to be more disruptive (and on a faster timeline) than either the Space Age or the Information Age. The Space Age and Information Age changed industries. The Space Age created: aerospace engineering, satellite communications, advanced materials, global navigation systems. The Information Age created: software development, networking, data science, cyber security, digital commerce. While both of these ages were massive changes to society, they both created new industries, expanded job specialization, required new educational degrees, and took decades for society to alter and adjust gradually. These were "additive" disruptions. The Space Age and the Information Age added jobs.

AI is a transformative invention that has widespread adoption (used by tens of millions of people each day), deep economic and social restructuring, and requiring new forms of labor and institutions. While the Information Age automated information storage and retrieval, the AI age automates reasoning, language, and decision-making -- the core of white-collar work.

AI is different because it targets cognitive labor itself.

AI doesn't just create new industries -- it automates the very thing white-collar workers are paid for: analysis, writing, planning, coding, design, decision support. This is the first technology in human history that can perform: symbolic reasoning, pattern recognition, language generation, and knowledge work.

Why is AI disruptive?


"There is zero chance that this transition is not going to be rough for millions of people....Rough! with a capital 'R', underline, and giant exclamation point."

Andrew Yang 2026


Impact of AI on Employment

Recent Headlines within the last 6-months


These layoffs reflect the ongoing trend of companies implementing AI systems to enhance efficiency and productivity, leading to significant workforce reductions. The impact of AI on job markets is a complex issue, with some companies citing AI as a primary driver behind workforce reductions, while others attribute these changes to other factors such as financial underperformance or economic uncertainty.

How "Work" is Changing

Multiple studies show that AI is eroding the "bottom rungs" of the career ladder, shrinking junior layers and compressing hierarchies. This doesn't eliminate hierarchy entirely, but it does reduce the number of levels and the depth of the pyramid.

Anthropic CEO Dario Amodei told CNBC, "At some point, we are going to get to AI systems that are better than almost all humans at almost all tasks," the critical question for workers is how the idea of an entry-level job can evolve as AI continues to.

Flatter organizations seem certain. The ladder isn't broken -- it's just being replaced with something that looks a lot flatter. The new "entry level" might be a more advanced or skilled role, but with the upskilling of the bottom rung, pressure is being created for new grads to acquire these job skills on their own, rather than being able to learn them while already on a job they can't land today.

When the internet and email came on the scene as common corporate required skills, new grads were well-positioned to become experts by using them in school, and the same absolutely applies here with how accessible AI is. The key will be in how new grads harness their capabilities to become experts so they are seen as desirable tech-savvy workers who are at the forefront of AI's advances.

If predictions about AI advancements ultimately leading to superintelligence are proven correct, the issue isn't going to be about whether the 50% entry-level jobs being wiped out is accurate, but that percentage growing to 100% for all careers, since superintelligence can by definition do all jobs better than us.

For many jobs, the baseline will no longer be "Can a person do the job?" but rather "Can they do it in a way that adds unique value beyond what AI can do alone, and what people can do alone?"

Future of Coding

AI was supposed to save coders time. It may be doing the opposite (https://www.scientificamerican.com/article/why-developers-using-ai-are-working-longer-hours/)
By Steven Melendez
Studies find AI helps developers release more software--while logging longer hours and fixing problems after the code goes live.

Software engineering was supposed to be artificial intelligence's easiest win. Today companies such as OpenAI, Anthropic, Microsoft and Google have all released AI products geared specifically to coding. And a survey of nearly 5,000 technology professionals released in a report last year by Google's DevOps Research and Assessment (DORA) team found that 90 percent of respondents said they were using AI at work--with more than 80 percent saying the technology had boosted their productivity.

"We see a large majority of folks that are relying on AI to get their job done" -Google.

AI can generate code for everything from Web and mobile apps to data management tools. It often automates some of the tedious elements of the job, such as building testing infrastructure and updating software to run on new devices and systems. In some cases, even inexperienced developers can create working prototypes simply by describing their intentions to AI systems in a process often called "vibe coding," a term coined by OpenAI co-founder and researcher Andrej Karpathy. But writing code is only part of the job; developers still have to verify that it does what it's supposed to and fix it if it fails.

Recent studies indicate that AI tools may actually slow down experienced coders, rather than enhance their productivity.
These findings suggest that while AI tools are designed to save time, they may not deliver the expected productivity gains for experienced developers.

Career Advice

For many people, the expected path is still traditional: study hard, get into college, and land a stable job that can support a family.

But artificial intelligence could soon upend that formula.

Artificial intelligence will eventually be able to handle about 80% of today's jobs, ranging from physicians and radiologists to accountants and sales professionals. As AI takes over much of this work, labor costs could effectively fall to near zero, dramatically lowering the prices of goods and services. In that scenario, the youngest generation may not need a college degree to build a livelihood--or even need traditional employment at all.

The existential question hovering over every college campus right now isn't which major to choose -- it's whether the old rules of higher education still apply at all. Some of the most influential names in business have been sounding off on exactly that, and their answers might make younger generations reconsider a traditional path.

LinkedIn CEO has told students point-blank that having a five-year career plan is "outdated" and "a little bit foolish" given how quickly AI is reshaping the workplace.

Sam Altman, the CEO of OpenAI, has said that if he were 22 and graduating today, he would "feel like the luckiest kid in all of history."

Alexandr Wang (Meta chief AI officer) has perhaps the most specific and urgent advice for young people. "Vibe coding" is today's equivalent of 1980s teens spending their nights in a computer lab: "If you are 13 years old, you should spend all of your time vibe coding. That's how you should live your life. 10,000 hours of deep, hands-on experimentation with AI tools will give you a huge advantage."

Advice to all: embrace the single skill that cannot be automated: the ability to learn rapidly and continuously.


Large Language Models Use a Statistical Process

AI output is a statistical generalization of patterns found across millions of documents, not a derivative of any one document.
Large language models do not store documents or reproduce them; instead, they learn statistical patterns and generate new text based on those patterns. They store mathematical weights that encode patterns in language. This means the model is not "looking up" text -- it is generating text.

The output is created from probability distributions. When you ask a question, the model predicts the next token based on:
- statistical patterns
- semantic relationships
- learned structures

Creativity

While AI can generate outputs that are novel combinations of patterns, it cannot produce something that is completely unrelated to any pattern it has ever seen. However, those combinations can be so unusual, so unexpected, or so creatively synthesized that they feel genuinely new -- even though they are ultimately grounded in learned structure.

AI creativity is emergent recombination: the ability to generate new, coherent outputs by blending, extending, and transforming patterns it has learned from data. It's not imagination in the human sense, but it does produce novelty (often surprising novelty) through three core mechanisms.

  1. Pattern Synthesis (the foundation)
    AI learns rules regarding:
    • grammar
    • structure
    • relationships
    • analogies
    • styles
    • rhythms
    When AI crafts an answer, it uses these rules to synthesize a response. The response will be "new" in the sense that it is not a recitation of some other document. It is creativity through combining patterns in ways no previous source contained.
  2. Recombination Across Domains (the spark)
    AI creativity often comes from mixing ideas that rarely appear together. Examples:
    • describing emotions using physics metaphors
    • inventing creatures with linguistically plausible names
    • proposing novel code structures
    • blending genres (e.g., "a noir detective story told as a recipe")
    This cross-domain blending is where AI can invent things that are structurally sound but semantically wild.
  3. Generative Divergence (the playfulness)
    When prompted to be whimsical, surreal, or nonsensical, AI can:
    • break expectations
    • bend rules
    • invent vocabulary
    • distort syntax intentionally
    • maintain rhythm while abandoning meaning

What AI is NOT.

It is not:
AI cannot step outside the patterns of human language and culture.

What is AI Creativity?

AI creativity is the emergent ability to generate novel, coherent outputs by recombining learned patterns in unexpected ways. It produces new arrangements of known ingredients, not creations from a blank slate.

Prompts

I have a 2D graphics library that is used in a webpage that helps teach students the basics of computer graphics. This library (written in JavaScript) includes functions such as circle(), square(), rectangle(). These functions typically take basic x- and y-coordinates as numbers (from 0 to 1200 on x; from 0 to 400 on y). Sizes are also given the similar range from 0 to +400. Can you create (in this JavaScript API) a scene that has 4 circles arranged in some pattern that you find interesting. The circle() function takes three parameters, x, y, and radius. Your output for this prompt should be just 4 instances of circle().

I have a graphics library that is used in a webpage that helps teach students the basics of computer graphics. This library (written in JavaScript) includes functions such as circle(), square(), rectangle(). These functions typically take basic x-, y-, and z-coordinates as numbers (from -40 to +40). Sizes are also given the similar range from 0 to +40. Can you create (in this JavaScript API) a scene that has 4 circles arranged in some pattern that you find interesting. The circle() function takes four parameters, x, y, z, and radius. Your output for this prompt should be just 4 instances of circle().

2D and 3D Graphics Drawing



Fall 2025

Scoring Rubrics (/documents/FLL_2025_Rubrics.pdf)
Scoring Rubrics (2025)

Award Criteria (/documents/FLL_2025_Awards.pdf)
Award Criteria (2025)

Measuring Intelligence (/documents/OnTheMeasureOfIntelligence.pdf)
On the Measure of Intelligence (2019) by Francois Chollet

Submerged 2024 Team C


ARC Prize (https://arcprize.org/play?task=3aa6fb7a)
Abstraction and Reasoning Corpus (ARC-AGI-1) ARC Prize Tests (2019)

Abstraction and Reasoning Corpus for Artificial General Intelligence (ARC-AGI-1) (https://arcprize.org/play)
ARC can be seen as a general artificial intelligence benchmark, as a program synthesis benchmark, or as a psychometric intelligence test. It is targeted at both humans and artificially intelligent systems that aim at emulating a human-like form of general fluid intelligence. A foundational description of the dataset, its goals, and its underlying logic, can be found in: On the Measure of Intelligence and the ARC-AGI-2 Presentation

Easy for Humans, Hard for AI
At the core of ARC-AGI benchmark design is the the principle of "Easy for Humans, Hard for AI."
The human brain is the only example we have of general intelligence - it's what makes humans smart in a well-rounded way. To better compare AI to human intelligence, scientists study how the brain works. This helps us understand the difference between general intelligence (being flexible and adaptable) and skill-based learning (only knowing specific things).

Most tests for AI focus on solving hard problems that require a lot of practice or advanced knowledge, like what a PhD student might know. But the ARC Prize is different - it looks at tasks that humans find easy, but AI struggles with. These tasks highlight weaknesses in AI's reasoning and ability to adapt to new situations.

The ARC Prize focuses on key qualities of intelligence, like understanding something new with limited examples, figuring out symbolic meanings (like metaphors), and applying rules in flexible ways depending on the situation. These are things AI finds hard but humans are great at.


Passive Attachments 2025


Development of Robotics (2025 edition)


How to use Gear Racks in FLL


What is Archaeology (https://www.saa.org/about-archaeology/what-is-archaeology)
from the Society for American Archaeology

Team Preparation (https://www.robotech.cat/english/logbook)
an example from the RoboTech team.

Submerged 2024 Team C


Submerged 2024 Team D


Robot Design Strategies


5 Simple Tips
DJ Miniquiche 2.0

Building Instructions in PDF

Spring 2025

AGI Test

Roblox Project Goals

Drone Obstacle Course (https://robocatz.com/documents/ObstacleCourse2.rbxl)
Drone Obstacle Course (Version 2)

Road Race v3 (at Roblox) (https://robocatz.com/documents/RaceWithTrees.rbxl)
Road Race (version 3) With FormulaOne Cars

Tron Game Version 3 (https://robocatz.com/documents/TronGameV3.rbxl)
Tron Game (version 3)

Basic Maze Version 1 (https://robocatz.com/documents/BasicMazeV1.rbxl)
Basic Maze (version 1)

Tron Game Version 2 (https://robocatz.com/documents/TronGameV2.rbxl)
Tron Game (version 2)

Tron Game Version 1 (https://robocatz.com/documents/TronGameV1.rbxl)
Tron Game (version 1)

Road Race v1 (at Roblox) (https://www.roblox.com/games/108480861358902/Road-Race-1)
Road Race (version 1) With FormulaOne Cars in Roblox

Volcano (https://robocatz.com/documents/Volcano64.rbxl)
Volcano by AA

Road Race Tunnel Version (https://robocatz.com/documents/RoadRaceTunnel.rbxl)
Road Race (Tunnel version) With FormulaOne Cars

Road Race v1 (https://robocatz.com/documents/RoadRace1B.rbxl)
Road Race (version 1B) With FormulaOne Cars

Drone Obstacle Course: a Roblox Project (/documents/ObstacleCourse1.rbxl)
Drone obstacle course. Look for the movement commands in the "Starting Script" located in the Workspace. You need to abstract these movement commands to simplify them to make it easier to program the drone.

Scooter: a Roblox Project (/documents/Scooter1.rbxl)
An electric Scooter built in Roblox.

Creating a Ziggurat using Vibe Coding (/roblox-ziggurat.htm)
Coding by asking the computer to do it.

Human hamster ball

Vibe Coding

Vibe Coding (vibe-coding.htm)
Coding by asking the computer to do it.

Creating a Ziggurat using Vibe Coding (/roblox-ziggurat.htm)
Coding by asking the computer to do it.

Creating a Pyramid of Spheres using Vibe Coding (/roblox-stacked-spheres.htm)
Coding by asking the computer to do it.

Creating an Electric Scooter using Vibe Coding (/roblox-electric-scooter.htm)
Coding by asking the computer to do it.

Creating a Formula One car using Vibe Coding (/roblox-formula1_car.htm)
Coding by asking the computer to do it.

Abstraction

Program Building (/images/Program_Building.png)
Abstraction is a Human-Centric Process: One important concept about abstraction is that it is only performed by Humans. Abstraction is not performed by machines. There is no reason for a machine to perform abstraction.
What is Abstraction? Abstraction is indeed a fascinating and essential concept in computer science, primarily driven by human creativity and problem-solving skills.

4 Reasons Why Humans Use Abstraction

  1. Simplification: Humans use abstraction to simplify complex systems by breaking them down into more manageable parts. This involves identifying the essential features of a problem while ignoring the irrelevant details. In Robot JavaScript, the language was abstracted in a way to reduce syntax requirements allowing for more flexibility in expressions.
  2. Creation of New Languages: Through abstraction, humans develop new programming languages and frameworks that provide higher-level constructs. These constructs allow programmers to write code that is more intuitive and easier to understand, without worrying about the underlying hardware details.
  3. Layered Approach: Abstraction often involves creating layers of functionality. For example, in software development, you might have a high-level language like Python, which abstracts away the complexities of memory management and machine code. JavaScript abstracts away the complexities of type casting.
  4. Reusability and Modularity: By abstracting common functionalities into libraries or modules, humans can reuse code across different projects, enhancing productivity and reducing errors.

Computers and Execution


Example:

Example:
function add(a,b) {
  return a + b
}

In summary, abstraction is a powerful tool used by humans to manage complexity and create more efficient and understandable code. Computers, however, are simply the executors of these abstracted instructions, following them precisely without any creative input.

Roblox Programming

Blank Roblox World with the genericShapes module (/documents/genericShapesBlankWorld.rbxl)
Blank world for generic shapes

Roblox Lesson on Equations (Roblox-Lesson-04.htm)
Roblox Lesson 4

Roblox Lesson on Loops (Roblox-Lesson-03.htm)
Roblox Lesson 3

Roblox Lesson on genericShapes (Roblox-Lesson-02.htm)
Roblox Lesson 2

Lesson in Roblox Programming (./Roblox-Basics.htm)
RoboCatz website Lesson

Roblox genericShapes (genericShapes-ModuleScript.htm)
Generic Shapes Module Script

Roblox Lesson 1 (https://robocatz.com/documents/RobloxProgramming4.pdf)
Lesson 1: the Studio Interface and how to load the Graphics Library (called genericShapes).

Maze Generation using Recursive Division

Lesson (https://robocatz.com/exercise-maze-generation.htm)
Lessons on writing Maze Generating programs in JavaScript using the Recursive Division technique.

Lesson using 3D-Art Program (https://robocatz.com/exercise-maze-generation-in-3D.htm)
Lessons on writing Maze Generating programs in JavaScript using the Recursive Division technique.

Recursive Division Maze Generation (https://en.wikipedia.org/wiki/Maze_generation_algorithm#Recursive_division_method)
Wikipedia: Mazes can be created with recursive division, an algorithm which works as follows: Begin with the maze's space with no walls. Call this a chamber. Divide the chamber with a randomly positioned wall (or multiple walls) where each wall contains a randomly positioned passage opening within it. Then recursively repeat the process on the sub-chambers until all chambers are minimum sized. This method results in mazes with long straight walls crossing their space, making it easier to see which areas to avoid.

2D and 3D Graphics Drawing



Functions

JavaScript

JavaScript Programming (https://robocatz.com/documents/JavaScriptProgramming.pdf)
PDF Document

Origin of Written Language

Evolution of Arabic Script (https://en.wikipedia.org/wiki/History_of_the_Arabic_alphabet)
Evolution of the Thai alphabet (https://en.wikipedia.org/wiki/Thai_script#/media/File:Evolution_of_The_Thai_Alphabet.png)
A is for Ox (https://www.cbc.ca/news/canada/newfoundland-labrador/hawthorn-hieroglyphs-alphabet-1.6288328)
Essay on the origin of the Latin Alphabet

History of the alphabet (/images/EvolutionOfTheAlphabet.png)
Phoenician Alphabet (https://en.wikipedia.org/wiki/Phoenician_alphabet)
Phoenician Alphabet from Wikipedia

Learning Curve




Fall 2024

Roblox Project

Blank Roblox World with an under sea theme (/documents/underSeaWorld.rbxl)
Blank world for under the sea

Remote Controller

EV3 Remote Control (exercise-in-remote-control.htm)
Exercise in Remote Control

Asynchronous Functions

ALL output functions are Asynchronous In robotics, output functions are often asynchronous to enhance efficiency and responsiveness. Here are a few key reasons why this approach is beneficial:

  1. Parallel Processing: Asynchronous functions allow multiple tasks to run concurrently without waiting for each other to complete. This is crucial in robotics, where a robot might need to perform several actions simultaneously, such as moving, sensing, and processing data1.
  2. Real-Time Responsiveness: Robots often operate in dynamic environments where they must respond to changes quickly. Asynchronous functions enable robots to handle real-time events and interrupts more effectively, ensuring timely reactions to sensor inputs and environmental changes.
  3. Resource Optimization: By not blocking the main execution thread, asynchronous functions make better use of system resources. This leads to smoother and more efficient operation, especially in complex robotic systems with limited computational power.
  4. Improved User Experience: For robots interacting with humans, asynchronous functions can provide a more seamless and responsive experience. For example, a robot can continue to engage in conversation while processing background tasks.

driveFoward() and driveBackward() as Abstractions of Movement

The programmer (YOU) need to explain how the robot should move forward and backward. You need to define for the robot, the size of wheels, the power level, the distance criteria, synchronization, etc.

Gyro Sensor

Calibrates when initially plugged in or robot turned on. DO NOT MOVE the robot when it is calibrating. Observe the sensor through the "Port View" app on the 3rd tab of the EV3 interface. Use the left/right buttons to find the gyro sensor. Is the sensor value changing while the robot is not moving? If so, unplug the sensor from the port on the EV3 brick and plug it back in (CAREFULLY).

Vectors

Object avoidance. Practice with the robots.

Homework

Videos

Note: these videos have no sound. You only need to view them. There is no commentary or music.

FLL 2024 Runs


FLL 2023 Ideas B

FLL 2023 Ideas


FLL 2024 Missions

Your team will be scored according to the following guidelines:






Your robot needs to perform the following missions:



The robot's performance will be scored as specified in this document:

see also: FLL Event Hub


Parents

For the 2024 season, you will need to enroll your child onto the team through a web-based system.

Create an account at:




Artificial Intelligence (AI)



Provide context before asking your AI question.

AI CoPilotSession 1
AI CoPilotSession 2
AI CoPilotSession 3
AI CoPilotSession 4
AI CoPilotSession 5

Robot JavaScript








Code from 2025

Code from 2024

Code from 2023

Code from 2022

Code from 2021

Code from 2020

Code from 2019



FLL Team (https://github.com/MonongahelaCryptidCooperative/FLL-Block-2024-2025/)
GitHub: Monongahela Cryptid Cooperative

EV3 Mindstorms Firmware (https://education.lego.com/en-us/product-resources/mindstorms-ev3/downloads/firmware-update/)
EV3 Mindstorms Firmware

EV3 Device Manager (https://ev3manager.education.lego.com/)
EV3 Device Manager

Robot Simulator


Spring 2024

Roblox Lesson on Drone Simulator (Roblox-Lesson-05.htm)
Roblox Lesson 5

Roblox Road Tracks (https://robocatz.com/documents/RoadTrackSquare.rbxl)
Roblox Project file used for the Drone

Roblox Game (https://www.roblox.com/share?code=a4c61537e961014f9585ef270e590578&type=ExperienceDetails&stamp=1714838465212)
Roblox Game 3 (created May 4th)

Roblox Game (https://www.roblox.com/games/17382874516/colosseum-ball-chase)
Roblox Game 2 (created May 4th)

Roblox Game (https://www.roblox.com/games/17382252055/unnamed)
Roblox Game 1 (created May 4th)

Roblox First Program (PDF) (./documents/RobloxFirstProgram.pdf)
RoboCatz PDF Document

Roblox Programming (PDF) (./documents/RobloxProgramming4.pdf)
RoboCatz PDF Document

Fall 2023

RoboCatz Art Museum (https://www.roblox.com/games/13559439593/RoboCatz-Art-Museum)
An interactive art museum program from RoboCatz

FLL "Art Museum" Project 2023

Roblox Art Museum Project (/documents/Fall2023RobloxProject.zip)
ZIP file of the Roblox Art Museum Project


Example:
while true == true do
	local Children = game.Workspace:GetChildren()
	for i = 1, #Children do
		if Children[i].name == "Camera" or Children[i].name == "Part" or Children[i].name == "Script" or Children[i].name == "startingScript" or Children[i].name == "Terrain" or Children[i].name == "SpawnLocation" or Children[i].name == "Baseplate"  or Children[i].name == "Union" or Children[i].name == "Compass" or Children[i].name == "TextLabel" or Children[i].name == "ScreenGui" or Children[i].name == "Frame" or string.find(Children[i].name,"RoboCatz") then
		else
			Children[i]:Destroy()
		end  
	end
	wait(5)
end







Computer Art: the Graphical Expression of Algorithms

Mandelbrot Set

Science Demos (https://sciencedemos.org.uk/mandelbrot.php)
Instructions: Move the mouse over an area and then use the scroll wheel to zoom in/out.

rust-mandelbrot (https://rust-mandelbrot.netlify.app/)
Instructions: Drag the mouse to reposition the image. Use the scroll wheel to zoom in/out.

http://tilde.club/~david (http://tilde.club/~david/m/#)
Instructions: Change the color scheme from by selecting the dialog box item. Drag the mouse to form a box. When you lift the mouse button, the computer will zoom in on the area dragged.

2D and 3D Graphics Drawing


Cellular Automata

A cellular automaton (pl. cellular automata, abbrev. CA) is a discrete model of computation studied in automata theory. Cellular automata are also called cellular spaces, tessellation automata, homogeneous structures, cellular structures, tessellation structures, and iterative arrays.[2] Cellular automata have found application in various areas, including physics, theoretical biology and microstructure modeling.

Lesson in Cellular Automata using 2D Art Program (https://robocatz.com/cellular-automata-game-of-life.htm)
Lessons on writing Cellular Automata programs in JavaScript.

Lesson in Cellular Automata using 3D Art Program (https://robocatz.com/cellular-automata-game-of-life-in-3D.htm)
Lessons on writing Cellular Automata programs in JavaScript.

Game of Life (https://beltoforion.de/en/game_of_life/)
Description and Website

Rules (https://cellularseeds.com/rules)
Cellular Automation Rules

Cellular Seeds (https://cellularseeds.com/game)
On-line Game of Life

from Wolfram (https://demonstrations.wolfram.com/3DTotalisticCellularAutomata/)
3D Totalistic Cellular Automata

Videos (https://slackermanz.com/2-state-discrete-mnca-example-videos/)
2-state-discrete-mnca-example-videos

Understanding-multiple-neighborhood-cellular-automata (https://slackermanz.com/understanding-multiple-neighborhood-cellular-automata/)
Multiple Neighborhood Rules

Lenia (https://chakazul.github.io/lenia.html)
Lenia - Advanced rules for Game of Life

Demo of Lenia (https://chakazul.github.io/Lenia/JavaScript/Lenia.html)
Lenia in JavaScript

Roblox Scripting

Lua Programming Language (https://create.roblox.com/docs/scripting/luau)
On-line Documentation website from the Roblox website.

Roblox Scripting (https://create.roblox.com/docs/scripting/scripts)
On-line Documentation website from the Roblox website.

Roblox Tutorials (https://create.roblox.com/docs/tutorials)
On-line Documentation website from the Roblox website.

Roblox Programming (PDF) (./documents/RobloxProgramming4.pdf)
RoboCatz Document

Lesson in Roblox Programming (./Roblox-Basics.htm)
RoboCatz website

Recursion Using Roblox Functions (https://devforum.roblox.com/t/tutorial-on-recursion/995195)
On-line Documentation website from the Roblox Developer's forum.

Object Oriented Programming in Roblox (https://devforum.roblox.com/t/roblox-oop-object-oriented-programming/1639499)
On-line Documentation website from the Roblox Developer's forum.

Art Museum (artMuseum-Roblox.htm)
This page will describe how to create the Art Museum in Roblox.

Amazing Maze (https://www.roblox.com/games/13559439593/RoboCatz-Art-Museum)
Art Museum program from RoboCatz

Spiral Staircase (spiralStaircase-Roblox.htm)
This page will describe how to create a spiral staircase in Roblox.

Extracting Data from Parts of Models (/extractingDataFromParts-Roblox.htm)
Use this script to extract data from models that you have added to your world. You can use this extracted data to copy/edit/manipulate the model and re-create it programmatically in other worlds.

2024 Challenge: Submerged


2023 MasterPiece


Robot Game Rule Book


Image of Competition Mat

2022 Challenge: Supercharged






2021 Challenge: Cargo Connect




2020 Challenge: RePlay






2019 Challenge: City Shaper

2018 Challenge: Into Orbit

2017 Challenge: Hydro Dynamics





Web Tools

Computer Art

This is a program to teach the JavaScript computer programming language using Computer Art as the vehicle for the instruction. Students are taught basic programming skills in an easy to use development environment that shows the programs in action in real time.




JavaScript Sample Code

3-Button Menu

while(true) {
  setLED(0)
  clearScreen()
  rect(10,10,160,60)
  drawText(15,30,'Press a key to')
  drawText(15,45,'  select a program')
  keyPressed=waitForPress()
  switch(keyPressed) {
  case 1:
    alert('You selected UP')
    setLED(4)
    sleep(2000)
    break
  case 2:
    alert('You selected ENTER')
    setLED(5)
    sleep(2000)
    break
  case 3:
    alert('You selected DOWN')
    setLED(6)
    sleep(2000)
    break
  }
}

Robot Simulator

This is a program to teach the robot computer programming language used for moving the robot. This simulator does not emphasize programming. Instead, it tries to teach strategies for getting the robot to accomplish goals and missions.


RobotC Simulator

This is a program to teach the RobotC computer programming language.








Programming Exercises for RobotC

Joystick Programming (exercise-joystick-programming.htm)
This is an exercise in programming the joystick used in the May Madness competition.

Line Following Exercise (exercise-in-line-following.htm)
This is an exercise in Line Following with many examples of robotC code.


Function Overloading Exercise (exercise-in-function-overloading.htm)
This is an exercise in Function Overloading and Multi Threaded programming with many examples of robotC code.




Our season will focus on robots that talk -- about trash. We will have talking robots.

Text to Speech

Data Mining

FLL Theme for this year: Trash