|
Tuesday |
Thursday |
|
Color Code:
Notes on days past. |
Color Code:
Agenda for days ahead. |
|
Week
0 |
August 31
INTRODUCTION
Please look at a previous Course Calendar for an idea of what we will cover.
OUR COURSE:
Our course is designed to give you a critical view of this research project informed by hands-on explorations and experiments with simulations, simulations which you will create and modify, as well as readings which will challenge conventional ways of knowing. We will introduce a number of "programming challenges," small worlds representing a variety of representations relevant to larger scientific problems. Each of these "small" worlds is a foundation for a larger class of problems. Your mission is to explore, experiment and enhance the challenges and hopefully enjoy tweaking these worlds to more closely fit real world situations. You will be the creator of these worlds.
WHAT ARE ARTIFICIAL LIFE, ARTIFICIAL CULTURE AND EVOLUTIONARY COMPUTATION?
They are research practices dedicated to capturing the parallel (not serial), multiagent and multicausal (not single causal), evolutionary and co-adaptational (not static) processes that give rise to the complexities of our world. Our task as scientists is to describe, understand and explain them. Mental models, including language, discourse and mathematics, do not adequately explain the phenomena that surround us. Computation offers us new ways to know complexity.
WHAT IS AN AGENT?
When you think "agent," think "causal process." An agent is anything that reacts to its environment with specific behaviors. An "agent" is an object that can SENSE, THINK and ACT. (This is known as the "STA" architecture in robotics.) An agent can be a single thought among many competing for conscious attention. An agent can be a single individual among a group of individuals. An agent can be a single nation among the world of nations. An agent can be organic and biological based on silicon (brains, animals, people). An agent can be physical and technological based on silicon and metal (robots, drones). An agent may be one of many in a software application based on silicon (component, function, subroutine). I our course we will work primarily with software but we will include some robotic applications.
WHAT IS CULTURE?
Culture is a complex network of all these types of agents, each and every one of which exhibiting some form of an "STA" architecture.
EMERGENCE...
From local rules to global patterns of behavior.
SCREENING: Karl Sims "Evolved Virtual Creatures."
BREAK
PROGRAMMING WARMUP:
Writing a Windows 7 application from scratch, programming on the fly...
Rapid Application Development (RAD) Studio by Embarcadero.
FOR THURSDAY:
Familiarize yourself with Embarcadero's new RADStudio for C++ Builder. Build some frivolous applications, save them, close them, open them up again and enhance them. Play, do dumb things. You only learn by pushing yourself and making mistakes. This is not rocket science...
|
September 2
PARTICIPANT INTRODUCTIONS:
Tell us a little about yourselves. How do you think this course might relate to your own interests, your major and/or career goals?
A BIT OF PHYSICAL COMPUTING:
Definition #1: Natural computing, computing in different media, physically mediated (cultural) cognition - mechanical, electromechanical, electronic, optical, DNA, quantum computers,
Definition #2: Interfacing to the physical realworld through sensors & actuators - Las Vegas patented slot machine "virtual reels," rapid prototype 3d printers, robots...
"WIRED FOR WAR"
ON THE GROUND:
Owen Holland's Cronos Robot...
Boston Dynamics: Robots...
General Atomics Aeronautical Systems: Unmaned Aerial Vehicles (UAVs)...
Thousands of semi-autonomous robotic vehicles have been deployed to Iraq & Afghanistan.
CLASSROOM ROBOTICS (pending)
Parrot AR Drone
UAVP-NG - The OS Multicopter: Maidenflight of Taar…
UAVP-NG - The OS Multicopter: Onboard Video
Quadro UFO
Multikopter Developer Meeting in Zurich
SCREENING: SPIES: CODE BREAKING, "Ultra Spies" (VHS).
STANDING ASSIGNMENT:
Look at the examples on our SIMULATIONS pages. Run the executables to see how they behave. Look at the source code to see how the code directs the application's behavior.
BREAK
PROGRAMMING WARMUP:
Handout on C++.
Writing a Windows 7 application from scratch, programming on the fly...
Rapid Application Development (RAD) Studio by Embarcadero.
The Windows Application Programming Interface (API).
Visual Component Library (VCL) Objects.
Variables, Functions and Event Handlers.

PROGRAMMING CHALLENGE 0: The CHAOS Game: Halfway There
Cellular space; sequential time. A traveller sets out to seek his fortune and chooses to head to one of several towns. When he is half-way there he decides to set up camp for the night.
Being poor at making decisions, he awakes the next morning and sets out for a different town. Again, when he travels half the distance he sets up camp. The next morning, as before, he sets out towards a new town. And so the days pass. The question is, "is there any pattern to the distribution of the campsites that he left? What if he continues for a year (365 iterations). What if he continues for 10 years (3,650 iterations), 100 (36,500 iterations) or 1000 (365,000 iterations)?
|
|
|
Explore - get to know it!
Experiment - describe & explain it's behavior!
|
Enhance - add new functionality!
Enjoy - play with it! |
Week
1 |
September 7
OUR COURSE BUILDS WEEKLY FROM A FOUNDATION THAT WE LAY EARLY ON:
The first few weeks of this course are critically important. You must master the topics that we cover early on since these are foundational to the remainder of the coruse. Our challenges grow in complexity from week to week. Our representations of space, of time and of agency become increasingly complex. Our source code (Unit1.cpp tab) becomes lengthier as we add more functionality and our graphical user interface (Design tab), our "GUI," becomes more densely packed as we add more visual components. Your ability to organize your application into meaningful "jobs" that need to be done (functions that will execute those jobs) will rest upon your insights and creativity. The clarity with which you envision your simulation will be enhanced by proper formatting (use of whitespace and indentation) and copious commenting ("//" remarks). Following our agenda to progress from more simple (smaller) applications to those that are more complex (larger), we will typically work our way through The Chaos Game, Cellular Automata, Spatial Growth, Segregation & Assimilation, Flocking and Crowd Behavior, Cryptology & Cryptanalysis, and end with Evolutionary Computation and Physical Computing.
EMERGENT COMPLEXITY...
Synchronic (emergence of the instant) vs. Diachronic (emergence through time).
Complexity is measured by computational irreducibility - Steven Worlfram.
In a complex system, there is no way of predicting the outcome short of letting it run
.
THE EMERGENCE OF EVERYTHING... Why Steven Hawking's Cosmology Precludes a Creator
Harold Morowitz, The Emergence of Everything: How the World Became Complex.
FOR THURSDAY: From the counterintuitive files: THE MONTE HALL PROBLEM
Please turn in your solution to the problem and your reasoning on paper on Thursday.
Please DO NOT consult the Internet...
SCREENING: Karl Sims "Electronic Canvas."
BREAK

PROGRAMMING CHALLENGE 0: The CHAOS Game: Halfway There
Rapid Application Development (RAD) Studio by Embarcadero.
The Windows Application Programming Interface (API).
Visual Component Library (VCL) Objects.
Variables, Functions and Event Handlers. |
September 9
THE MONTE HALL PROBLEM
Please turn in your solution to the problem and your reasoning on paper today.
Sonifying Data:
Beep(frequency, milliseconds) from internal speaker with WinXP to sound card with Win7.
PlaySound() plays any .wav file.
MIDI changes in Win7.
Visulizing Data:
The 3 dimensions of color: Red, Green and Blue.
The Color Cube: Meaningful ways to travel around and through it.
8 Bits to a Byte. Accessories/Calculator/Scientific: binary, decimal, hexadecimal.
The 7-bit ASCII code.
Pathways from dark to light, from cool to hot: the gray ramp & color ramp functions.
Rendering graphics on the ->Canvas.
?Progress? Window7 and WindowsVista graphics slowdown!
Using the Embarcadero Developer Network to solve problems...
BREAK
PROGRAMMING CHALLENGE 0: The CHAOS Game: Halfway There
DUE ON THURSDAY
Hints for debugging your code:
Programming Errors, your constant friends. Deal with your first error first (the error may be above the line highlighted in red). The omission of a single ; ( { [ will corrupt all the lines of code that follow.
When running an application, hit Pause/Pause and cursor over a variable to reveal its current value.
Some enhandements: Shading, Sonification and 3D Anaglyphs.
PROGRAMMING ENHANCEMENTS must be done on Classroom #6 machines.
EXPERIMENTS AND
EXPLORATIONS may be done, in part, on any PC.
In the "Debug" folder, you will find the executable (name ending in ".exe").
This can be copied and run on any Windows PC machine.
STANDING ASSIGNMENT:
Look at the examples on our SIMULATIONS pages. Run the executable to see how it behaves. Then look at the source code to see how the code dictates the application's behavior. |
Week
2 |
September 14
PROGRAMMING CHALLENGE 0: The CHAOS Game: Halfway There, continued...
IconEdit32 - Creating your custom 32x32 pixel icon.
TEdit->Text
TTrackBar, onChange
TLabel->Caption
TPanel
Faux Shadows
PlaySound()
BREAK
Classtime for individual (or team) work on your application... |
September 16
Zach will be working with you today...
I will be speaking in the UNC Charlotte, Complex Systems Institute Forum.
PROGRAMMING CHALLENGE 0: The CHAOS Game, "Halfway There."
DUE TODAY
Participant presentations...
BREAK
Screening: "Artificial Life," VPRO Amsterdam 1995 (90minutes).
DISCURSIVE CHALLENGE 0: Alife, then and now...
DUE by 10:00 a.m. TUESDAY ON BLACKBOARD.
Pick one paper from the most recent Artificial Life conference in Odense, Denmark. Write a brief summary and critique. What progress does it report (since the video interviews, if relevant). What issues does it address? What challenges does it present to the future?
|
Week
3 |
September 21
CELLULAR AUTOMATA
Introduction to CAs.
Catch phrase: "From simple local rules to complex global patterns of behavior."
Some examples: colored "trails," building a "computer" from the GOL.
Mirek's Cellebration, 1D and 2D versions, CAs in nature, when does the GOL become "stable," and the GOL as a "trap door function."

PROGRAMMING CHALLENGE 1: Cellular Automata / Conway's Game of Life
Parallel processing on a serial machine.
Representation of Space: Cellular / Raster
Representation of Time: Cinematic / Frame-by-Frame
Cellular space; cinematic time. The standing challenge is to explore, experiment, enhance and enjoy what you are doing. You can begin the exploration and experimentation phase immediately by answering such questions as:
- What is the relative frequency (scarcity) of various "species" of "creatures" in the GOL?
- For a given "creature," how does its pattern evolve when a cell in it is "killed" or a cell next to it is given "life?"
- Characterize the "ecology" of the GOL. How does the world "evolve" at a global level?
Cognitive Sampling - What we see and what we don't see - Spelling
DISCURSIVE CHALLENGE 1: Ed Fredkin's "Digital Mechanics."
On BLACKBOARD: due by Monday, September 27th, midnight.The reading is "on the Web."
Feel free to ignore the heavy mathematics. Concentrate on epistemology, "how do we come to know the world around us?" Pay particular attention to the "other."
|
September 23
PROGRAMMING CHALLENGE 1: Cellular Automata / Conway's Game of Life
Due next Thursday
We'll finish the countNeighbors() function.
It should work now...
How can we make it faster? renderChanges()
or slower? TrackBarMilliseconds
Maybe we should save the world's state... saveStuff() and openStuff()
Or add some buttons to introduce special creatures...
Alan Hensel's Glossary of Conway's Game of Life creatures.
Change the rules?
What else?
For Tuesday, besides posting your discussion to Blackboard, come in with some ideas for enhancements we might attempt to do with the GOL... |
Week
4 |
September 28

AUTOMATED CITY DESIGN via Conway's Game of Life
Found and Contributed by Matt Newcomb...
3D Voxels Programmed in PROCE55ING.
Very cool, it is a volumetric CA but it's got nothing specifically to do with Conway's Game of Life.
PROGRAMMING CHALLENGE 1: Cellular Automata / Conway's Game of Life
Continuing to add new functionality:
Let's make the wrap-around code a separate function.
TComboBox - To let the user specify a creature to drop onto the world.
A Boolean array for each complex creature.
TRadioGroup - Let's allow for the "High Life" rule (6 neighbors will also cause a birth).
TTrackBar - To slow things down.
What if a cell that had survived 10 iterations were immune to death?
|
September 30
NEWS: We are among 30 academic institutions who will receive the PARROT AR.Drone development kit mid-March.
Parrot AR Drone Movies
Parrot Corporate Website.
Letter of confirmation.
FOR TUESDAY:
Familiarize yourself with the simulation's behavior.
Familiarize yourself with several of the rules (how they are written and what behaviors they produce)
Write three rules of your own in pseudocode or in valid code on paper, and prepare to present them and turn them in on Tuesday. |
Week
5 |
October 5
Stuxnet revisited:
Virus Bulletin Conference, Vancouver, B.C., Canada:
Last-minute paper: An indepth look into Stuxnet, Liam O'Murchu Symantec
Last-minute paper: Unravelling Stuxnet, Jeff Williams Microsoft, Peter Ferrie Microsoft, Alexander Gostev Kasperksy Lab
Iran arrests 'nuclear spies.'
Vancouver Stuxnet articles.
Inside Stuxnet.
Christian Science Monitor.

PROGRAMMING CHALLENGE 1: Conway's Game of Life - DUE TODAY
Participant demonstrations...
PROGRAMMING CHALLENGE 2: Schelling's Segregation Model & Assimilation
The Model: Segregation-Assimilation 23:
Introduction to the simulation's behavior and the underlaying code..
Representation of Space: Cellular / Raster.
Representation of Time: Random Polling.
We will be downloading the zipped project files and modifying them.
The application has grown quite complex, so I would advise you to print out the existing code, highlight the functions, and study how each works internally and how all work together...
|
October 7

PROGRAMMING CHALLENGE 2: Schelling's Segregation
In-class exploration, experimentation and enhancement...
DISCURSIVE CHALLENGE 2: DUE THURSDAY
Please check this calendar and course documents for new readings.
Engage others in our class on Discussion Board Forum #3.
GO TO BLACKBOARD:
Momentarily setting aside the fact that we do not yet know how to create a convincingly human software agent inside a computer, and at the same time supposing that it was possible to create a software agent in the way the author describes, please read the following three texts with some sympathy to the author's arguments, and some attention to the cultural mileau at the time that they were written (at about 20-year intervals):
Time Magazine THE THINKING MACHINE - CAN MAN CREATE A SUPERMAN? (1950).
Stanislaw Lem NON SERVIAM. In A PERFECT VACUUM. (1971).
Greg Egan PERMUTATION CITY (Chapter 1). (1994).
(All three are available on Blackboard's "Course Documents" page.)
Clearly, the last two readings are fiction, but even the first, back in 1950, quotes some pioneering computer scientists suggesting that these agents are in many ways "alive." In these accounts, are the software agents' perceptions of the world in which they find themselves (a computer universe) consistent with how the author describes the computational system in which they are embedded? Do the agents have any chance of knowing that they are inside a computer? Quoting the character Deckert from the movie BLADE RUNNER, "how could it not know what it is?" How do these notions compare with Ed Fredkin's formulation of "the other?" (The same epistemological questions are also asked in the movies THE THIRTEENTH FLOOR and DARK CITY.) Do these, plus Fredkin's writing tell us anything about how we come to know the world around us?
Please discuss these questions, then read someone else's discussion and pose a poignant question. Answer any question that is asked on your own thread.
That's it for the Discussion Board, but now think about the "agents" in the Segregation / Assimilation simulation. What do they know about the world they find themselves in? How can we give them added functionality to perceive their surroundings and make decisions based on what they see? Given the functions presently in the code, how would you enhance them to give them more "smarts?" This is what we want to try to do in designing new perceptions and rules for the simulation. Come with your ideas on Thrusday!" (Go watch THE THIRTEENTH FLOOR, DARK CITY or TRON for entertainment and inspiration.) |
Week
6 |
October 12
Break
|
October 14

DISCURSIVE CHALLENGE 2: DUE TODAY
Please check this calendar and course documents for new readings.
Engage others in our class on Discussion Board Forum #3.
PROGRAMMING CHALLENGE 2: Schelling's Segregation - DUE NEXT TUESDAY
In-class exploration, experimentation and enhancement...
Some additional cases....
|
Week
7 |
October 19
GOOD NEWS:
PhotoShop has been installed.
Defaults for Embarcadero RadStudio need to be reset by you.
After they are reset, they should "stick."
Your desktop should persist from time to time.
BAD NEWS:
Desktops have been erased.
This will happen at least once per semester, and more likely, more frequently.
Make sure to drag your project folder onto your USB drive and/or the H and P drives.
Always back up your work!
PROGRAMMING CHALLENGE 2: Schelling's Segregation - DUE TODAY
Participant presentations...

PROGRAMMING CHALLENGE 3 - INTRODUCTION - View from the Outside.
The Travelling Concert Tour (Version 10a), or
Travelling Ferenghi (3D Version G)
Problem
Version 10a creates 2 city types by default. The user may place cities with of up to 4 types by combining the Right and Left mouse clicks (how to do it) with the pressed and not pressed Shift key. Any distribution of cities may be reassigned 4 types randomly, or geographically by quadrant or by vertical bar. Type colors will NOT show if "ANY" is chosen, since with that option, city type is irrelevant. Fitness preference can be assigned for visiting different or same types of cities in sequence, or visiting cities in rank descending order (e.g. 3, 2, 1, 0). Users can add new rule-based fitness functions easily in the calcPathFitness() function beginning at about line 459.Try to enhance the functionality, but if you find that too daunting, shift your attention towards documenting various experiments.
Version G recreates the problem in three dimensions. It is very easy to add a third dimension into the calculations, making it very difficult for we mere mortals to understand. Creating a 3D color anaglyphic visualization is not all that difficult. We plot a CYAN dot at position x, y as usual. We plot the RED dot at x, y + kz, displaced to the right a proportion of its depth behind the display.
FOR THURSDAY: Play with both versions. Make sure you know how to operate all of the user controls and what they do. Make sure you understand how evolution works and what the visualizations mean.
DISCURSIVE CHALLENGE 3: DUE NEXT CLASS, ON THURSDAY:
ON PAPER: Write some suggestions as to how we could enhance this application. Write the suggestions in English. After each suggestion, write the suggested algorithm for implementing each suggestion in pseudocode. By now, you should know enough of C++ to be able to describe, at the level of detail that the computer understands, how you might be able to go about implementing an enhancement. Pseudocode is halfway between English and C++. Be prepared to talk about these and hand them in at the beginning of our next class, on Thursday, October 21st. |
October 21
DISCURSIVE CHALLENGE 3: DUE TODAY:
In-class discussion...
PROGRAMMING CHALLENGE 3 - INTRODUCTION - View from the Inside.
The Travelling Concert Tour (Version 10a), or
Travelling Ferenghi (3D Version G)
Problem
Version 10a Discussion continued...
|
Week
8 |
October 26

PROGRAMMING CHALLENGE 3 - Changing the rules...
The Travelling Concert Tour (Version 10a), or
Travelling Ferenghi (3D Version G)
Problem
Version 10a Discussion continued...
|
October 28
PROGRAMMING CHALLENGE 3: The Travelling Concert or Ferenghi Problem
DUE TODAY... Participant presentations...

PROGRAMMING CHALLENGE 4: Flocking
Introduction & Enhancement...
DISCURSIVE CHALLENGE 4: Schools of Evolutionary Computation
Reading handed out in class: EVOLUTIONARY DESIGN BY COMPUTERS, by Peter Bentley, Morgan kaufmann, San Francisco (1999). Read chapter 1 (pages 1-35). Compare and contrast these three different schools of EC:
GAs, originated by John Holland.
GPs, originated by John Koza. www.sigevo.org
EPs, originated by Lawrence & Gary Fogel www.natural-selection.com
World Congress on Evolutionary Computing (CEC). http://www.wcci2010.org/topics/ieee-cec-2010
Use as some of your examples, problems from original resources and/or conference proceedings, problems that are particularly amenable and best suited to each of the three approaches. Due, Tuesday after break. You might also find some interesting artuments here:
Steven Bankes, www.evolvinglogic.com |
Week
9 |
November 2
DISCURSIVE CHALLENGE 3: Schools of Evolutionary Computation
Due today... Class discussion of results...

PROGRAMMING CHALLENGE 4: Flocking
More on the software...
|
November 4
PROGRAMMING CHALLENGE 4: Flocking
In class work on enhancements...
|
Week
10 |
November 9

PROGRAMMING CHALLENGE 4: Flocking
In class work on enhancements...
Demonstration of Flocking9, a full-screen, free-running, nothing-but-graphics "tweak" on flocking with Canvas->Polygon() rendered agents. |
November 11
Announcement for GECCO 2011.
Track on Artificial Life, Robotics and Evolvable Hardware.
PROGRAMMING CHALLENGE 4: Flocking
In class work on enhancements... |
|
Computers arose from the WW2 project of decrypting secretly encoded German communications to and from their U-Boats using the Enigma machine. Those machines, the proto-computer used to decrypt the messages, and subsequent cryptologic projects still lead the development of computation. We have an opportunity to visit:
the National Cryptologic Museum (at NSA, Maryland) and
the International Spy Museum (at Washington, D.C.)
on Friday, November 19th. We leave at 6:00 a.m. sharp and return around 10:00 p.m. Funds have been provided by the Dean. Transportation, meals and admission fees are prepaid. Please reserve a seat NOW. Also, you are required to complet and sign a university disclaimer and waiver. If you would like to join us, please complete it and get it to me ASAP. The document is here:
PLEASE SEE SEPARATE PAGE FOR FIELD TRIP - GO HERE... |
Week
11 |
November 16
PROGRAMMING CHALLENGE 4: DUE TODAY
Participant demonstrations...
DISCUSSION FORUM #5: DUE NEXT TUESDAY
Speculative science...
Introduction to Real-World computing:
The world of sensors and actuators...
Introduction....

PROGRAMMING CHALLENGE 5: Physical Computing
Introduction...
|
November 18
PROGRAMMING CHALLENGE 5: Physical Computing
Enhancement... |
Week
12 |
November 23
DISCUSSION FORUM #5: DUE TODAY
Speculative science...
PROGRAMMING CHALLENGE 5: Physical Computing
Enhancement....
|
Thanksgiving recess
|
Week
13 |
November 30
Discussion of and Work on Challenge 5 and/or Course Projects...
|
December 2
Work on Challenge 5 and/or Course Projects... |
Week
14 |
December 7
Flip-dot video-symphony by Alpha-Zeta.
Steam-Punk Dream Machine - Charles Babbage's computer brought to life...
PROGRAMMING CHALLENGE 5: Physical Computing - DUE TODAY
Project Presentations, only if you are NOT using physical computing as your course project. |
December 9
Coffee, cookies & refreshments:
Course evaluations:
Supplementary questions:
Course Project Presentations... |
No
Final |
No Final |
No Final |