subject to change...

Artificial Life,

Culture & Evolution

Information Science & Information Studies Program.

Computer Science
Visual Studies
Simulations using Multiagent and Evolutionary Computation

Fall 2009

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


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


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

How do we best represent social realities in computer simulations? How do we describe, understand and explain complex cultural phenomena? How do we construct more reliable, robust and comprehensive representions of the world? How do we reconcile the results of individuals, groups and nations working at cross purposes? Think about the advantages and shortcomings of the following representational media:
Thoughts - Natural Language - Words - Writing
Art - Performance - Graphics - Diagrams - Images - Cinema

Mechanical, Hydraulic and Analog "Computers"
Today's desktops, laptops, gamestations, handhelds...

Think about these different media of representation as cognitive/technological adaptations to our social and physical environments. When to they succeed? When do they fail?
We will also have a critical look at "networks of trust, secrecy and deception," including the fields of cryptology, espionage and propaganda.
And, we will work with some physical artifacts from the history of computation as well building realworld applications which can sense the world and act upon it.

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



Genetic & Evolutionary Computation Conference
Montreal / July 8-12, 2009
CFP due January 28

Symposium on Cryptologic History

Laurel, Maryland / October 15-16, 2009

IEEE Congress on Evolutionary Programming
Trondheim, Norway / May 18-21, 2009
CFP due November 14

World Summit on Genetic and Evolutionary Computation
Shanghai, China / June 12-14, 2009
CFP due December 20

IEEE Alife 2009
Nashville / March 30 - April 2009
CFP due November 12

ECAL 2009: Darwin Meets von Neumann
European Conference on Artificial Life
Budapest / September 9-12, 2009
Cached Version


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.

Color Code:
Notes on previous days.
Color Code:
Reasonably certain agenda.
Color Code:
Just notes from last year.
This is mostly last semester's calendar. In order to keep up with the field,
Fall semester's calendar will reflect some changes based on current research, but will be similar in nature.
Week 0

August 25

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

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

Video: Karl Sims "Evolved Virtual Creatures."
can we evolve humor and personality?

Physically Mediated Cultural Cognition:
where does cognition reside?
does thinking require language?
how do materiality and physicality change cognition?
what is a computer?
what about thinking machines?

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

What are OBJECTS?
In the real world, objects have "properties",
they can sense and respond to "events"
they can act with different "methods."
So why not create computer languages that emulate the real world?
This is what "object oriented programming" is all about.

Jumping right in...
"An apocryphal story..."

rogramming Challenge 0: Halfway There
We write a Windows application from scratch, programming on the fly...
What things does our program have to remember? Let's call them "variables."
What jobs are needed to get the job done? Let's call them "functions."
These computers are constantly asking, "did someone press a key or button,"
"did someone move the mouse?"
They are waiting for "events."
The machine's responses to events are managed with "event handlers."

So, OK, let's get started...
there will be errors...

August 27

DVD Short: "Spy School: Inside the CIA Training Program" a special feature from the movie THE RECRUIT.
DVD Short: "The Mole" a special feature from the movie BREACH.
NUMBERS STATIONS: Some selections from "The Conet Project."
CUBAN ESPIONAGE: We focus on Cuba because their transmissions can be readily heard on your shortwave radio, but dozens of coutries transmit numbers codes, including the US and UK. The 2001 Montes case, the current Myers case, and some tradecraft: the anatomy of a communication.
(Like all of us, sometimes intelligence agents goof up.)

Don't be afraid of them...
Pausing your application lets you probe the values of variables.
If the error points to makes no sense, look directly above it.

Be thinking of how the code relates to the behavior of your software.

Borland IDE (Integrated Development Environment)
Windows API (Application Programmers Interface)
Windows & C++ Programming Fundamentals.

Programming Challenge 0: Halfway There (due next Thursday morning)
Continuation: Writing a Windows application from scratch, programming on the fly...
To re-open your work in Borland, simply double-click on Project1.cbproj.

Comment your code profusely...

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

"Discursive" Challenge 0: Philosophy, Than and Now (due next class)
TIME Magazine, Jan 23, 1950, "The Thinking Machine." Whether you agree with the "computists" interviewed, from today's perspective, prepare a cogent argument in support of their views with examples.
Marvin Minsky, "Public Lecutre, Nara," (1996). Whether you agree with Minsky or not, prepare a cogent argument in support of his views with examples.
Your argument may be creatively discursive, diagrammatic, graphic, artistic, or performative. Feel free to mine the Internet for material. Be sure to credit your sources. Please present your work next class (i.e. Tuesday, January 20th.)



From Wikipedia

The Standing Assignment for All Programming Challenges

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 1

September 1

The One-Time-Key (OTK) revisited:
The OTK must be truly random, used only once, and be as long as the message to be encoded.
If we have a "crib," that is to say we know something about what the cleartext should look like, we can do an exhaustive search to elimate all keys that don't produce that look. If we are expecting natural English cleartext, we can elimate all keys that produce gibberish. If we are expecting numerical cleartext which will then be decoded using a known straddling checkerboard, we can elimate all keys that produce invalid entries. The bottom line is that we will still be keeping every key that produce intelligible messages. Consequently, the OTK is unbreakable.

"Discursive" Challenge 0: Philosophy, Than and Now
(due today) Participant presentations...

Borland IDE (Integrated Development Environment)
Windows API (Application Programmers Interface)
Windows & C++ Programming Fundamentals.

Back up your project folder on your Network drive.
Click SaveAll after every few successful runs.
Save progressive versions of your work in different folders:

  1. Close down Borland.
  2. Give your Project Folder an incremented name, e.g. "halfwaythere2".
  3. Save the newly named Folder to your Network Drive.
Don't let BORLAND see anything other than your desktop.
Never invoke SaveProjectAs more than once.

Never write an event handler yourself: Let Borland do it by clicking under the Events tab of the Object.
Never delete an event handler yourself: Let Borland do it by deleting only the contents of the event handler. Leave the handler alone, including it's opening "{" and closing "}". The press Run.

Exploring the Halfway There algorithm: adding functionality, visualization and sonification:

Some enhancements on our simulations pages.

The Sierpinski Gasket courtesy of Tassity Johnson.

COLOR - Color Space and the Color Cube
Rendering with LIGHT rather than with PAINT:
The additive primaries: Black plus Red, Green, Blue (K+RGB)
The subtractive primaries: White minus Cyan, Magenta, Yellow (W-CMY) Revisiting what we did on Thursday:
Adding Color - a new & improved ColorRamp() function
Pasting-in (stealing) code...

Some new enhancements:
Adding a new function to count the maximum number of hits on a pixel.
Sonifying the result and other enhancements.

Some new visual components:
TTrackBar to select the number of iterations.
TEdit to show the iterations after a run.
TRadioGroup to select the type of visualization.
FormPaint to restore the screen when it is uncovered.
TPanel to create a more logical GUI (graphical user interface).
TLabel to enhance the GUI.

September 3

Some new enhancements:
Changing the Properties/Settings/Screen Resolution from 1024x768 to 1680x1050.
A faux shadows function.
Adding sound: Beep(), MIDI and PlaySound()...
Slowing things down for dramatic effect with Sleep().
Going where we haven't gone before: 3D?

Some tweaks to the algorithm (algorithm "bending"):
Changing the divisor.
Changing (corner + point)/2 to (corner - point)/2.

In-Class Individual Practice and Review...

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

Week 2

September 8

Demos of Halfway There

Begin Conway's Game of Life

September 10

Conway's Game of Life continued...

Week 3

September 15

More work with Conway's Game of Life...

Demonstrations of some enhancements to Conway's Game of Life:
Visualizing the evolution of the world along with its current state:
Coloring births by iteration.
Coloring deaths by iteration.
Allowing dead cells to decay before they disappear.
Using the GOL as a trap-door (one-way) function to protect passwords.
Building a computer inside the GOL: the four-tape digital counter.

When does the simulation "end?" Plotting the population through time.

The OnPaint event handler (preventing the graphics from being eclipsed).
Using a TImage on a TPanel for a "button."
Creating a transparent BITMAP image (only BITMAPS can be made transparent).
The bottom left pixel is used as the transparent color. Colors must match exactly.
File Save and file Open:
#include <fstream.h>
Save and Open file dialogs.


Some ideas to develop:
Sonify the application that tracks the population and change in population through time.
Make it easy to import configurations of "creatures" from text files.

September 17

Other 2d 2-state cellular automata:
Try B1L3 with a single dot.
Try B1L34 with three contiguous dots.

Mirek's Cellebration

Progress on importing "creatures" from text files.

Creating your own Website:

In class work on Conway's Game of Life:

Week 4

September 22

Programming Challenge 1: Conway's Game of Life (due today)!
Participant demonstrations...

Discursive Challenge 1: Fredkin's "Finite Universe" and realworld CAs (due today)!
Ed Fredkin outlines 10 approaches towards understanding the nature of "other." Pick 3 of those approaches and develop the arguments they entail...
Cellular automata underlay many natural processes in the world today. Search for some examples of CAs in the natural (including cultural) world and give a brief synopsis of how they work (the number of states, the dimensionality, the algorithms or rules). Please cite your sources as you would in any paper...

Since evolution is responsible for our passions, creativity and intellect, what surprises might we see when breathe evolution into our software? We will look at one example in depth. What might we expect once we introduce evolution into our technologies, our firmware and our hardware?

September 24


Jacquard, Babbage and the origins of computation from the weaving industry.

Stereo 3D systems: Stereopticon, Vectographs, Red/Cyan Anaglyphs, cross-eyed and parallel-eyed stereo pairs.

Programming Challenge 2: Trevelling Ferenghi Problem
(a.k.a. ECT, TSP).

The nodes may be interpreted as cities, households, or any other type of point location...
Penalties may also be interpreted as bonuses....

A focus on the "sweet spots" in the code:
Reproduction: Asexual, 50 parents / 50 children.
Recombination: Shuffle, rotate and reverse path segments.
The shortest path in 3d space with Red/Cyan anaglyphs.
The shortest path with restrictions: Borders (bonus or penalty), alternating between different households (or visiting all of one kind in a row).

Other tweaks:
Three kinds of households with restrictions on the order of visits.
One-way streets: penalty for switching E/W or N/S direction.
Curls: penalty for turning clockwise or anticlockwise.
Hubs: e.g. after every three household visits, must visit a hotel.
A changing fitness landscape: penalties change during run.
Priority: certain households should be visited first.

12 February 1809
19 April 1882

Evolution On the Web

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

John Mount's
Genetic Art IV

Week 5

September 29

Evolution on the Web: see the examples above...
TVideo: Karl Sims' "Evolved Virtual Creatures" and "Compilation."

Programming Challenge 2: Trevelling Ferenghi Problem
(a.k.a. ECT, TSP). Continued...

Let's discuss and see a few new enhancements and tweaks to the problem, to the evolutinoary mechanisms, to the visualization as well as certain starting configurations that produce interesting results.

October 1

Programming Challenge 2: Trevelling Ferenghi Problem
(a.k.a. ECT, TSP). Project due today...

Participant Project Demonstrations...

Week 6

October 6


October 8

Borland sold to Embarcadero

Help from Embarcadero Newsgroups

Help from the Borland / Help / Index

Pulling .wav sound files into your application:
See sound-in-app.htm

Programming Challenge 3: Segregation & Assimilation...
A fine-grained Version 18 which will accept the SLUIS DEM.
An improved Version 19.
Participant presentation of ideas for new rules.
A programmer's view of the way the world works and how to write the rules for the agents in that world.

Week 7

October 13

Programming Challenge 3: Segregation & Assimilation...
Working on rules...
Participant project pre-presentations...

VHS Video: Secrets of WWII - Cracking the Enigma Codes. Time Life Video (1998).

October 15

DVD: "Enigma"

Discursive Challenge 2: DVD "Enigma":
DVD "Enigma." You saw the documentary on Tuesday. Based upon that and other information you may find on the Web, confront this challenge: "Enigma" has been praised as a dramatic work and censured for the "artistic licence" it takes in rewriting history. You be the critic. What does it get right and what does it get wrong? Is the "artistic licence" that was taken effective in conveying the work and atmosphere of the codebreakers at Bletchley Park?

Discursive Challenge 3: "Hands-On" Enigma.
Virtual "hands-on" Enigma (see October 20)

I will be away at the NSA Cryptologic History Symposium, Johns Hopkins Applied Physics Lab.

Week 8

October 20

The U.S.S. Liberty Incident

A foundation for a Riot simulation with cops and activists. The behavior and the code behind it.

Programming Challenge 3: Segregation & Assimilation (due today)!
Participant project presentations... Please present BOTH the behavior AND the code behind it.

Discursive Challenge 2: DVD "Enigma" (due today)!

Discursive Challenge 3: "Hands-On" Enigma Part I - Due Today
Virtual "hands-on" Enigma: Encode a two or three sentence Enigma message. Use Dirk Rijmenants Enigma simulator (under Programs / CompSci72-001 / Enigma). Read the instructions (mouse over information plate and choose Help(pdf)). Turn in a full sheet of paper with your name, ALL the relevant settings, and your encrypted message on the top half. This will be redistributed to another student to decrypt for Thursday.

Discursive Challenge 3: "Hands-On" Enigma Part II - Redistributed

Programming Challenge 4: Flocking, Schooling, Herding, Crowd behavior...
Introduction to the user's side.
Vector representations of space.
Arrays of images vs. multiple Canvas erases and draws.
More complex representations of agents.
Rules of engagement...

October 22

Another spy case:
Christian Science Monitor
Huffington Post
AOL News

Discursive Challenge 3: "Hands-On" Enigma Part II - Due Today
Virtual "hands-on" Enigma: Encode a two or three sentence Enigma message. Use Dirk Rijmenants Enigma simulator (under Programs / CompSci72-001 / Enigma).

Programming Challenge 4: Flocking, Schooling, Herding, Crowd behavior...
Introduction to the programmer's side.
Vector representations of space.
Arrays of images vs. multiple Canvas erases and draws.
More complex representations of agents.
Rules of engagement...

Week 9

October 27

Programming Challenge 4: Flocking (continued)...
Arrays of images
More complex representations of agents.

Everybody to present detailed ideas, pseudocode and/or source code rules of engagement...

October 29

Programming Challenge 4: Flocking (continued)...
Pursuing Morgan's "Musical Chairs" idea in the general direction of populating the world with both "persons" and "things." See Version "W" a.k.a. Version 23. All "Banking" functionality has been deleted. An "alien" has been added as well as 10 "chairs."

VIDEO: "Artificial Life" - VPRO Amsterdam
There is NO Discursive Challeng based upon this film...

LINK Media Wall

Meeting: Friday, October 30th, at 3-4pm in Smith Warehouse Bay 11, Room A237 "The Arcade".

Media Wall Home

Slide Show / Tech Specs

Week 10

November 3

Programming Challenge 4: Flocking DUE TODAY
Participant Demonstrations

Programming Challenge 5: Physical Computing (sensors & actuators)
Come prepared to work with wires and other things electrical...

!!! Super enhancements !!!

November 5

Programming Challenge 5: Physical Computing (sensors & actuators)
Come prepared to work with wires and other things electrical...

Physical Computing & Real World Interfacing:
Radio Frequency Identification
Global Positioning Systems
Garmin GPS-12      
Magnetic Stripe Readers/Writers        
AD/DA Converters National Instruments EZIO Arduino Phidgets
Sensors &
Bally Virtual Reels      
True Randomness Background Radiation      
Universal Aerial Video Platform UAVP      

The DataSheet Archive
Micro Stepper Controller

Week 11

November 10

H1N1 - Swine Flu Vaccination Clinics:
Pregnant women. Anyone through 24 years of age.
Anyone 25 through 64 with certain chronic conditions.

Programming Challenge 5: Physical Computing (sensors & actuators)
Bally Slot Machine Reel - Version 3 - Has been simplified...
More data is available for the Conves MicroStepper Controller.

November 12

Programming Challenge 5: Physical Computing (sensors & actuators)
Telephone Interface has been improved...

Probably won't be ready:
Phidgets controllers...
National Instruments AD/DA Converters (fast).


Week 12

November 17

Robot hand...
Music-Box application...
Leon Theremin (DVD) 15 min excerpt.

Programming Challenge 5: Physical Computing (sensors & actuators)
Work on Physical Computing Projects...


November 19

Programming Challenge 5: Physical Computing

Participant Demonstrations

Make sure you turn in any missing challenges!
Focus on your course projects!

Work on Course Projects.
(We quit early today...)

Graduate Computational Media Meeting @ 1:00.


November 24

(We will not be meeting in Classroom #6).

Instead of meeting again in Classroom #6 this coming Tuesday, I've decided to have an open house in my lab in the Smith Arts Warehouse. I'll create some activities for you all to do with the various collections there that won't take too long. We have early computational devices going back to the Jacquard weaving head, cryptograhic machines from post-WW2, and physical computing robots and parts. On the subject of visualization, which we delved into from time to time, we have examples of graphics created to save (or extinguish) lives, specifically top-secret maps and propaganda leaflets. We can also see the "prototyping" area for the Link multi-monitor wall and perhaps the game lab.

So this coming Tuesday, we'll meet in my Lab at the Smith Arts Warehouse (an ex-tobacco warehouse) near East Campus. Enter the "Bay 12" door and take the elevator up to the second floor. From there, go East into "Bay 11." Look for the open doors...

Please do arrive on time.
We have a tour of the Media Wall prototyping area at 10:15 and
a tour of the Game Lab at 10:30,
and a tour of our lab at 10:45.

The "discursive" (intellectual challenge) will be to have you propose some projects and challeges that relate combining various computational media (mechanical, electromechanical, electronic, analog, digital, hydraulic, pneumatic) in ways that showcase the ubiquity of computation and multiple agency. Don't worry, you only have to propose and justify the project, you don't have to actually do it!

November 26


(Happy Thanksgiving...)

Week 13

December 1

Last words on "weak physical computing."
Stepper-motors provide precision positioning along the X, Y and Z axes, consequently we can control plotters moving pens, cutters using lasers and knife blades, routing, machining and 3-d rapid prototyping. We have ordered a small USB rapid-prototyping machine. The TechShop in the esearch Triangle has a variety of these machines available for members...

Work on Course Projects...

December 3

Coffee, cookies & refreshments:

Course Projects DUE TODAY
Participant Presentations...
Everyone must attend and present...

Please be sure to have everything turned in by the end of class, Decenber 3rd.
I will be going out-of-state.
No Final

!!! Have a Great Holiday !!!