"What if?" Explaining the past; predicting the future.
"Show me. Build me a model or a simulation. Let's put your ideas to the test!"


CALENDAR
Subject to change.

COMPLEX SYSTEMS
Fall 2015
Duke Kunshan University

Nicholas Gessler, Ph.D.
Classroom 3101
Office 1076

nick(dot)gessler(at)duke(dot)edu



 
 

WE WILL:

  • EXPLORE SOME AWESOME MODELS OF COMPLEXITY.
  • THINK AND TALK ABOUT THE PHILOSOPHY, EPISTEMOLOGY AND IMPLICATIONS OF COMPUTER SIMULATION AND COMPLEXITY.
  • WATCH SOME RELATED AND INSIGHTFUL SCIENCE FICTION MOVIES.
  • WRITE, CREATE AND MODIFY SIMULATIONS OF OUR OWN DESIGN.
  • ENHANCE, EXPLORE AND EXPERIMENT ON THESE WORLDS TO ENJOY JOY THE RICH ENTAILMENTS THEY PRODUCE.

 

ON THE 1st DAY OF CLASS:

  1. We will be handing out 1 USB memory stick, 12 writable CDs or DVDs with paper sleeves (no plastic boxes) and 12 letter-size (8.5 x 11") sheet protectors. Please bring your USB memory stick to class every day.
  2. Please Familiarize yourself with Windows for PCs. (I'm sorry, we will not be using Macs.)
  3. I will distribute a booklet of notes on the C++ language and the Windows API (Application Programmer's Interface) on our first meeting. You can also download it HERE.

We will learn how to speak to the:

  • PC computer: C++
  • Windows Application Programmer's Interface (API)
  • Embarcadero Integrated Development Environment (IDE)

Look at the applications on our SIMULATIONS page (or simply click the "Simulatiions" image above.) Double-click on the executables (.exe) and play.

INSTRUCTIONS:

  1. Ask questions, talk, be creative and have fun.
  2. Be amazed by the code you write in C++ for Windows.
  3. Realize that you are about to become C++ graphics programmers!

And the signifieds butt heads with the signifiers,
and we all fall down slack-jawed to marvel at words!
While across the sky sheet the impossible birds,
In a steady, illiterate movement homewards.

Joanna Newsome,"This Side of the Blue"
(2004 Drag City Records).

There are, indeed, things that cannot be put into words... They make themselves manifest... They are what is mystical...

Ludwig Wittgenstein
(Tractatus Logico-Philosophicus).

I used to think that the brain was
the most wonderful organ in my body.. Then I realized who was telling me this.

Emo Phillips, Neuropsychology: Clinical and Experimental Foundations

 

Tuesday 25 August

Week 1

Challenge 0
The Chaos Game

 

THE 14 WEEK COURSE IN COMPLEX SYSTEMS AT DUKE, DURHAM
A look at the long version and what we cover.
The CALENDAR pages for previous courses will show you what we do.
Our SIMULATIONS pages.

THE 7 WEEK COURSE IN COMPLEX SYSTEMS AT DUKE, KUNSHAN
We cannot cover everything we cover in the 14 week course.
This course may require +/- 6 hours of computer work outside of class time.
Grades are based on your successful engagement with the material.
It is possible for everyone to receive an "A" regardless of your experience.
To receive an "A" you must, at least, turn in all assignments.
The grade "A+" is reserved for exceptional work.
Do not miss classes. You are responsible to attend all meetings.
Use electronic devices in class only for relevant purposes.
Do not use electronic or other devices for social media, games, etc.

INTRODUCTION TO THE PHILOSOPHY OF EVOLUTION AND COMPUTATION.

Theo Jansen ANIMARIS also check "ANIMARIS" in Google Images and VideosBoston Dynamics (recently acquired by Google)
Karl Sims - Evolved Virtual Creatures

DESCRIBING, UNDERSTANDING, EXPLAINING COMPLEXITY WITHOUT A COMPUTER - An age-old problem:

Selected Works of Mao Tse-tung, Volume 1
ON CONTRADICTION (August 1937)

Throughout the history of human knowledge, there have been two conceptions concerning the law of development of the universe, the metaphysical conception and the dialectical conception, which form two opposing world outlooks... As opposed to the metaphysical world outlook, the world outlook of materialist dialectics holds that in order to understand the development of a thing we should study it internally and in its relations with other things; in other words, the development of things should be seen as their internal and necessary self-movement, while each thing in its movement is interrelated with and interacts on the things around it. The fundamental cause of the development of a thing is not external but internal; it lies in the contradictoriness within the thing. There is internal contradiction in every single thing, hence its motion and development. Contradictoriness within a thing is the fundamental cause of its development, while its interrelations and interactions with other things are secondary causes...

Models ~= simulations ~= representations ~= artificial worlds
Physical models: WW2 situation room / Gulf War sand box / Ningxia sand box

How do we represent time, space and agency in a computer?

An Agent ~= an object embodying a cause-effect relationship
An Agent ~= an object with input-processing-output
An Agent ~= an object with sense-think-act (STA) architecture
An Agent could be a representation of a country, person, molecule, planet, etc.
Agent-based modeling ~= Multi-agent models ~= Numerical models

Mantra: "From local rules to global patterns of behavior."
Local versus Global scope.

Programming Challenge 0: The Chaos Game / Saga of the Indecisive Travelers

Let us imagine a family of nomads in the desert situated somewhere between three cities. Every morning they wake and set out for one of the cities. Which one? They have poor memories so they pick one at random. During the day they travel and when they are exactly half-way there they make camp for the night. The next morning they do the same. They pick a city at random, travel half way there, and spend the night. Perhaps they are indecisive or forget where they were headed, nevertheless they continue in this way day after day. Now imagine that we are archaeologists and wish to map the distribution of their campsites. What would that pattern be after 10, 100, 1000 or 10,000 days? We will write a small simulation to answer this simple question...

How we talk to the computer:

  • C/C++: the international language of computation in which the Windows OS, MacOS, Java Virtual Machine and almost everything else are written.
  • Windows Application Programmer's Interface (API): allows us to connect C/C++ to Windows "Virtual Components" like buttons, edit boxes and the mouse.
  • Embarcadero Integrated Development Environment (IDE): allows us to integrate C++ and the API seamlessly into our applications.

We hand out notes and materials.


Consult our SIMULATIONS pages for more examples of applications:

  • .exe - the executables
  • .txt - the C/C++ WinAPI code
  • .zip - the zipped project files for Embarcadero

Written Challenge 0:
Join us at the Conference Center, Room 1103, Tuesday 7:00 p.m. to watch:
Josef Rusnak (director). THE THIRTEENTH FLOOR, Columbia Pictures (1999)
Write no more than two pages (600 words) for the entire assignment. Do not spend more than one hour. Please turn in two copies on paper on Thursday before class.

Part A):

At the end of the film, I will replay for you the scene in which Douglas Hall and Jane Fuller first meet. Their dialog is strange on first viewing, but after having seen the film and understanding what is happening, tell me what is going between Douglas and Jane when they first encounter one another. One is confused; the other is lying. Why do they behave this way? What they say out loud is GLOBAL (accessible to all) but what they think is LOCAL (known only to each of them as individuals). The conversation and acting are nuanced.

If you wish to review this scene, THE VIDEO IS HERE.

I have transcribed it for you below:

1 Douglas Hall: One of the perks of the job.
Their attention turns to a stranger, Jane Fuller, standing in the bedroom...
2 Detective Larry McBain: Oh, this job has a whole lot of perks.
3 Douglas Hall: Can I help you?
4 Jane Fuller: I just talked to him two days ago. I can't believe he's gone... My name is Jane Fuller. Hannon was my father.
5 Douglas Hall: I'm sorry. I'm Douglas Hall.
6 Jane Fuller: You were the one he always wanted me to meet.
7 Douglas Hall: Really? He never mentioned to me that he had a daughter.
8 Jane Fuller: He didn't? I just arrived from Paris this morning. I was supposed to meet him. But then I heard.
9 Detective Larry McBain: My condolences Miss Fuller. I'm Detective Larry McBain, LAPD. I have to ask you some questions.
10 Jane Fuller: Of course.
11 Detective Larry McBain: (To Douglas Hall.) Would you excuse us Mr. Hall?
12 Douglas Hall: Huh? Sure. Yeah. (Turns to Jane Fuller) Have we ever met before?
13 Jane Fuller: No, that's not possible.
14 Douglas Hall: You look... very familiar. Nice to meet you Miss Fuller.

Part B:

Most science fiction stories take the form "if we accept A, B and C as truths, then X, Y and Z will follow as consequences." Usually A, B and C are beyond the realm of current science, but if we accept them and suspend our disbelief, then X, Y and Z will follow in a logical and reasonably scientific manner. In this respect science fiction is something like our "what if?" simulations. In this film, if we accept the A, B and C premises, how validly does the story develop the X, Y and Z entailments? How many levels of simulation and instances of simulation does the film refer to? How do the film-makers and the characters differentiate between the levels?

 
Thursday 27 August

Week 1

Challenge 0
The Chaos Game

Models and simulations as representations (re-presentations) of reality:
mental, cognitive, linguistic, artistic, physical, computational

ACTUAL OBJECT REPRESENTATION, MODEL, MAP
THING ITSELF LANGUAGE: WORDS, MATH, ALGEBRA
REFERRENT SYMBOL, WORD
SIGNIFIED SIGNIFIER

Joanna Newsome's song illustrated:

And the signifieds butt heads with the signifiers,

and we all fall down slack-jawed to marvel at words!

While across the sky sheet the impossible birds,

In a steady, illiterate movement homewards.

Maps as re-presentations of the land:


Lewis Carroll: Mein Herr, the Bellman's Map


WW2 war room situation maps


"Sand box" terrain maps

On Google Earth, fly to:

38°15'58.40"N 105°57'1.33"E
Is there anything unusual about this terrain?

33°36'39.33"N, 79°03'46.24"E
Compare it with this terrain.

An answer...

 

Tuesday 1 September

 

Week 2

Challenge 1
Cellular Automata

Programming Challenge 0: The Chaos Game / Saga of the Indecisive Travelers
Participant presentations...

Programming Challenge 1: Cellular Automata / Conway's Game of Life

Imagine a population of 10,000 automata (or robots). Each one is situated on a single square on a chess-board with 100 squares (or cells) on each side. Each automaton cannot move. It can be either alive or it can be dead. Now suppose the world changes like each frame on an old movie film. At every frame, each automaton counts the number of live cells in the 8 squares that surround it. If the automaton is dead and has exactly 3 living cells surrounding it, it will become alive in the next frame (or iteration). If the automaton is alive and has either 2 or 3 living cells surrounding it, it will stay alive in the next iteration. If either of these conditions are not met, the cell will either stay dead or become dead in the next iteration. Each of the 10,000 cells must make its decision without knowing what its neighboring cells will do in the next iteration. In order to eliminate the effects of the adges of this world, we let the world wrap around, from left to right, right to left, top to bottom and bottom to top. The rules are very simple. What patterns will emerge?

What do you think?

We will write a simulation to explore this simple question...


Written Challenge 1:
Conference Center, Room 1103, Tuesday 7:00 p.m.
Alex Garland (director). EX MACHINA, DNA Films (2015).

Interview with the film-makers.
Movie script.

On two occasions Caleb quotes Robert Oppenheimer (Director of the Manhattan Atomic Bomb Project) who in turn is quoting from the Bhagavad Gita:

Caleb: "I am become Death, the destroyer of worlds."
Nathan: There you go again, Mr. Quotable.

Nathan continues Oppenheimer's quote as he passes out drunk on the sofa:

I'd say we're about due a refill. Bottoms up. (BREATHING HEAVILY) NATHAN: "In battle, in the forest, on the precipice of the mountain. (VOICE CRACKING) On the... The great dark sea. In sleep, in confusion, in the depths of shame. (SOBBING) The good deeds a man has done before defend him. The good deeds a man has done before defends him. The good deeds a man has done before defends him. (SIGHS DEEPLY) It is what it is. It's Promethean, man.

Suggested length: 2 pages, double-spaced, one copy only on paper. Please turn this in on Sunday, September 6, at the beginning of class. Upload your work to SAKAI.

Of the three main characters in the film, Caleb is the most transparent. He has been charged with the task of determining whether Ava is conscious.

A) Why do the characters feel that the "Turing Test" does not measure intelligence or consciousness? What are they looking for as specific evidence that an entity (a human, a monkey or a robot) is conscious? In other words, according to the film, what is "consciousness" and how do we know that we have it?

B) What is going on in Caleb's mind is relatively clear, so let's ignore him. But what is going on in the minds of Nathan and Ava is obscure. Certainly, they say quite a lot to one another, but what are they thinking? Since Nathan is human, we might be able to guess his evolving state of mind. But what about Ava's mind? What is stirring inside her mind? Please recount the story from the perspectives of Nathan and Ava. There may be more than one way to understand their thoughts (even the film-makers are not sure). I am not interested in the morality or the ethics of the characters, only in how their inner (unspoken) thoughts and ideas (emotions?) develop.

 
Sunday 6 September

 

Week 2

Challenge 1
Cellular Automata

Written Challenge 1:
Alex Garland (director). EX MACHINA, DNA Films (2015).
Please turn in papers today. Discussion...
A) Why do the characters feel that the "Turing Test" does not measure intelligence or consciousness?
B) What is going on in the minds of Nathan and Ava?

Notes on grading:

The grades I give you will reflect both your "engagement with the challenge" and "your relative standing" compared to others in the class. I encourage you to develop some applications on your own for extra credit. The best way to learn to code is to play with the code. Please do so. For instance, write an application to throw two dice, to spin a roulette wheel or wheel of fortune, to pick a card from a deck. Write an application that does counter-intuitive things as a joke, for instance one which has a button that you cannot click because it runs away from the cursor, or a Window that shakes or changes shape. In this way you can have fun while at the same time you are learning to code.

Your course grade will reflect your engagement with, and command of, the materials. Your course grade will most probably NOT be an average of your programming and written challenges. Excellent later work will tend to cancel out earlier lesser work. For instance if your grades are: C C C B B B A A A and your course project is an A you will likely receive an A. When you learn to ride a bicycle or learn to drive a car, at first you fall over and sometimes crash. But with practice you get better until you are an expert. At the end you are an expert and deserve an A for riding or driving. Your early mishaps do not reflect your final abilities. So too is it with grades for this course...

A Field Trip:
Kunshan traffic surveillance and control, or
Jacquard weaving mechanism as the inspiration for Babbage's first computer and punched cards at Suzhous No. 1 Silk Factory.

Programming Challenge 1: Cellular Automata / Conway's Game of Life
Continued...

We clean up and speed up what we wrote on Tuesday.
We complete the algorithm and add some functionality:

Simplifying the code:
Creating the iterators as globals.
Creating more intuitive variable names.

Speeding up the code:
Creating worldBMP
showChanges().

Accessing outside files: Adding file-save and file-open functionality.

Adding creatures to the code:
TComboBox and the "Brief Illustrated Glossary of Terms in Conway's Game of Life."

We look at some of the code on our website...

 

Tuesday 8 September

Thursday 10 September

Week 3

Challenge 1
Cellular Automata

I have introduced you to coding in C/C++ by having you copy code that I present to you. I have tried to get you to think about the world as a system of agents that are linked to one another through causes and effects in some organized structure. An agent takes in information from its environment, it processes that information, and it does something as a result. In short it senses, thinks and acts. An agent could be an atom, dog, human or a planet. Programming and coding start with a problem to be solved. We think of ways to solve it in our minds. We write our thoughts as source code in C/C++. We organize that source code into a hierarchy of jobs that need to be done. Those jobs are functions with the higher level management functions at the bottom. I can show you how I construct a hierarchy of functions, but you need to try this on your own. Try to construct a simple program to help you understand a new object or function. For example, I wrote a "String Art" application to demonstrate colorRamp().

Written Challenge 2:
Please access the article by Robert Glass, "The Cognitive View" on SAKAI / RESOURCES (pages 1-7).
You have now been exposed to two weeks or more of programming. How well do his ideas reflect what goes on in your mind when you think about and write code? 1-2 pages, double-spaced, single-copy on paper, due Thursday, September 10.

Programming Challenge 1: Cellular Automata / Conway's Game of Life
Continued...

We finish file save() and open()
We import creatures from the Web
We look at some enhancements on our Website

TO THINK ABOUT: Is Conway's world a complete computational system?
Are there any limits to what we can build in a GOL world? Can it compute?
Watch
"Life in Life" by Phillip Bradbury.

THINK ABOUT PREDICTION:
"The World is Deterministic but Unpredictable by any Math or Calculus.
"
Is there a shortcut to predicting the state of Conway's World 1,000 iterations into the future?
Given some state of Conway's GOL, can we retrodict the state(s) that preceded it?
Conway's world is relatively simple; so what does this imply about more complex systems, like those of which we are a part?

ON YOUR OWN: Run Mirek's Cellebration to explore the variety of complexities produced from relatively simple cellular automata. More complex CAs are used to model air and fluid flow, the human heart, the weather, ship and aircraft hulls and thermonuclear exploisions.

Programming Challenge 1: Cellular Automata / Conway's Game of Life
Continued...

Movie Night (not required tonight):
Conference Center, Room 1103, Tuesday 7:00 p.m.
Mamoru Oshiiu (director). GHOST IN THE SHELL, Bandai Visual (1995).

 

15 September

17 September

Week 4

Challenge 2
Evolutionary
Computing

Programming Challenge 1: Cellular Automata / Conway's Game of Life
Participant presentations...

Programming Challenge 2: Evolutionary Computation
Evolutionary Concert Tour, Traveling Salesman Problem, Traveling Ferenghi Problem

Charles Darwin and Alfred Russel Wallace proposed the theory of evolution by natural selection in 1859. The mechanisms they elucidated explain how life has evolved for billions of years, culminating in us. What would happen if we wrote those same mechanisms of evolution into our computers? Could we evolve solutions to complex problems using variation, recombination (sexual reproduction) and selection? We can. Not only can we evolve solutions to problems and the computer code itself, but we can also evolve hardware by the same methods. Karl Sims has evolved strategies and tactics and even humor in his Evolved Virtual Creatures. We will use it to evolve solutions to the Traveling Salesman Problem and to unscrambled scrambled images.

A SEQUENCE OPTIMIZER
Finding the shortest path...

Written Challenge 3:
Conference Center, Room 1103, Tuesday 7:00 p.m.
Spike Jonze (director). HER, Annapurna Pictures (2013).

Programming Challenge 2: Evolutionary Computation
Evolutionary Concert Tour, Traveling Salesman Problem, Traveling Ferenghi Problem

Continued...

We make the problem harder with more constraints.

 

Friday, September 18

9:00 a.m. to 5:00 p.m. SCIENCE FICTION SYMPOSIUM
(Recommended, but not required.)

 

22 September

24 September

Week 5

Challenge 2
Evolutionary
Computing

Programming Challenge 2: Evolutionary Computation
Evolutionary Concert Tour, Traveling Salesman Problem, Traveling Ferenghi Problem

Continued...

We look at how to unscrambling a scrambled image.

Written Challenge 4:
Reading assignment:

Programming Challenge 2: Evolutionary Computation
Evolutionary Concert Tour, Traveling Salesman Problem, Traveling Ferenghi Problem

Continued...

Buying and selling stocks. Reconstructing a simple code.

 

29 September

8 October

Week 6

Challenge 3
Collective Movement:
Flocking, Herding,
Schooling, Orbits

Programming Challenge 2: Evolutionary Computation
Evolutionary Concert Tour, Traveling Salesman Problem, Traveling Ferenghi Problem

Participant presentations...

Programming Challenge 3: Flocking, Herding, Schooling, Swarming
Introduction...

><((((º>¸ ·´¯`·.¸. ><((((º> `·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸. ><((((º>
><((((º> `·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸¸.·´¯`·.¸><((((º>

Let's now create a world of more realistic agents, ones that can move in any direction and at any speed and that can perceive a richer environment around them. They can have many states like ages, sexes, friends, enemies. They move in vector space (not from cell to cell). They may represenbt herds of horses, flocks of birds, schools of fish, crowds of people, cars on highways, atoms in crystals or asteroids in orbits between the planets Mars and Jupiter.

Written Challenge 5:
Conference Center, Room 1103, Tuesday 7:00 p.m.
Alex Proyas (director). DARK CITY, Mystery Clock Cinema (1998).

 

Programming Challenge 3: Flocking, Herding, Schooling, Swarming

><((((º>¸ ·´¯`·.¸. ><((((º> `·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸. ><((((º>
><((((º> `·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸¸.·´¯`·.¸><((((º>

We introduce some new variations to our flocking simulations.

 

13 October

15 October

Week 7

Challenge 3
Collective Movement:
Flocking, Herding,
Schooling, Orbits

Programming Challenge 3: Orbits
Continued...

><((((º>¸ ·´¯`·.¸. ><((((º> `·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸. ><((((º>
><((((º> `·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸¸.·´¯`·.¸><((((º>

We introduce some new variations to our flocking simulations.

Programming Challenge 3: Orbits
Participant presentations...

><((((º>¸ ·´¯`·.¸. ><((((º> `·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸. ><((((º>
><((((º> `·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸¸.·´¯`·.¸><((((º>

Work on course projects...
We reserve class time for you to work on your course projects. You can either continue to enhance one of the previous challenges or work on a challenge of your own design.

 

20 October

Final Week

2:00 to 5:00 on Final Exam Day...

No final. Course project participant presentations
Coffee, tea and cookiies...