CALENDAR
subject to change...

ALiCE:
Artificial Life,

Culture & Evolution

ISIS
Information Science & Information Studies Program.

Computer Science
Visual Studies
72
Simulations using Multiagent and Evolutionary Computation

Fall 2008

Lab: Tu/Th 10-12:50
Perkins LINK Classroom "6"

nick.gessler(at)duke.edu

"A New Way of Knowing" Commencement Address, June 15, 2008. Nicholas Gessler, Founding Faculty Member, UCLA Human Complex Systems Program:

In Donald Rumsfeld's controversial career, one statement of his stands out as an admonition against simplistic plans and idealized expectations:

There are known knowns. These are things we know that we know. There are known unknowns. That is to say, there are things that we know we don't know. But there are also unknown unknowns. There are things we don't know we don't know. Donald Rumsfeld

Perhaps, one of these "unknown unknowns" for Donald Rumsfeld was complexity. Perhaps, he didn't know that he didn't know the importance of the complex variety of perceptions, beliefs, goals, plans and actions in the world of social and cultural affairs. For us, in the Human Complex Systems program, social and cultural complexity is a "known unknown." It is the focus of our work. We know that we don't know the often counter-intuitive processes at work in society and culture, processes that interact and co-evolve in a dynamically ever-changing world. It is this complex network of causes and effects that we seek to describe, to understand and to explain in our Human Complex Systems Minor.

For us, complexity is a "known unknown," an unknown that was once thought to be unknowable.

The U.S. Department of Education writes: "The challenges of the 21st century will require new ways of thinking about and understanding the complex, interconnected and rapidly changing world in which we live and work. And the new field of complexity science is providing the insights we need to push our thinking in new directions." A Report of the U.S. Department of Education

Much of complexity science arose from the general discovery of computation in the natural world around us, and the specific quest to build machines, computers, on which to simulate these multi-agent systems. As the power of consumer-off-the-shelf computers has grown, as the languages that we use to talk to computers have become more available, and as both have declined in cost, the desktop computer has become the instrument of choice for exploring our own ideas through simulations written by our own hand. No longer must we exclusively rely on someone else's programmed applications; we can write our own. No longer must we passively accept vague verbal arguments pretending to tell us how the complex world works; we can translate those into would-be worlds. Now, albeit with unrelenting effort, we can build artificial worlds, artificial societies and artificial cultures on our own. We can experiment with the theories and hypotheses they embody on desktop laboratories, evaluating one "what-if" scenario after another. In doing this, we can tell which worlds are plausible and which are not, which ideas at their foundations are credible and which are not. Among a wide range of theoretical explanations we can separate those within the realm of possibility from those that lay outside reality. It is not an easy task, but it is both insightful and necessary. . .

Rushworth Kidder, President, Institute for Global Ethics, reminds us: "In times of fear people turn to fundamentalist mindsets, and I don't mean that only in terms of religion. There's economic fundamentalism; there's political fundamentalism, and so forth. And that's really a reducing of the complexity to very clear black versus white, right versus wrong, issues. When that happens, it is very easy for people to take stark, and harshly polarized, points of view and simply lob bombs back and forth at one another verbally. I think there is no question that that is, to some extent, the nature of the discourse in this country right now. And I long to have us move to an understanding of the complex nature of these things." Rushworth Kidder (President, Institute for Global Ethics). Radio Interview, "The World," November 22, 2005

It is the little things that build the underpinnings for both our highest triumphs and our deepest failures. It is an aphorism of our field to say that complexity arises from the bottom-up: from the seemingly disordered chaos of local rules there arise ordered global patterns of behavior. In this interpretation of emergence, "Both God and the Devil are in the details."

Next year I will be leaving UCLA to build a program in "Artificial Life, Artificial Culture and Evolutionary Computation" at Duke University. I will miss my colleagues here, with whom I worked to build our program in Human Complex Systems. I will also miss the many students I have had who have inspired me with their new insights and ideas and who have pushed me towards confronting the new challenges in our field, just as I have pushed them towards confronting the smallest details of cultural processes. To the many parents who are here, I congratulate you on your daughters' and sons' accomplishments. Your investment in their education has reached one of many levels of fruition. Congratulations to you all. And many "thank you's" to my colleagues, to our students, to their parents, and to our friends…

On a lighter note, earlier this week I went to see the movie IRONMAN. I encourage you to see it. Two scenes took my breath away: In it you will see a marvelously compelling simulation of a 3D computer graphics terminal of the future. You will also see a wonderfully convincing simulation of a robotic suit. These are both the result of astronomically complex computer calculations. Think of the millions of bottom-up computations that went into this production. Think, for a moment, what might happen if this talent were turned towards modeling the social and cultural issues of our time?

I would also encourage you to attend the upcoming conference on computer graphics called SIGGRAPH, the Association for Computer Machinery's Special Interest Group on Graphics. It will be held at the Convention Center in Los Angeles from August 11th to 15th. There you will see the latest innovations in simulation, largely for the entertainment industry. It is those techniques that we must learn to master. Again, that is SIGGRAPH (spell it out). Some of us will be there…

In this talk I've focused mostly on simulation, the re-creation and re-presentation of social and cultural experience as a formal model. Both experience and reflection are essential to understanding; each informs the other. And, reflecting on reflection itself, you may come to realize that it too is another facet of simulation in… Again, "thank you all," my colleagues, our students, their parents, and our friends. . .

 

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).

 
 
 

Please look at a previous Course Calendar for an idea of what we will cover.

The theme of this course is how to represent social realities in computer simulations.
How do we construct more reliable, robust and comprehensive representions of the world?
How do we describe, understand and explain cultural phenomena?
Think about the advantages and shortcomings of the following representational media:
Thoughts - Natural Language - Writing
Art, performance, graphics, diagrams, pictures, cinema.
Mechanical, hydraulic and analog computation.
Computation as today's desktops, laptops, gamestations, supercomputers.

Think about these different media of representation
as cognitive/technological adaptations
to our social and physical environments...

We will also devote time to studying "networks of trust, secrecy and deception."
This will include the fields of cryptology, espionage and propaganda.

And, we will devote time working with physical artifacts from the history of computation as
well as programming realworld applications with sensors and actuators.

 
 
Tuesday
Thursday
 
   
 
Color Code:
Notes on previous days.
Color Code:
Reasonably certain agenda.
Color Code:
Just notes from last year.
 
 

Starting from scratch, SaveProjectAs is clicked ONLY ONCE at the beginning of an application BEFORE you push the GREEN arrow. Click SaveAll repeatedly.

To resume working on a previously saved project Double-Click on Project1.bdsproj. This will open Borland along with your project.

DO NOT type in or delete event-handlers by yourself. Let Borland do it.

ALWAYS use Borland with your application on the WorkSpace. NEVER use it directly with your USB or CD-ROM. Transfer folders between the WorkSpace and your USB or CD-ROM only when Borland is CLOSED.

Week 1

August 25

INTRODUCTION to the course and to Borland and C++ for Windows...

Until our Web resources are transferred to the Duke domain, they will be available at the UCLA domain, below:

What you need...
Our PARTICIPANTS page.
Our INDEX pages...
Our SIMULATIONS pages...

What is AGENCY?
agency as causation...
agency as functionality...
agency as sense, think & act ("STA")
complexity as multiagency
multiagent & agent-based-modeling

Handout and Review of the Fundamentals:
Dos & Don'ts
Borland IDE (Integrated Development Environment)
Windows API (Application Programmers Interface)
Windows & C++ Programming Fundamentals.

Discursive Challenge 0: Philosophy & Epistemology of Computation:
Time, "The Thinking Machine (1950).
Lem, "Non Serviam" (1972).
Minky, "Nara Lecture" (19xx).
Gessler, "Review) (20xx).

Video: Karl Sims' "Evolved Virtual Creatures."

Physical Computing Artifacts: Core Memory,

August 27

Video: Karl Sims' "Panspermia."

Programming Challenge 0: Halfway There
continued...

Bring your USB memory and writable CDs.

A Step-by-Step Review of the Fundamentals:
Borland IDE, Windows API and C++.

We review what we have written and continue to enhance our first simulation using Borland Development Suite 2006 for Windows C++:

Remember: unplug your USB when using BORLAND
Pausing to probe the value(s) of a variable
Adding an Icon - IconEdit32

Some Tweaks:
Adding Color - the ColorRamp function
Pasting-in (stealing) code...

For Tuesday: Practice writing applications from scratch.

 

 

The Standing Assignment for All Programming Challenges
DETAILS

Explore - Thoroughly familiarize yourself with the application and its behavior.
Enhance - Improve the visualization and the interface and modify the multiagent algorithmic code.
Experiment - Document in color screen shots and text your new "what-if" scenarios.
Enjoy - Be creative! Be bold! Some things will work; some won't.

Week 2

September 2

Video: "A Gentlemens' Duel" and

Some selections fro SIGGRAPH and VPRO Amsterdam's ARTIFICIAL LIFE.

In-Class Individual Practice and Review...

September 4

Programming Challenge 0: Halfway There
continued:
A Function with parameters...
A "Shadows" algorithm...

Some Enhancements on our WebSite:
"Bent" (change + to -)
"Sonified" (using MIDI)
Changing the divisor.

From the Visual Component Library (VCL):
Allowing the user to import/export numbers:
xxxMouseDown, TTrackBar, TEdit...
Some aesthetic choices:
xxxTPanel, TGroupBox

From C++:Beep(), Sleep()...

Screen Capture: Alt/PrtScr & PhotoShop

 
 
Week 3

September 9

Programming Challenge 0: Halfway There
Due Today.

Discursive Challenge 0: Philosophy & Epistemology of Computation:
Due Today.

Participant demonstrations...

How do we write a parallel application to run on a serial machine?
Raster (cellular) space and Cinematic (time) scheduling...

Programming Challenge 1: Conway's Game of Life (a 2-dimensional, 2-state cellular automata).
We begin to build the program from scratch.

Explore - get to know it!
Experiment - describe & explain it's behavior!
Enhance - add new functionality!
Enjoy - play with it!

Discursive Challenge 1: "A New Cosmology."
Ed Fredkin argues that the world ("finite universe") as we know it is underlain by a physics ("digital mechanics") based upon cellular automata. What does he have to say about "other" and how we may come to know it? How is "other" related to the cellular automata that we've seen? What does Fredkin's epistemology imply?

Using PaintBoxMouseDown to put creatures in the world.

September 11

1d 2state CAs.
1d 3state CAs.
2d 2state CAs.

Programming Challenge 1: Conway's Game of Life:
continued...

Enabling your code to run on any Windows PC:
Project/Options/Linker/Linking/Linking: uncheck "Dynamic RTL."
Project/Options/Packages/Runtime Packages: uncheck "Build with runtime packages."

ramdomize() and Form/OnCreate.
Form/OnPaint and what it does.

TGroupBox...
TLabel...
Beep()...

Using PaintBoxMouseDown to put creatures in the world.
Using Sleep() to slow things down.

Coloring cells by their age at death.
Coloring cells by their age at birth.
Tracking population changes.

A digital counter...

 
Week 4

September 16

A collaborative project?

A digital counter...

Karl Sims' "Liquid Selves" and "Primordial Dance".
(Examples of CAs on the Thinking Machine CM-2.)

Mirek's Cellebration
A generalized 2d 2state application:
Try B1L3 with a single dot.
Try B1L34 with three contiguous dots.

Programming Challenge 1: Conway's Game of Life:
continued...

Enhance the application. You might include several buttons which introduce new (seed) patterns on the screen. Experiment and Explore the GOL and prepare an ethological study of several aspects of that world in detail: e.g. relative proportions of various species, interaction of species with single cells, different initial conditions, designing creatures with special behaviors, etc.

Participant demos of Conway's Game of Life:
Running CAs in reverse?

Using CAs as "trap-door" functions.

FileSave and FileOpen dialogs...
Remembering the Initial State.

Decrypting ASCII "text" data. (Handout)

Conway's Life Glossary (a creature directory)
Various ways to seed Conway's world with specific creatures...
Using a TComboBox or TRadioGroup to select creatures...

September 18

Participant demos of Conway's Game of Life.

Programming Challenge 1: Conway's Game of Life:
Due Today.

Discursive Challenge 1: "A New Cosmology."
Due Today.

More useful Components and Windows features:
Modifying zipped project files.

The 3 MouseDown Buttons: Left, Right and Wheel

Creating a palette of TImage transparent bitmaps (.bmp) which look like buttons...
(The bottom-left pixel will be taken as the transparent color and the RGB values must be dead-on exactly the same.)

Using PhotoShop to create spatial data:
ASCII revisited / representing the 8-bit byte in binary, decimal and hexadecimal (cf. the Windows / Accessory / Scientific Calculator).
What's in a bitmap (.bmp) image file? Some bitmap cryptanalysis with SynEdit.
Importing a bitmap (.bmp) image to create Red, Green and Blue arrays.
To think about: How would we build a multistate 2-D CA with rules to manipulate the RGB values of the cells?

Sonifications: Marking significant events with sounds which identify what is happening:
Beep(frequency, milliseconds)
#include <mmsystem.h>
for these two:

PlaySound("filename", "", SND_ASYNC)
midiOutShortMsg(device, message.word);

For the weekend: Familiarize yourself with the coding examples we have covered to date...

Note: I will be in Los Angeles and incommunicado until Tuesday....

 

 

 
Week 5

September 23

Windows/Accessories/Calculator(Scientific)
Bits, Bytes and ASCII Code.
ASCII in Binary, HexaDecimal & Decimal symbols.

Programming Challenge 2: Diffusion Limited Aggregation.
We incorporate TTimer to schedule historical changes in rules.

For Thursday:
Think of some do-able modifications that could be made based upon your knowledge of the code currently written for the application. How would you implement them?
Describe them clearly in English.
Translate these into pseudocode.
Translate pseudocode into valid code.

September 25

DVD: "Travelers: Snowball." Weta Digital Ltd. (SIGGRAPH 2007).
Growth by accumulation?

Programming Challenge 2: Diffusion Limited Aggregation.
Adding File Save and File Open.
Modifying the colorRamp() function to show cyclical spectra.

Writing rules with logical operators...

Developing ideas from class...

Note: I will be in Los Angeles again and incommunicado until Tuesday....

 

 
Week 6

September 30

Discursive Challenge 2: Video: National Security Agency.
A) In what ways do military research and development projects lead the development of new technologies in computation? Do some independent research to document and elaborate on some of the examples mentioned in the film.
B) Is there such a thing as an unbreakable code? If so, what are the logistics of using it? If not, how can such a code be broken?
C) What are thought to be the coding systems used by "terrorists" and "insurgents."
How are they thought to be set up logistically? How would you go about intercepting and decrypting them if you were the NSA?
Due Tuesday.

Demos of "tweaks" to the growth algorithm:
Demonstrations by Bill Bellis (introducing multiple agents) and Nick Mei (creating barriers to movement)...

PROGRAMMING CHALLENGE:Schelling's Segregation Model...
An introduction to its operation and to the "graphic user interface."
A review of writing logical "rules" for local behaviors.

October 2

Programming Challenge 2: Diffusion Limited Aggregation.
Due Today.
Demonstrations...

PROGRAMMING CHALLENGE: Schelling's Segregation Model...
An overview of the code...
The difference between the canonical "segregation" and "assimilation" models.
Feel free to stay within one canon or to mix the two canons...

 
Week 7

October 7

Discursive Challenge 2: Video: National Security Agency.
Parts A), B) and C) due today.

PROGRAMMING CHALLENGE 3: Schelling's Segregation Model...
Some added tweaks:
A) The neighborhood has been expanded to 48 cells which also means that a 24 cell ring neighborhood is available. A double ring could also be defined.
B) The application can now accommodate assimilation. Note that a modification must be made to keep the program from halting.
C) Demo of some new patterns which emerge with ring neighborhood rules.
D) What about mixing segregation and assimilation rules?

October 9

PROGRAMMING CHALLENGE 3: DUE TODAY.
Demonstrations...

DISCURSIVE CHALLENGE 3: 7 Major contributions to Alife.
Video (90min): "Artificial Life," VPRO Amsterdam (1994).
Based upon your notes from the video and your own independent research, critique the major contributions (through to the present) made by:
Chris Langton, John Holland, Rodney Brooks, Stuart Kauffman and Luc Steels (using the video as a beginning) and John Koza and Gary David Fogel (using the Web). Please pay particular attention to the scientific philosophies and epistemologies they espouse.

 
 

Evolution On the Web

Alife Fusebox
Dawkin's Biomorphs
Rob Saunder's
GenArt Evol

John Mount's
Genetic Art IV

Week 8

October 14

FALL BREAK - NO CLASSES TODAY

October 16

DISCURSIVE CHALLENGE 3: Major contributions to Alife.
Due Today.

MIDTERM GRADES:
xxxxxYour midterm "grade" is only an indicator. It will not be averaged in
xxxxxxxxxxto compute your final grade.
xxxxxYour midterm grade will not prevent you from earning an "A" and
xxxxxxxxxxit will not guarantee you an "A" in the course.
xxxxxThe second half of the course builds upon your mastery of the first
xxxxxxxxxxhalf, and I'm looking forward to some really exciting and
xxxxxxxxxx
creative applications in the next 8 weeks.
xxxxxI gave no "+"s or "-"s but I may do so in the final grading.
xxxxx"A" means you are doing well, and I'm expecting even better work
xxxxx"B" means that you need to engage more deeply in the challenges.
xxxxx"C" means that you are missing some challenges. Get them in!

THE ARTS WAREHOUSE: A laboratory for ALiCE.
xxxxxVisualizing Space: perspective versus true 3D and Stereo imagery.
xxxxx
The "Arts Warehouse," our laboratory for next semester...

PROGRAMMING CHALLENGE 4: Evolutionary Computation
The Evolutionary Concert Tour (a.k.a. The Traveling Salesman's Problem)

Evolution, through natural and artificial selection as described by both
Charles Darwin and Alfred Russel Wallace, is responsible for the creation
of the most complex information processing organism we know, namely us.
We are now able to insert that process into the software we create...
The application contains some seemingly "silly" options.
xxxxxUnless you can justify your experiments by proposing reasonable scenarios
xxxxxfor what appear to be unreasonable options, don't experiment with them.
xxxxxFor instance, the "longest path" option produces visually confusing
xxxxxresults, and unless you can make convincing sense of them, don't bother
xxxxxwith them.
Construct some difficult problems to solve:
xxxxxThe arrangement of cities with or without obstacles. This may include
xxxxxcity patterns which are inherently difficult (e.g. spirals), pathways that
xxxxxare blocked by barriers, pathways which may change as the result of
xxxxxpenalties extracted by barriers, etc. The idea is to deal with complexity.
Compare / contrast the solutions in the fitness landscape:
xxxxxAre solutions of 100 runs clustered according to fitness?
xxxxxDo members of a cluster of solutions follow similar paths? Why? Why not?
xxxxxHow do local and global optima develop through "hill-climbing?"
Tackle some difficult but theoretically important questions by modifying code:
xxxxxHow does a particular solution get "stuck" with a sub-optimum path length?
xxxxxModify the "recombination" code to evolve good solutions faster.
xxxxxDoes sexual or orgiastic reproduction improve performance over asexual?

DISCURSIVE CHALLENGE 4: Evolutionary Computation
Provide me with a carefully though out application for Evolutionary Computation
in the subject area of your choice and sketch out the functions (steps) required.

xxxxxWhat variables will be important?
xxxxxHow you will represent those variables in computer code?
xxxxxHow will you determine fitness?
xxxxxWhat sort of reproduction and recombination will you use?
xxxxxI want you to be as complete as possible, your application may become
xxxxxthe focus of a programming challenge for next semester.

 
Week 9

October 21

Evolutionary Computation (continued...)
Evolving the shortest path among points in 3-dimensions.
Evolving the shortest path along roads in the Research Triangle.
Paying close attention to the implementations of reproduction and heredity.
A specific evolutionary problem may optimally require different representations of the individual and different implementations of the mechanisms of evolution.
Should the amount of hereditary fidelity (the inverse of the variation producing mechanisms of mutation, recombination and cross-over) increase as the population reaches its "optimum?"

Reading: Peter Bentley, "Evolutionary Design by Computers."

VHS Video: John Koza, "Genetic Programming III."

In-class work on challenges...

October 23

Debugging your code:
Setting Breakpoints, Tracing Lines of Execution, Trace-Into, Step-Over, and Run-Until-Return.

VHS Video: Karl Sims, "Galapagos."

Evolutionary Computation (continued...)

Key Players:
Lawrence, David & Gary Fogel's NATURAL SELECTION INC.
Steven Bankes, Robert Lempert & Steven Popper's EVOLVING LOGIC.
John Koza's GENETIC PROGRAMMING.

Key Conferences:
GECCO - Genetic & Evolutionary Computing Conference - Montreal, Canada - July 8-12, 2009.
CEC - IEEE Conference on Evolutionary Computation - Trondheim, Norway - May 8-21, 2009.
ALIFE - IEEE Symposium on Artificial Life - Nashville, Tennessee - March 30 – April 2, 2009.
SIGGRAPH - International Conference & Exhibition on Computer Graphics & Interactive Techniques - New Orleans - August 3-7, 2008.

In-class work on challenges...

 
Week 10

October 28

Evolutionary Computation (continued...)
Further examples...

Discussion of Discursive Challenge 4: Applications of evolutionary computation in the subject area of your choice...

Quick overview of flocking (schooling, herding, crowd behavior) applications...

In-Class Work Evolutionary Computation Challenges..

An introduction to our flocking simulation for Programming Challenge 5.

October 30

PROGRAMMING CHALLENGE 4: Evolutionary Computation
DUE TODAY

DISCURSIVE CHALLENGE 4: Evolutionary Computation
DUE TODAY

Participant demonstrations...

Programming Challenge 5: Flock, Herd, Crowd Behavior (Flocking)
We now move away from:
xxxxxSpace: Raster (cellular)
xxxxxTime: Cinematic & Random
And introduce:
xxxxxSpace: Vector
xxxxxTime: Sequential & Random

 
Week 11

November 4

3D Evolutionary Concert Tour revisited:
a color anaglyph...

Programming Challenge 5: Flock, Herd, Crowd Behavior (Flocking)
New images, agent attributes and rules...

November 6

Programming Challenge 5: Flock, Herd, Crowd Behavior (Flocking)
New images, agent attributes and rules...

In-class work on challenges...

 
Week 12

November 11

Real World Interfacing: Usign the EZIO analog-to-digital / digital-to-analog converter to talk to sensors and actuators:
Virtual Theremin: InfraRed rangefinders and the MIDI device.
Virtual Slot Machine Reels: optical interruptors and the stepper motor.

In-class work on challenges...

November 13

Real World Interfacing: Usign the EZIO analog-to-digital / digital-to-analog converter to talk to sensors and actuators:
Virtual Theremin: InfraRed rangefinders and the MIDI device.
Virtual Slot Machine Reels: optical interruptors and the stepper motor.

In-class work on challenges...

 
Week 13

November 18

"SOCIAL COMPUTING IN 2020" BLUESKY INNOVATION COMPETITION
http://socialcomputing.ucsb.edu/contest2020/

In the Darwin Sesquicentennial year of 2009, 150 years since the publication of The Origin of Species, do you think there would be interested in participating in:
Simulating Human Evolution? This seminar would be taught here in Link Classroom #6 and would focus on simulations of greater complexity than our current Flocking application. In addition to hands-on programming challenges, we would survey the current literature on human evolution (the fossil record) to give computational life to theories of behavioral, cognitive, and physical evolution and co-evolution in varying environments as well as to in-group and out-group competition among different ages, sexes, kin and specializations. Our goal would be to create simulations which test various "what-if" scenarios of human evolution based upon current research by experts in the field
.

The Lorenz Attractor in 3D Anaglyph, how to do it...
You will normally plot only two dimensions, X and Y, to the display. Plot these in RED. To render the hidden Z dimension, add a proportion of it to the X dimension and plot it in CYAN, as X + pZ (where p is that proportion). This will produce an anaglyph with some problematic artifacts where RED and CYAN are plotted to the same pixel. These artifacts may be eliminated by adding code to ensure that RED and CYAN combine to produce WHITE.

Note: 3D anaglyphs could easily be added to the plot of the tracks of the agents in the Flocking simulation. A more difficult challenge would be to rewrite the flocking simulation in 3D. Combining RED and CYAN to produce WHITE is straightforward when plotting individual pixels, but could be quite complex when plotting lines or PolyLines.

Building and uploading your own website:
Adobe DreamWeaver for content development.
CoreFTP for file transfer.

Information: http://oit.duke.edu/web-multimedia/web/webpage/faq.html
Upload to host: login1.oit.duke.edu
Upload directory is: afs/acpub/users/x/y/netid/public_html
Public URL to your website is: http://www.duke.edu/~NetID

Exercises, films, readings, lectures and discussions:
Other Things-That-Think: Precursors to the modern computer, the origins of information science and the nature of intermediation. The drive towards augmented cognition: things to think with under duress. Analog and digital devices. Mechanical, electromechanical and electronic devices. The role of cryptology in nurturing new technologies.

In-class work on challenges and course project.

November 20

Programming Challenge 5: Flock, Herd, Crowd Behavior (Flocking)
DUE TODAY

Programming Challenge 6: Interfacing to the Real World through Sensors & Actuators
DUE TODAY

Participant Demonstrations.

An Introduction to Cryptology: The Vernam Cipher.

Discursive Challenge 6: The Vernam Cipher.
Using the LowerCase ASCII version, document your answers to these questions:

(Remember, you must use all lowercase and no spaces or punctuation are allowed.)

Although this messages looks like cleartext, it is, in fact, a cipher:
Hope you are well this morning.
Two different informants provide you with two different keys:
ezbxg naffd czrdo gvqlv ymeyo.
gvwdf vlmqk rkdgs ugrtv qjtvi.

Which is the correct key?
What does this tell you about the security of the system?

 
Week 14

November 25

Discursive Challenge 5: Software Design. DUE TODAY.
Document how your own approach to writing code has evolved during this course and compare / contrast your own personal experience with that of the authors of the articles on software design. In other words, cognitively, can you relate to what the authors are talking about when they tell you that they run parts of programs in their heads? Can you explain what is going on in your head as you write or modify a program? And if daydreaming about going to the beach helps in the long run, mention that as well.

Discursive Challenge 6: The Vernam Cipher. DUE TODAY.

Exercises, films, readings, lectures and discussions:
Other Things-That-Think: Precursors to the modern computer, the origins of information science and the nature of intermediation. The drive towards augmented cognition: things to think with under duress. Analog and digital devices. Mechanical, electromechanical and electronic devices. The role of cryptology in nurturing new technologies.

In-class exercises in pre-PC cryptology and computing....

Manual Mono and Poly-alphabetic Substitution Ciphers:
Paper methods and ryptographic slide rules:
Lawrence Engineering Slide Rule,
Plastic 10-disk Jefferson Wheel.
French Nicolas Bion Cipher Disk. (c. 1700s)
Cyrillic Cipher Disk. (c. 1920s)
German Pseudo-Random key generator. (c. 1950s)
Aristo Cipher Slide Rule. (c. 1950s)
US GRA-71 Cipher Disk (c. 1960s)
US M-94 Jefferson Wheel (c. 1940s)

template

In Class Crypto Challenge A: The slide rule, Jefferson wheels and US M-94.

In-class work on course project.

November 27

!!! Have a Great Thanksgiving !!!

 
Week 15

December 2

Course Evaluations...

Exercises, films, readings, lectures and discussions:
Other Things-That-Think: Precursors to the modern computer, the origins of information science and the nature of intermediation. The drive towards augmented cognition: things to think with under duress. Analog and digital devices. Mechanical, electromechanical and electronic devices. The role of cryptology in nurturing new technologies.

In Class Crypto Challenge B: The electromechanical rotor and Swiss NEMA (Neu Machine).

In-class work on course project.

December 4

Coffee, cookies & refreshments:

Course Project Presentations...

 
No Final

No Final

No Final