Recent changes to this wiki: (Note that diffs will appear in the atom feed, but not on this page.)

Modify to note that feedback is always welcome
diff --git a/news/Feedback_please.mdwn b/news/Feedback_please.mdwn
index ea6d471..9ce03d7 100644
--- a/news/Feedback_please.mdwn
+++ b/news/Feedback_please.mdwn
@@ -1,6 +1,6 @@
 Hi all,
 
-  The University is running its CATEI evaluations again.  This is where you get to give feedback on my course.
+  The University is running its CATEI evaluations again.  This is another opportunity for you to give feedback on my course.  (Feedback is welcome outside of CATEI too.)
 
   I really appreciate all feedback.  Positive feedback helps me convince NICTA to keep running the course.
 Constructive negative feedback lets me know how to improve the course for future years.  Even if you
@@ -12,7 +12,7 @@ Will
 
 ----
 
-Here is a, slightly edited, excerpt from the mail I received (and everyone enrolled in the course should have received a similar one):
+Here is a, slightly edited, excerpt from the announcement mail I received (and everyone enrolled in the course should have received a similar one):
 
 > Students can access evaluation form(s) by login into [myUNSW](https://my.unsw.edu.au/), click the CATEI icon in the left menu bar on my survey area.
 > 

Advertise CATEI forms
diff --git a/news/Feedback_please.mdwn b/news/Feedback_please.mdwn
new file mode 100644
index 0000000..ea6d471
--- /dev/null
+++ b/news/Feedback_please.mdwn
@@ -0,0 +1,25 @@
+Hi all,
+
+  The University is running its CATEI evaluations again.  This is where you get to give feedback on my course.
+
+  I really appreciate all feedback.  Positive feedback helps me convince NICTA to keep running the course.
+Constructive negative feedback lets me know how to improve the course for future years.  Even if you
+loved the course, please let me know of any suggestions for improvement in the comments section.
+
+Be well,
+
+Will
+
+----
+
+Here is a, slightly edited, excerpt from the mail I received (and everyone enrolled in the course should have received a similar one):
+
+> Students can access evaluation form(s) by login into [myUNSW](https://my.unsw.edu.au/), click the CATEI icon in the left menu bar on my survey area.
+> 
+> Only those students who have yet to finish all forms will be sent reminders in the UNSW email account.
+> 
+> If you require any further information, please contact your school CATEI coordinator:
+> 
+> * John Shepherd - School of Computer Science
+> * Bill Wilson - School of Computer Science
+> * Colin Taylor - School of Computer Science

Exam announcement
diff --git a/news/Exam_Time___38___Place.mdwn b/news/Exam_Time___38___Place.mdwn
new file mode 100644
index 0000000..fe21405
--- /dev/null
+++ b/news/Exam_Time___38___Place.mdwn
@@ -0,0 +1,9 @@
+The exam will be 3 hours.
+
+It will be held on the morning of Monday 3rd November in room ASB 220.
+
+You should be there by 8:45am, and it should end around noon.
+
+The exam is open book.  A calculator is allowed and may be useful for some questions.
+You are *not* allowed to use any communications device to communicate with another human
+during the exam.

Fix formatting
diff --git a/notes/Lecture8A.mdwn b/notes/Lecture8A.mdwn
index f557645..49901b8 100644
--- a/notes/Lecture8A.mdwn
+++ b/notes/Lecture8A.mdwn
@@ -1,6 +1,9 @@
 Review
+
  * Building Models
+
 Today
+
  * Building Heuristics (deterministic, goal state(s))
    * Backward search / Dynamic programming
      * Both cost and search heuristics

Update pages to point to latest versions of slides...
diff --git a/notes/Lecture7B.mdwn b/notes/Lecture7B.mdwn
index 640d083..c0adb4c 100644
--- a/notes/Lecture7B.mdwn
+++ b/notes/Lecture7B.mdwn
@@ -1 +1 @@
-Malcolm Ryan's guest lecture on planning.  His slides are available from [his web page](http://www.cse.unsw.edu.au/~malcolmr/cs3431/) or from the [[course wiki|/slides/2005/malcolmr-planning]] from the course web page.
+Malcolm Ryan's guest lecture on planning.  His slides are available from [his web page](http://www.cse.unsw.edu.au/~malcolmr/cs3431/) or from the [[course wiki|/slides/2008/malcolmr-planning]] from the course web page.
diff --git a/notes/Lecture8B.mdwn b/notes/Lecture8B.mdwn
index d37d010..5f5315d 100644
--- a/notes/Lecture8B.mdwn
+++ b/notes/Lecture8B.mdwn
@@ -1 +1 @@
-Malcolm Ryan's guest lecture on plan space planning.  His slides are available [his web page](http://www.cse.unsw.edu.au/~malcolmr/cs3431/) or the [[course wiki|/slides/2005/malcolmr-planning]].
+Malcolm Ryan's guest lecture on plan space planning.  His slides are available [his web page](http://www.cse.unsw.edu.au/~malcolmr/cs3431/) or the [[course wiki|/slides/2008/malcolmr-planning]].

Add Malcolm's Planning slides
diff --git a/slides/2008/malcolmr-planning.mdwn b/slides/2008/malcolmr-planning.mdwn
new file mode 100644
index 0000000..e190a08
--- /dev/null
+++ b/slides/2008/malcolmr-planning.mdwn
@@ -0,0 +1,3 @@
+Malcolm Ryan's planning slides:
+
+[[!map pages="slides/2008/malcolmr-planning/*"]]
diff --git a/slides/2008/malcolmr-planning/CS3431-1.ppt b/slides/2008/malcolmr-planning/CS3431-1.ppt
new file mode 100644
index 0000000..7523d4e
Binary files /dev/null and b/slides/2008/malcolmr-planning/CS3431-1.ppt differ
diff --git a/slides/2008/malcolmr-planning/CS3431-2.ppt b/slides/2008/malcolmr-planning/CS3431-2.ppt
new file mode 100644
index 0000000..5e1c7de
Binary files /dev/null and b/slides/2008/malcolmr-planning/CS3431-2.ppt differ

Seminar announcement
diff --git a/news/Relevant_talk....mdwn b/news/Relevant_talk....mdwn
new file mode 100644
index 0000000..1923664
--- /dev/null
+++ b/news/Relevant_talk....mdwn
@@ -0,0 +1,92 @@
+The `seminar-ai@cse` mailing list announces talks that people in this class might find interesting.  For example,  here is an announcement for Thursday:
+
+----
+
+Dear All,
+
+Announcing a New AI Seminar. The details are:
+
+Title: Model-based Programming of Robust Agile Systems
+
+Presenter: Brian C. Williams
+
+Presenter URL: <http://people.csail.mit.edu/williams/Web%20site/williams.shtml>
+
+Affiliation: Model-based Embedded and Robotic Systems,  Massachusetts Institute of Technology
+
+Affiliation URL: <http://groups.csail.mit.edu/mers/mers.htm>
+
+Date: Thursday 11th September 2008
+
+Time: 12:00:00
+
+Location: CSE Seminar Room, Level 1, K17
+
+Abstract:
+Autonomous, self-repairing explorers, such as deep space probes, have
+successfully performed complex missions by employing model-based
+executives that continuously monitor mission goals, diagnose failures and
+plan repairs. These executives employ models encoded as probabilistic
+constraint automata, in order to observe and control the hidden states of
+the system. These executives have also been incorporated within model-based
+programming languages that facilitate the creation of a wide range of fault
+adaptive systems, including automobiles and naval ships.
+
+Future explorers, such as autonomous air vehicles and walking robots,
+will require far greater agility, in order to robustly achieve their
+missions. For example, to avoid falling, a walking robot must quickly
+detect a loss of balance, and replan its control trajectory appropriately.
+This talk presents recent advances in model-based programming and
+execution for agile systems. First, to reason about a system~Rs dynamics,
+these executives employ probabilistic constraint automata that are
+extended to hybrid discrete/continuous constraints. Second, to robustly
+achieve missions, these executives employ planning methods that reason
+about continuous, as well as discrete, state changes, and employ
+compilation and model-predictive control methods in order to adapt on the
+fly. Finally, these executives employ estimation methods for hybrid PHA
+that detect subtle failures through active control. Model-based execution
+is demonstrated both on a team of cooperative air vehicles and a biped
+walking machine.
+
+
+Biography of Speaker:
+Professor Williams leads the Model-based Embedded and Robotic Systems
+<http://mers.csail.mit.edu/mers.htm> group, within the Computer Science
+and Artificial Intelligence Laboratory
+<http://www.csail.mit.edu/index.php>(CSAIL) at the Massachusetts Institute
+of Technology <http://web.mit.edu/>. His research concentrates on
+model-based autonomy <http://ic-www.arc.nasa.gov/ic/project/mba/index.html>
+-- the creation of long-lived systems that explore autonomously, while
+commanding, diagnosing and repairing themselves using fast, commonsense
+reasoning. Current research focuses on model-based programming and
+cooperative robotics: Model-based programming supports goal-directed
+programming of robust explorers and everyday devices, by incorporating
+model-based deductive capabilities within traditional embedded programming
+languages. Cooperative robotics extends model-based autonomy to robotic
+networks of cooperating space, air, land and undersea vehicles, on Earth
+and on other planets.
+
+Professor Williams received his S.B., S.M and Ph.D. in Computer Science and
+Electrical Engineering at MIT, and worked at the Xerox Palo Alto Research
+Center and NASA Ames Research Center, prior to joining the faculty at MIT.
+He is a pioneer in the fields of qualitative reasoning, model-based
+diagnosis and autonomous systems. He received a NASA Space Act Award for
+Remote Agent, the first fully autonomous, self-repairing space explorer,
+demonstrated onboard the NASA Deep Space One probe in May, 1999. He was a
+member of the Tom Young Blue Ribbon Team in 2000, assessing future Mars
+missions in light of the Mars Climate Orbiter and Polar Lander incidents,
+and is currently a member of the Advisory Council of the NASA Jet
+Propulsion Laboratory at Caltech. He has won four best paper prizes for
+his research in diagnosis, qualitative algebras, propositional inference
+and soft constraints. He is a fellow of AAAI, has served as guest editor
+of the Artificial Intelligence Journal
+<http://www.elsevier.nlinca/publications/store/5/0/5/6/0/1/> and has been
+on the editorial boards of the Journal of Artificial Intelligence Research
+<http://www.jair.org/>, and MIT Press.
+
+
+Host: Toby Walsh
+
+Seminar Convenor: Van Hai Ho
+
+Thankyou

Announce Assignment 2
diff --git a/assignments.mdwn b/assignments.mdwn
index aeba7d4..fd515cc 100644
--- a/assignments.mdwn
+++ b/assignments.mdwn
@@ -1,7 +1,12 @@
-There are three assignments distributed throughout the semester.  All are team assignments to make the AIBO robots do something.
+There are three assignments distributed throughout the semester.
 
-The three 2007 assignments were:
+Assignments 1 and 3 are the same as 2007 in all ways except the due date.
+These two assignments are practical assignments on the AIBOs and will be marked in lab.
+
+The second assignment is a written assignment.
+
+Due dates for all assignments are shown on the [[lecture plan]].
 
  * [[Assignment_1|assignments/2007/assign1-2007.pdf]]
- * [[Assignment_2|assignments/2007/assign2-2007.pdf]]
+ * [[Assignment_2|assignments/2008/assign2.pdf]]
  * [[Assignment_3|assignments/2007/assign3-2007.pdf]]
diff --git a/news/Assignment_2.mdwn b/news/Assignment_2.mdwn
new file mode 100644
index 0000000..0b13ee8
--- /dev/null
+++ b/news/Assignment_2.mdwn
@@ -0,0 +1 @@
+[[Assignment_2|/assignments/2008/assign2.pdf]] has been released.  Not all the work in that assignment has been covered yet, but will be at least a week before the assignment is due.

Add assignment 2
diff --git a/assignments/2008/assign2.pdf b/assignments/2008/assign2.pdf
new file mode 100644
index 0000000..c14bc18
Binary files /dev/null and b/assignments/2008/assign2.pdf differ

Add the RoboCup 2006 rules locally.
diff --git a/aibo.mdwn b/aibo.mdwn
index 9c12f87..7bb7bc6 100644
--- a/aibo.mdwn
+++ b/aibo.mdwn
@@ -7,7 +7,7 @@ These pages were all exported from a previous wiki and are in the wrong wiki for
 
 I just added a new page on [[aibo/comp3431/GettingStarted]].
 
-The Robocup 2006 rules are available [here](http://www.tzi.de/4legged/pub/Website/Downloads/Rules2006.pdf)
+The Robocup 2006 rules are available on the [RoboCup SPL web site](http://www.tzi.de/4legged/pub/Website/Downloads/Rules2006.pdf) and [[locally|/papers/Rules2006.pdf]].
 
 There are notes from the previous COMP3431 class wiki:
 
diff --git a/papers/Rules2006.pdf b/papers/Rules2006.pdf
new file mode 100644
index 0000000..30be3d3
Binary files /dev/null and b/papers/Rules2006.pdf differ

Try changing path
diff --git a/notes/Lecture7B.mdwn b/notes/Lecture7B.mdwn
index 23b64d7..640d083 100644
--- a/notes/Lecture7B.mdwn
+++ b/notes/Lecture7B.mdwn
@@ -1 +1 @@
-Malcolm Ryan's guest lecture on planning.  His slides are available from [his web page](http://www.cse.unsw.edu.au/~malcolmr/cs3431/) or from the [[course wiki|slides/2005/malcolmr-planning]] from the course web page.
+Malcolm Ryan's guest lecture on planning.  His slides are available from [his web page](http://www.cse.unsw.edu.au/~malcolmr/cs3431/) or from the [[course wiki|/slides/2005/malcolmr-planning]] from the course web page.
diff --git a/notes/Lecture8B.mdwn b/notes/Lecture8B.mdwn
index 9d9fb4c..d37d010 100644
--- a/notes/Lecture8B.mdwn
+++ b/notes/Lecture8B.mdwn
@@ -1 +1 @@
-Malcolm Ryan's guest lecture on plan space planning.  His slides are available [his web page](http://www.cse.unsw.edu.au/~malcolmr/cs3431/) or the [[course wiki|slides/2005/malcolmr-planning]].
+Malcolm Ryan's guest lecture on plan space planning.  His slides are available [his web page](http://www.cse.unsw.edu.au/~malcolmr/cs3431/) or the [[course wiki|/slides/2005/malcolmr-planning]].

Move header page
diff --git a/notes/slides/2005/malcolmr-planning.mdwn b/notes/slides/2005/malcolmr-planning.mdwn
deleted file mode 100644
index 3641d16..0000000
--- a/notes/slides/2005/malcolmr-planning.mdwn
+++ /dev/null
@@ -1,3 +0,0 @@
-Malcolm Ryan's planning slides:
-
-[[!map pages="*"]]
diff --git a/slides/2005/malcolmr-planning.mdwn b/slides/2005/malcolmr-planning.mdwn
new file mode 100644
index 0000000..39f2864
--- /dev/null
+++ b/slides/2005/malcolmr-planning.mdwn
@@ -0,0 +1,3 @@
+Malcolm Ryan's planning slides:
+
+[[!map pages="slides/2005/malcolmr-planning/*"]]

Add an overview page
diff --git a/notes/slides/2005/malcolmr-planning.mdwn b/notes/slides/2005/malcolmr-planning.mdwn
new file mode 100644
index 0000000..3641d16
--- /dev/null
+++ b/notes/slides/2005/malcolmr-planning.mdwn
@@ -0,0 +1,3 @@
+Malcolm Ryan's planning slides:
+
+[[!map pages="*"]]

Update wiki formatting
diff --git a/notes/Lecture7B.mdwn b/notes/Lecture7B.mdwn
index ead9e64..23b64d7 100644
--- a/notes/Lecture7B.mdwn
+++ b/notes/Lecture7B.mdwn
@@ -1 +1 @@
-Malcolm Ryan's guest lecture on planning.  His slides are available from [his_web_page](http://www.cse.unsw.edu.au/~malcolmr/cs3431/) or from the [course_webpage|slides/2005/malcolmr-planning] from the course web page.
+Malcolm Ryan's guest lecture on planning.  His slides are available from [his web page](http://www.cse.unsw.edu.au/~malcolmr/cs3431/) or from the [[course wiki|slides/2005/malcolmr-planning]] from the course web page.
diff --git a/notes/Lecture8B.mdwn b/notes/Lecture8B.mdwn
index 7e8fc7b..9d9fb4c 100644
--- a/notes/Lecture8B.mdwn
+++ b/notes/Lecture8B.mdwn
@@ -1 +1 @@
-Malcolm Ryan's guest lecture on plan space planning.  His slides are available [http://www.cse.unsw.edu.au/~malcolmr/cs3431/ from his web page] or [http://www.cse.unsw.edu.au/~cs3431/slides/2005/malcolmr-planning/ from the course web page].
+Malcolm Ryan's guest lecture on plan space planning.  His slides are available [his web page](http://www.cse.unsw.edu.au/~malcolmr/cs3431/) or the [[course wiki|slides/2005/malcolmr-planning]].

Reformat
diff --git a/notes/Lecture7A.mdwn b/notes/Lecture7A.mdwn
index ca1f0bd..7545126 100644
--- a/notes/Lecture7A.mdwn
+++ b/notes/Lecture7A.mdwn
@@ -1,5 +1,8 @@
-= Course overview =
-== So far ==
+Course overview
+---------------
+
+### So Far
+
  * Agent Systems
    * RoboCup
    * Other robot architectures
@@ -19,7 +22,8 @@
       * Heuristic
       * Current State
 
-== Yet to see ==
+### Yet to see
+
  * Some representations for discrete search
  * Building Models
  * Building Heuristics
@@ -31,7 +35,7 @@
  * More on Hierarchy
  * Adversarial Agents
 
-= Today =
+### Today
 
  * Building Models
    * Try actions in different locations

make the distinction between two type of ball coordinate clearer for beginners
diff --git a/aibo/comp3431/UsefulPython.txt b/aibo/comp3431/UsefulPython.txt
index 76861b7..5fe6a7e 100644
--- a/aibo/comp3431/UsefulPython.txt
+++ b/aibo/comp3431/UsefulPython.txt
@@ -1,252 +1,503 @@
-{{{
-
-# Useful Python Code for Beginning
-
-
-###
-# most useful modules to import:
-
-import math
-import Global
-import Constant
-import VisionLink
-import Action
-import Indicator
-import hMath
-
-
-###
-# head stuff
-
-Action.setHeadParams(pan, tilt, crane)
-
-Action.setHeadToLastPoint()
-
-# current head params
-Global.pan
-Global.tilt
-Global.crane
-
-# N.B. these are the [same as/source for] the above:
-VisionLink.getJointSensor(Constant.jHeadPan)
-VisionLink.getJointSensor(Constant.jHeadTilt)
-VisionLink.getJointSensor(Constant.jHeadCrane)
-
-
-# maximum / minimum values for the head:
-Constant.MAX_PAN   # = 93
-Constant.MIN_PAN   # = -93
-Constant.MAX_TILT  # = 3
-Constant.MIN_TILT  # = -80
-Constant.MAX_CRANE # = 50
-Constant.MIN_CRANE # = -20
-
-
-
-
-###
-# walking
-
-Action.walk(forward/back, left/right, rotation)
-
-Action.kick(Action.SOMEKICKTYPE)
-
-hMath.walkSpeedToDistance(speed, type)
-hMath.walkDistanceToSpeed(distance, type)
-
-
-
-
-###
-# maths
-
-
-# arctan( a / b )
-math.atan2(a, b)
-
-
-
-# the following are some pickings from hMath:
-
-hMath.dotProduct2D(vec1x, vec1y, vec2x, vec2y)
-
-hMath.normaliseVector2D(vec1x, vec1y)
-
-# returns -1, 1 or 0 according to the sign of the input
-hMath.sign(x)
-
-hMath.getLength(vec)
-
-hMath.normalise(vec)
-
-# Rotates a 2D vector counter-clockwise by the given angle in degrees
-hMath.rotate(vec, angle, rad = False)
-
-
-
-
-###
-# Coordinates:
-
-
-# Clip a coordinate to a point in the field
-hMath.clipPosition((x,y))
-
-
-# convert a point from local to global coordinates
-hMath.localToGlobalCoordinates(x, y):
-
-# convert a point from global to local coordinates
-hMath.globalToLocalCoordinates(x, y):
-
-
-
-
-###
-# Time:
-
-VisionLink.getCurrentTime()
-
-# RETURN: the time elapsed in MILLI-seconds
-# takes 2 time tuples in (sec, mirco-sec) form,
-hMath.getTimeElapsed(oldTime, newTime = None)
-
-
-
-
-
-###
-# ball stuff
-
-
-Global.vBall.isVisible()
-
-
-
-# this is the Visible x and y position of a point on the ball, on the *ground*, relative to the ground-point under the dog's head
-# these are local coordinates
-# top-view:
-#
-#  ^ 
-#  |
-#  y
-#  |    -'ve     0       +'ve
-#  v   <-------- x ---------->
-#              _____
-#             / head \		
-x, y = VisionLink.getProjectedBall()
-
-
-
-# x and y of a point on the ball (local coords),
-# heading and
-# distance (both relative to neck base)
-# as determined by the Kalman Filter / Baysian stuff
-Global.gpsLocalBall.getPos()
-Global.gpsLocalBall.getHeading()
-Global.gpsLocalBall.getDistance()
-
-# x and y of a point on the ball (global),
-# heading and
-# distance (both relative to neck base)
-# as seen on the camera
-Global.vBall.getPos()
-Global.vBall.getHeading()
-Global.vBall.getVobDistance()
-	
-
-# Global's best guess at where the ball is (using vision AND gps)
-Global.ballX
-Global.ballY
-# distance to the ball
-Global.ballD
-# ball's heading
-Global.ballH
-
-
-# variance of the ball
-# N.B. standard deviation is the square root of the variance
-# assumed to be in cm.
-VisionLink.getGPSBallMaxVar()
-
-
-###
-# robot stuff
-
-# the position of the robot in global coordinates
-Global.selfX
-Global.selfY
-
-# robot's heading
-Global.selfH
-
-
-# Note: these values are retrieved from VisionLink in Global using:
-selfLoc.setVals(*VisionLink.getGPSSelfInfo())
-(selfX, selfY, selfH) = selfLoc.getPose()
-
-
-
-###
-# pretty/cute/debug stuff
-
-Indicator.setFaceLed( a number 1-15 )
-# 13 = red eyes
-# 9 and 10 = white eyes

(Diff truncated)
Rearrange guest lectures.
Note due date of Assignment 2.
diff --git a/lecture_plan.mdwn b/lecture_plan.mdwn
index b630e38..32dc3c8 100644
--- a/lecture_plan.mdwn
+++ b/lecture_plan.mdwn
@@ -152,13 +152,15 @@
 
 #### [[notes/Lecture7A]]
 
-    Planning
-      State Space search
-
+    Reinforcemnt Learning
+      Style of problem
+      Optimality criteria
+      Exploration/Exploitation trade-off
+  
 #### [[notes/Lecture7B]]
 
     Planning
-      Plan space planning
+      State Space search
 
 #### Lab (Computer lab)
 
@@ -168,13 +170,6 @@
 
 #### [[notes/Lecture8A]]
 
-    Reinforcemnt Learning
-      Style of problem
-      Optimality criteria
-      Exploration/Exploitation trade-off
-  
-#### [[notes/Lecture8B]]
-
     Markov Decision Processes
       Formal definition
       Model based updates
@@ -184,9 +179,14 @@
         Q-learning
         Adaptive Heuristic Critic
 
-#### Lab (Computer lab)
+#### [[notes/Lecture8B]]
 
     Planning
+      Plan space planning
+
+#### Lab (Level 3)
+
+    Work on Assignment 3
 
 ### Week 9 22/9
 
@@ -202,9 +202,11 @@
     Introduction to Optimization
       1D Golden Section Search
 
-#### Lab (Level 3)
+    Assignment 2 Due at start of lecture.
 
-    Work on Assignment 3
+#### Lab (Computer lab)
+
+    Planning
 
 ### Mid Semester Break - 29/9
 
diff --git a/notes/Lecture7A.mdwn b/notes/Lecture7A.mdwn
index a8393f1..ca1f0bd 100644
--- a/notes/Lecture7A.mdwn
+++ b/notes/Lecture7A.mdwn
@@ -1 +1,40 @@
-Malcolm Ryan's guest lecture on planning.  His slides are available from [his_web_page](http://www.cse.unsw.edu.au/~malcolmr/cs3431/) or from the [course_webpage|slides/2005/malcolmr-planning] from the course web page.
+= Course overview =
+== So far ==
+ * Agent Systems
+   * RoboCup
+   * Other robot architectures
+     * Three Layer Architectures (planner/Symbolic reactive/non-symbolic reactive)
+     * Subsumption
+   * Cognitive Architectures
+     * ACT-R
+   * Search
+     * Graph search
+       * BFS/DFS/BFS/A*/Approx A*/Iterative Deepening
+     * Logic spaces
+       * State space planning
+       * Plan space/Partial Order planning
+    * Things for search:
+      * Representation
+      * Model of World
+      * Heuristic
+      * Current State
+
+== Yet to see ==
+ * Some representations for discrete search
+ * Building Models
+ * Building Heuristics
+   * Relationship to hierarchy
+ * Incremental/cached/dynamic programming search
+ * Stochastic worlds
+ * Search through continuous spaces
+ * Incomplete state/partial observability
+ * More on Hierarchy
+ * Adversarial Agents
+
+= Today =
+
+ * Building Models
+   * Try actions in different locations
+   * Learn to predict the results of actions
+   * Machine Learning problem
+   * Need to sample entire space to get model over entire space
diff --git a/notes/Lecture7B.mdwn b/notes/Lecture7B.mdwn
index 7d8f5bf..ead9e64 100644
--- a/notes/Lecture7B.mdwn
+++ b/notes/Lecture7B.mdwn
@@ -1 +1 @@
-Malcolm Ryan's guest lecture on plan space planning.  His slides are available [http://www.cse.unsw.edu.au/~malcolmr/cs3431/ from his web page] or [http://www.cse.unsw.edu.au/~cs3431/slides/2005/malcolmr-planning/ from the course web page].
\ No newline at end of file
+Malcolm Ryan's guest lecture on planning.  His slides are available from [his_web_page](http://www.cse.unsw.edu.au/~malcolmr/cs3431/) or from the [course_webpage|slides/2005/malcolmr-planning] from the course web page.
diff --git a/notes/Lecture8A.mdwn b/notes/Lecture8A.mdwn
index 292483c..f557645 100644
--- a/notes/Lecture8A.mdwn
+++ b/notes/Lecture8A.mdwn
@@ -1,40 +1,42 @@
-= Course overview =
-== So far ==
- * Agent Systems
-   * RoboCup
-   * Other robot architectures
-     * Three Layer Architectures (planner/Symbolic reactive/non-symbolic reactive)
-     * Subsumption
-   * Cognitive Architectures
-     * ACT-R
-   * Search
-     * Graph search
-       * BFS/DFS/BFS/A*/Approx A*/Iterative Deepening
-     * Logic spaces
-       * State space planning
-       * Plan space/Partial Order planning
-    * Things for search:
-      * Representation
-      * Model of World
-      * Heuristic
-      * Current State
-
-== Yet to see ==
- * Some representations for discrete search
+Review
  * Building Models
- * Building Heuristics
-   * Relationship to hierarchy
- * Incremental/cached/dynamic programming search
- * Stochastic worlds
- * Search through continuous spaces
- * Incomplete state/partial observability
- * More on Hierarchy
- * Adversarial Agents
+Today
+ * Building Heuristics (deterministic, goal state(s))
+   * Backward search / Dynamic programming
+     * Both cost and search heuristics
+   * Relaxing problem to find admissible (optimistic) heuristic
+ * Dynamic Programming for Markov Decision Processes
+   * Stochasticity
+   * Random order of update
+     * Value iteration
+     * Policy iteration
+     * Modified Policy iteration
+   * State and state/action value functions
+     * Q(s,a) = E(r + V(s')) = Sum_s' P(s,a,s') ( r + V(s') )
+       * "Expected reward for taking action a in state s and then following policy pi"
+       * Note: P(s,a,s') is the model of the world
+     * V(s) = max_a Q(s, a)
+       * "Expected reward for following policy pi from state s"
+     * pi*(s) = argmax_a Q(s, a)
+       * pi* is the optimal policy (assuming everything has converged)
+   * Other optimality criterion
+     * One way to view what we were doing is to find a policy that maximises the long term sum of reward
+       * sum_{0 < t < infinity} r_t
+       * Maximise "sum of reward" is tricky if sums can be infinite (loops)
+     * infinite horizon, discounted
+       * Find policy to maximise sum_{0 < t < infinity} gamma^t r_t
+       * gamma is:
+         * trick to keep things bounded
+         * Interest rate
+         * (1-gamma) = probability of transitioning to 0-value terminal state each step
+       * Q(s,a) = E(r + gamma V(s'))
+     * average reward
+       * Maximise lim t_max -> infinity 1/t_max sum_{0 < t < t_max} r_t
+  * Discussion
+    * MDP solving finds a complete policy -> looks at entire state space
 
-= Today =
+Introduction to Soft-Max / Boltzmann distribution
+ The formula is p(i) = e^(f(i) / T) / (sum of all probabilities)
 
- * Building Models

(Diff truncated)
Use teximg for formulae
diff --git a/notes/Lecture3B.mdwn b/notes/Lecture3B.mdwn
index 4bd10c3..6729902 100644
--- a/notes/Lecture3B.mdwn
+++ b/notes/Lecture3B.mdwn
@@ -1,22 +1,43 @@
-Representations for Probability distributions:
-
- * Table of values
-   * Discretization effects
- * Particles
-   * Use sampling with replacement to re-normalize
-   * Use motion model to separate duplicates from sampling with replacement
- * Closed form
-   * Conjugate priors - http://www.cis.hut.fi/ahonkela/dippa/node23.html
-     * Basically the initial distribution is of the same class as the transition model (eg both gaussian)
-   * Normal (Gaussian) Distribution:
-     * f(x) = 1/(s sqrt(2pi)) exp(-(x-mu)^2/2s^2)
-     * In multi-dimensions, mean becomes a vector and co-variance (measure of spread) becomes a matrix
-     * Known as a Kalman filter when implemented with Matrix math
-       * Assumes linear-gaussian transition and sensor models (linear function + gaussian noise)
-       * Works well with "any system characterised by continuous state variables and noisy measurements" (R&N p557)
-     * Use tagent as approximation to linear form (linearization) if a distribution is non-gaussian
-   * Also: Beta, Dirichet distributions (the conjugate prior for multinomial distributions)
-
- * Also covered decomposition of P(x,y) into P(x).P(y|x)
-   * e.g. P(x, y, theta) split into P(x, y) and P(theta | x, y)
-   * Much smaller tables, cannot represent correlations
\ No newline at end of file
+Representations for Probability distributions:
+
+
+
+ * Table of values
+
+   * Discretization effects
+
+ * Particles
+
+   * Use sampling with replacement to re-normalize
+
+   * Use motion model to separate duplicates from sampling with replacement
+
+ * Closed form
+
+   * Conjugate priors - http://www.cis.hut.fi/ahonkela/dippa/node23.html
+
+     * Basically the initial distribution is of the same class as the transition model (eg both gaussian)
+
+   * Normal (Gaussian) Distribution:
+
+     * [[!teximg code="f(x) = \frac{1}{\sigma \sqrt{2 \pi}} e^{-\frac{( x - \mu )^2}{2 \sigma^2}}"]]
+
+     * In multi-dimensions, mean becomes a vector and co-variance (measure of spread) becomes a matrix
+
+     * Known as a Kalman filter when implemented with Matrix math
+
+       * Assumes linear-gaussian transition and sensor models (linear function + gaussian noise)
+
+       * Works well with "any system characterised by continuous state variables and noisy measurements" (R&N p557)
+
+     * Use tagent as approximation to linear form (linearization) if a distribution is non-gaussian
+
+   * Also: Beta, Dirichet distributions (the conjugate prior for multinomial distributions)
+
+
+
+ * Also covered decomposition of P(x,y) into P(x).P(y|x)
+
+   * e.g. P(x, y, theta) split into P(x, y) and P(theta | x, y)
+
+   * Much smaller tables, cannot represent correlations

Update labs to take into account assignment 1 due date change
diff --git a/lecture_plan.mdwn b/lecture_plan.mdwn
index 55bf444..b630e38 100644
--- a/lecture_plan.mdwn
+++ b/lecture_plan.mdwn
@@ -127,7 +127,7 @@
 
 #### Lab (Level 3)
 
-    Assignment 1 graded in lab
+    Work on assignment 1
   
 ### Week 6 - 1/9
 
@@ -144,9 +144,9 @@
       Mixing Search and Heuristics (Korf)
       Heuristics as simplifications/relaxations
 
-#### Lab (Computer lab)
+#### Lab (Level 3)
 
-    A*/Islands/Heuristics
+    Assignment 1 graded in lab
 
 ### Week 7 - 8/9
 
@@ -162,7 +162,7 @@
 
 #### Lab (Computer lab)
 
-    Planning
+    A*/Islands/Heuristics
 
 ### Week 8 - 15/9
 
@@ -186,7 +186,7 @@
 
 #### Lab (Computer lab)
 
-    Assignement 2 graded in lab
+    Planning
 
 ### Week 9 22/9
 
@@ -202,7 +202,7 @@
     Introduction to Optimization
       1D Golden Section Search
 
-#### Lab (Computer lab)
+#### Lab (Level 3)
 
     Work on Assignment 3
 
@@ -270,6 +270,6 @@
 
     Review
 
-#### Lab
+#### Lab (Level 3)
 
     Assignment 3 graded in lab

Notes on assignment 1
diff --git a/news/Assignment_1.mdwn b/news/Assignment_1.mdwn
new file mode 100644
index 0000000..e4d9f06
--- /dev/null
+++ b/news/Assignment_1.mdwn
@@ -0,0 +1,12 @@
+Hi all,
+  A few notes on Assignment 1.  All of this has been mentioned in class - I'm just documenting it here.
+
+ - The assignment is the same as last year, so you can use last year's assignment sheet: [[assignments/2007/assign1-2007.pdf]]
+ - The due date on the assignment sheet from last year is wrong (that's last year's due date).  Use the one on the [[lecture_plan]] instead.
+ - The due date of the assignment has changed.  You have an extra week now.  It is now due at the start of the week 6 lab (and will be marked in that lab).
+
+If anyone does not have a group for the first assignment they should see me ASAP!
+
+Be well,
+
+Will          :-}

Add a link to the external rules
diff --git a/aibo.mdwn b/aibo.mdwn
index 66ca697..9c12f87 100644
--- a/aibo.mdwn
+++ b/aibo.mdwn
@@ -7,6 +7,8 @@ These pages were all exported from a previous wiki and are in the wrong wiki for
 
 I just added a new page on [[aibo/comp3431/GettingStarted]].
 
+The Robocup 2006 rules are available [here](http://www.tzi.de/4legged/pub/Website/Downloads/Rules2006.pdf)
+
 There are notes from the previous COMP3431 class wiki:
 
 [[!inline pages="aibo/comp3431/*" archive="yes" feeds="no" sort="title"]]
@@ -14,4 +16,3 @@ There are notes from the previous COMP3431 class wiki:
 There are notes from the previous rUNSWift wiki:
 
 [[!inline pages="aibo/*" archive="yes" feeds="no" sort="title"]]
-

Add a note about how to get the diffs
diff --git a/recentchanges.mdwn b/recentchanges.mdwn
new file mode 100644
index 0000000..0ee48be
--- /dev/null
+++ b/recentchanges.mdwn
@@ -0,0 +1,7 @@
+[[!if test="enabled(meta)" then="""
+[[!meta title="RecentChanges"]]
+"""]]
+Recent changes to this wiki: (Note that diffs will appear in the atom feed, but not on this page.)
+
+[[!inline pages="internal(recentchanges/change_*) and !*/Discussion" 
+template=recentchanges show=0]]

Formatting
diff --git a/aibo/comp3431/GettingStarted.mdwn b/aibo/comp3431/GettingStarted.mdwn
index db62e6a..e8452bd 100644
--- a/aibo/comp3431/GettingStarted.mdwn
+++ b/aibo/comp3431/GettingStarted.mdwn
@@ -10,12 +10,13 @@ An auto setup script can be run from:
     /home/group09/public/cs3431_setup
 
 Notes:
-Your existing ~/trunk directory will be deleted
-trunk will be checked out to ~/trunk
-Assumes your .bashrc does not already contain the required environmental variables
-Will compile code
-Provides a step by step guide to building a memory stick
-Will always setup a pForward
+
+* Your existing ~/trunk directory will be deleted
+* trunk will be checked out to ~/trunk
+* Assumes your .bashrc does not already contain the required environmental variables
+* Will compile code
+* Provides a step by step guide to building/setting up a memory stick
+* Will always setup a pForward
 
 There is another script that just performs compilation and memory stick copying in:
 

Added instructions for shell script that performs setup
diff --git a/aibo/comp3431/GettingStarted.mdwn b/aibo/comp3431/GettingStarted.mdwn
index b96720d..db62e6a 100644
--- a/aibo/comp3431/GettingStarted.mdwn
+++ b/aibo/comp3431/GettingStarted.mdwn
@@ -3,6 +3,25 @@ Getting Started with the rUNSWift AIBO system
 
 An older version of these notes is in [[aibo/GettingStarted]].
 
+### Automated Script for Setup
+
+An auto setup script can be run from:
+
+    /home/group09/public/cs3431_setup
+
+Notes:
+Your existing ~/trunk directory will be deleted
+trunk will be checked out to ~/trunk
+Assumes your .bashrc does not already contain the required environmental variables
+Will compile code
+Provides a step by step guide to building a memory stick
+Will always setup a pForward
+
+There is another script that just performs compilation and memory stick copying in:
+
+    /home/group09/public/new_stick
+
+
 ### Getting the code
 
 Use [subversion](http://subversion.tigris.org) to check out the code.

Change subversion repos url to use svn+ssh:// rather than file://
diff --git a/aibo/comp3431/GettingStarted.mdwn b/aibo/comp3431/GettingStarted.mdwn
index a9512cc..b96720d 100644
--- a/aibo/comp3431/GettingStarted.mdwn
+++ b/aibo/comp3431/GettingStarted.mdwn
@@ -7,7 +7,7 @@ An older version of these notes is in [[aibo/GettingStarted]].
 
 Use [subversion](http://subversion.tigris.org) to check out the code.
 
-    svn co file:///data/svn/comp3431/trunk
+    svn co svn+ssh://robolab.cse.unsw.edu.au/data/svn/comp3431/trunk
 
 If you ran this command in your home directory, you should now have a directory called 'trunk' in your home directory.
 

Update notes for recent lecture
diff --git a/notes/Lecture2A.mdwn b/notes/Lecture2A.mdwn
index afdc6a8..36707c0 100644
--- a/notes/Lecture2A.mdwn
+++ b/notes/Lecture2A.mdwn
@@ -1,32 +1,35 @@
-= Low level vision =
-
- * How the dogs see objects
-   * Distance (based on size)
-
- * Steps
-   * Perform ring correction
-   * Obtain symbolic colours
-   * Flood filling
-   * Blob formation with disjoint sets algorithms
-
- * Colour Segmentation
-   * Examples
-   * Maybe colours
-   * Machine learning of Look up Table through Decision Trees, kernel stuff (influence of data points over 
-     surrounding data points), Ripple Down Rules.
-
- * Run length encoding
- * Blobbing
-   * Disjoint Set Algorithms -- Cormen, Leiserson & Rivest, section 22.3
-
- * Other low level vision
-   * German subsampling, uses vertical lines spaced apart, then perform 1D edge detection along these lines to find 
-     edges on the ball and field lines. To find beacons used horizontal lines to find pink blob, then do blobbing around this. 
-
- * High level vision
-   * Object Detection
-     * RANSAC
-   * Sanity checks
-   * Locating an object
-     * Distance based on size
-     * Distance based on ground plane
+ * Colour Spaces or [models](http://en.wikipedia.org/wiki/Color_models)
+   * RGB, [YUV](http://en.wikipedia.org/wiki/YUV), HSV
+   * The AIBOs use YUV natively.
+ * Symbolic colours
+   * Mapping from YUV to symbolic colours
+   * Drop low order bit - use 128x128x128 table
+
+ * Detecting objects
+   * Blobs of colour
+     * Disjoint Set Algorithms -- Cormen, Leiserson & Rivest, section 22.3
+   * Edge detection
+     * Full algorithms are slow (for embedded, serial, computers)
+     * Use a cut-down system that only detects edges in one direction
+     * See [Alex North's honours thesis](http://www.cse.unsw.edu.au/~robocup/2005site/reports05/north05-subsampled.pdf)
+
+ * Detecting the ball
+   * Circles of orange edge
+   * Use [RANSAC](http://en.wikipedia.org/wiki/RANSAC) style algorithm to find the ball (again, see Alex's thesis for details)
+
+ * Distance to objects
+   * Size
+     * Integer size causes large distance jumps at around 2m
+     * Use average size (e.g. sqrt(num pixels) or average height across a number of columns of pixels)
+   * Projection
+     * If we know an object is on the ground, we can use kinematics to find out its location relative to our head
+     * Ball
+          * Project centre of ball onto 1-radius high plane
+   * For ball, size is better at long distances, projection is better up close
+
+ * Where to look
+   * If you look at the centre of the ball, then when it is close you just see orange everywhere and cannot localise it accurately
+
+ * Ring correction
+   * The ERS-7 model AIBOs had an awful camera with chromatic distortion
+   * 'Ring correction' used a lookup table to partially correct for this before further processing

Fill out details of aibo kinematics
diff --git a/notes/Lecture2B.mdwn b/notes/Lecture2B.mdwn
index 5b88588..0457895 100644
--- a/notes/Lecture2B.mdwn
+++ b/notes/Lecture2B.mdwn
@@ -1,13 +1,39 @@
- * Kinematics
-   * source:trunk/robot/actuatorControl/legsGeometry.cc
-     * Line 23 - robot geometry
-     * Line 74 - leg kinematics
-   * source:trunk/robot/vision/PointProjection.h
-     * Line 399 - head kinematics
-
- * Inverse Kinematics
-   * source:trunk/robot/actuatorControl/legsGeometry.cc
-     * Line 108
-   * source:trunk/robot/actuatorControl/HeadKinematics.cc
-     * Line 53
-
+ * Linear algebra
+   * Use vector for location
+   * Add vectors to translate
+   * Multiply by appropriate matrix to rotate (see [Rotation Matrix](http://en.wikipedia.org/wiki/Rotation_matrix))
+   * Note that rotation is not commutative
+ * Kinematics: Find the location of the limb given the joint angles
+   * Start at base of robot limb
+   * Repeat
+     * Translate along next limb segment
+     * Rotate to account for joint angle
+   * Note that for the camera stuff we want both location and angle of the camera
+     * For angle:
+       * Start a unit vector at the origin pointing in a reference direction
+       * Do the same thing as for location, but leave out the translations
+   * source
+     * trunk/robot/actuatorControl/legsGeometry.cc
+         * Line 69 - robot geometry
+         * Line 156 - leg kinematics
+     * trunk/robot/vision/PointProjection.h
+         * Line 701 - head kinematics
+ * Inverse Kinematics: Given a desired location of a limb, find the joint angles required
+   * Often an under-specified problem
+   * AIBO legs
+     * First use total distance of end-point to find knee angle
+     * Then treat entire leg as one piece
+     * Get distance sideways from body with abductor
+     * Get forward-back distance with rotator
+   * AIBO head
+     * Approach has changed as head geometry has changed
+     * Assume Crane is 90 degrees
+     * Find tilt using just y and z    (y = height, z = forward, x = left)
+     * Assume that we're only getting tilt to do part of this (65%)
+     * Fix tilt at that value, then use crane and pan to point at the final point
+     * Note that camera is offset
+   * source
+     * trunk/robot/actuatorControl/legsGeometry.cc
+         * Line 190
+     * trunk/robot/actuatorControl/HeadKinematics.cc
+         * Line 99

More on subversion
diff --git a/aibo/comp3431/GettingStarted.mdwn b/aibo/comp3431/GettingStarted.mdwn
index 8ca3d27..a9512cc 100644
--- a/aibo/comp3431/GettingStarted.mdwn
+++ b/aibo/comp3431/GettingStarted.mdwn
@@ -5,12 +5,18 @@ An older version of these notes is in [[aibo/GettingStarted]].
 
 ### Getting the code
 
-Use [subversion](http://subverison.tigris.org) to check out the code.
+Use [subversion](http://subversion.tigris.org) to check out the code.
 
     svn co file:///data/svn/comp3431/trunk
 
 If you ran this command in your home directory, you should now have a directory called 'trunk' in your home directory.
 
+Remember that you can type:
+
+    svn help
+
+To get help on using subversion.  You can also look at the [subversion book](http://svnbook.red-bean.com) for more help.
+
 ### Setting up your home directory
 
 You'll need to edit the login scripts to set some environment variables.  Login scripts are scripts like ".profile", ".bashrc", etc.  If you checked out the source into your home directory, then adding the following lines to the end of your login script should work:

Correct spacing
diff --git a/aibo/comp3431/GettingStarted.mdwn b/aibo/comp3431/GettingStarted.mdwn
index baa682f..8ca3d27 100644
--- a/aibo/comp3431/GettingStarted.mdwn
+++ b/aibo/comp3431/GettingStarted.mdwn
@@ -6,6 +6,7 @@ An older version of these notes is in [[aibo/GettingStarted]].
 ### Getting the code
 
 Use [subversion](http://subverison.tigris.org) to check out the code.
+
     svn co file:///data/svn/comp3431/trunk
 
 If you ran this command in your home directory, you should now have a directory called 'trunk' in your home directory.

Add a new 'Getting Started' page. Turns out it is very similar to the old one...
diff --git a/aibo.mdwn b/aibo.mdwn
index 86ad1a3..66ca697 100644
--- a/aibo.mdwn
+++ b/aibo.mdwn
@@ -5,6 +5,8 @@ These notes describe the rUNSWift code for driving the Sony AIBO robots.  The mo
 
 These pages were all exported from a previous wiki and are in the wrong wiki format for this wiki.  This wiki uses [[ikiwiki/Markdown]] as its format, whereas the previous wiki used the [Trac](http://trac.edgewall.org/) wiki format.  At the moment you'll just see the raw Trac wikitext, but it is still very readable.  Feel free to convert the information.
 
+I just added a new page on [[aibo/comp3431/GettingStarted]].
+
 There are notes from the previous COMP3431 class wiki:
 
 [[!inline pages="aibo/comp3431/*" archive="yes" feeds="no" sort="title"]]
diff --git a/aibo/comp3431/GettingStarted.mdwn b/aibo/comp3431/GettingStarted.mdwn
new file mode 100644
index 0000000..baa682f
--- /dev/null
+++ b/aibo/comp3431/GettingStarted.mdwn
@@ -0,0 +1,57 @@
+Getting Started with the rUNSWift AIBO system
+=============================================
+
+An older version of these notes is in [[aibo/GettingStarted]].
+
+### Getting the code
+
+Use [subversion](http://subverison.tigris.org) to check out the code.
+    svn co file:///data/svn/comp3431/trunk
+
+If you ran this command in your home directory, you should now have a directory called 'trunk' in your home directory.
+
+### Setting up your home directory
+
+You'll need to edit the login scripts to set some environment variables.  Login scripts are scripts like ".profile", ".bashrc", etc.  If you checked out the source into your home directory, then adding the following lines to the end of your login script should work:
+
+    export ROBOCUP_DIR=~/trunk
+    export PATH=$PATH:${ROBOCUP_DIR}/bin:${ROBOCUP_DIR}/robot/bin
+
+### Building the robot binaries
+
+Change into the trunk/robot directory and type 'make'.
+
+### Making a memory stick
+
+Insert a memory stick into the computer.  If the computer mounts the memory stick itself, then you'll need to check it is mounted in the right spot.  Run "memstick_path" to get the directory where the build system is expecting to find the memory stick.  If this is incorrect, then you can either remount the memory stick in the right location, or edit the "memstick_path" script so that it gives the correct location.  The standard location is "/media/ms".
+
+If the computer doesn't mount the memory stick itself, then you should be able to mount the memory stick with the 'mountms' script.  If this doesn't mount the memory stick, then you'll need to figure out why.
+
+You should never eject a memory stick without unmounting it first.  Most of the robocup scripts will do this for you.  You should never eject the memory stick before the scripts have finished unmounting it.
+
+#### The first time you use a memory stick
+
+The very first time you use a memory stick, you should format it if you can.  You should only do this with a Sony brand device.  We've had problems with sticks breaking when formatted with non-Sony devices.  If you re-format a memory stick, you should rename it to 'ms'.
+
+Once formatted, you can copy the Aperios operating system onto the memory stick with the command 'os'.  This command will delete everything on the memory stick and copy the operating system onto the memory stick.
+
+#### Configuring the robot
+
+The command 'spip' is used to Set the Player and IP.
+
+    spip playerModule IP_Postfix [playerNum] [teamNum]
+
+e.g.
+
+    spip pForward 142
+
+Choose IP addresses of the form 1TP there T is the team number, and P is the player number (usually 1-4).
+
+#### Copying the rUNSWift code to the memory stick
+
+The "ins" command copies the compiled binaries and config files to the memory stick.
+
+#### Notes
+
+I removed the calls to coverage.py as many systems don't have this and it is not very useful for the class.
+

Add a link to the AIBO page to the side-bar
diff --git a/sidebar.mdwn b/sidebar.mdwn
index d2a6d28..c7bc7af 100644
--- a/sidebar.mdwn
+++ b/sidebar.mdwn
@@ -6,3 +6,4 @@ Quick Links
  - [[Lecture_plan]]
  - [[Assignments]]
  - [[Site_Map|Map]]
+ - [[aibo]]

Remove the z-index again as it doesn't achieve what I wanted...
diff --git a/local.css b/local.css
index b381bde..4d3bd7a 100644
--- a/local.css
+++ b/local.css
@@ -1,7 +1,6 @@
 #sidebar {
 	border: 1px solid;
 	background: white;
-	z-index: 5;
 }	
 
 #sidebar h1 {

Replace recentchanges width.
Add sidebar z-index.
diff --git a/local.css b/local.css
index 8ba75b2..b381bde 100644
--- a/local.css
+++ b/local.css
@@ -1,12 +1,9 @@
 #sidebar {
 	border: 1px solid;
 	background: white;
+	z-index: 5;
 }	
 
 #sidebar h1 {
 	text-align: center;
 }
-
-div.recentchanges {
-	width: auto;
-}

Play with recentchanges width
diff --git a/local.css b/local.css
index 4d3bd7a..8ba75b2 100644
--- a/local.css
+++ b/local.css
@@ -6,3 +6,7 @@
 #sidebar h1 {
 	text-align: center;
 }
+
+div.recentchanges {
+	width: auto;
+}

Force the sidebar to have a white background
diff --git a/local.css b/local.css
index 8f0c5a9..4d3bd7a 100644
--- a/local.css
+++ b/local.css
@@ -1,5 +1,6 @@
 #sidebar {
 	border: 1px solid;
+	background: white;
 }	
 
 #sidebar h1 {

More indent fixes
diff --git a/notes/Lecture1B.mdwn b/notes/Lecture1B.mdwn
index daf54d0..4538f4c 100644
--- a/notes/Lecture1B.mdwn
+++ b/notes/Lecture1B.mdwn
@@ -2,37 +2,37 @@
    * Aperios
      * Embedded C/C++
      * http://www.openr.org/
-     * RoboCup Wiki
-     * Aperios objects
-         * Shared memory
-         * Message Passing
-         * Lacks normal linking
-     * Our Objects/systems
-         * Vision
-         * Tracking
-             * Location
-             * Ball
-             * Opponents
-             * Wireless teammates
-         * Behaviours
-             * Python language
-             * Python/C interface
-             * PyCode
-             * TOIB/Modules
-         * Wireless
-             * TCP gateway
-             * TCP
-             * UDP
-         * ActuatorControl
-             * Walks
-             * Motions
-             * Odometry/stepComplete
-             * HeadControl
-             * PWalk
-      * Flow Control between objects
-      * Interfaces between objects
-      * OfflineVision
-      * OffActuator
+     * RoboCup Wiki - [[aibo]]
+   * Aperios objects
+       * Shared memory
+       * Message Passing
+       * Lacks normal linking
+   * Our Objects/systems
+       * Vision
+       * Tracking
+           * Location
+           * Ball
+           * Opponents
+           * Wireless teammates
+       * Behaviours
+           * Python language
+           * Python/C interface
+           * PyCode
+           * TOIB/Modules
+       * Wireless
+           * TCP gateway
+           * TCP
+           * UDP
+       * ActuatorControl
+           * Walks
+           * Motions
+           * Odometry/stepComplete
+           * HeadControl
+           * PWalk
+    * Flow Control between objects
+    * Interfaces between objects
+    * OfflineVision
+    * OffActuator
 
 == The Himalayan Tea Ceremony ==
 

fix spacing
diff --git a/notes/Lecture1B.mdwn b/notes/Lecture1B.mdwn
index 60a4c78..daf54d0 100644
--- a/notes/Lecture1B.mdwn
+++ b/notes/Lecture1B.mdwn
@@ -1,85 +1,43 @@
  * rUNSWift overview
-
    * Aperios
-
      * Embedded C/C++
-
      * http://www.openr.org/
-
      * RoboCup Wiki
-
      * Aperios objects
-
-       * Shared memory
-
-       * Message Passing
-
-       * Lacks normal linking
-
+         * Shared memory
+         * Message Passing
+         * Lacks normal linking
      * Our Objects/systems
-
-       * Vision
-
-       * Tracking
-
-         * Location
-
-         * Ball
-
-         * Opponents
-
-         * Wireless teammates
-
-       * Behaviours
-
-         * Python language
-
-         * Python/C interface
-
-         * PyCode
-
-         * TOIB/Modules
-
-       * Wireless
-
-         * TCP gateway
-
-         * TCP
-
-         * UDP
-
-       * ActuatorControl
-
-         * Walks
-
-         * Motions
-
-         * Odometry/stepComplete
-
-         * HeadControl
-
-         * PWalk
-
+         * Vision
+         * Tracking
+             * Location
+             * Ball
+             * Opponents
+             * Wireless teammates
+         * Behaviours
+             * Python language
+             * Python/C interface
+             * PyCode
+             * TOIB/Modules
+         * Wireless
+             * TCP gateway
+             * TCP
+             * UDP
+         * ActuatorControl
+             * Walks
+             * Motions
+             * Odometry/stepComplete
+             * HeadControl
+             * PWalk
       * Flow Control between objects
-
       * Interfaces between objects
-
       * OfflineVision
-
       * OffActuator
 
-
-
 == The Himalayan Tea Ceremony ==
 
-
-
 In the inns of certain Himalayan villages is practiced a most civilized and refined tea ceremony. The ceremony involves a host and exactly two guests, neither more nor less. When his guests have arrived and seated themselves at his table, the host performs three services for them. These services are listed in order of the nobility that the Himalayans attribute to them: (1) Stoking the Fire, (2) Pouring the Tea, and (3) Reciting Poetry. During the ceremony, any of those present may ask another, "Honored Sir, may I perform this onerous task for you?" However, a person may request of another only the least noble of the tasks which the other is performing. Further, if a person is performing any tasks, then he may not request a task that is nobler than the least noble task he is already performing. Custom requires that by the time the tea ceremony is over, all the tasks will have been transferred from the host to the more senior of the guests. How may this be accomplished?
 
-
-
 == Mutilated Tiling Problem ==
 
-
-
 You have an 8x8 grid, and a set of identical rectangular tiles.  Each tile can cover two squares in the grid.  If the grid is mutilated so that two diagonally opposite corners are removed, show how the remaining squares in the grid can be covered with the tiles, or if this is not possible, show why not.

Remove incorrect information
diff --git a/notes/Lecture1B.mdwn b/notes/Lecture1B.mdwn
index a6ca255..60a4c78 100644
--- a/notes/Lecture1B.mdwn
+++ b/notes/Lecture1B.mdwn
@@ -1,43 +1,85 @@
- * rUNSWift overview
-   * Aperios
-     * Embedded C/C++
-     * http://www.openr.org/
-     * RoboCup Wiki
-     * Aperios objects
-       * Shared memory
-       * Message Passing
-       * Lacks normal linking
-     * Our Objects/systems
-       * Vision
-       * Tracking
-         * Location
-         * Ball
-         * Opponents
-         * Wireless teammates
-       * Behaviours
-         * Python language
-         * Python/C interface
-         * PyCode
-         * TOIB/Modules
-       * Wireless
-         * TCP gateway
-         * TCP
-         * UDP
-       * ActuatorControl
-         * Walks
-         * Motions
-         * Odometry/stepComplete
-         * HeadControl
-         * PWalk
-      * Flow Control between objects
-      * Interfaces between objects
-      * OfflineVision
-      * OffActuator
-
-== The Himalayan Tea Ceremony ==
-
-In the inns of certain Himalayan villages is practiced a most civilized and refined tea ceremony. The ceremony involves a host and exactly two guests, neither more nor less. When his guests have arrived and seated themselves at his table, the host performs three services for them. These services are listed in order of the nobility that the Himalayans attribute to them: (1) Stoking the Fire, (2) Pouring the Tea, and (3) Reciting Poetry. During the ceremony, any of those present may ask another, "Honored Sir, may I perform this onerous task for you?" However, a person may request of another only the least noble of the tasks which the other is performing. Further, if a person is performing any tasks, then he may not request a task that is nobler than the least noble task he is already performing. Custom requires that by the time the tea ceremony is over, all the tasks will have been transferred from the host to the more senior of the guests. How may this be accomplished?
-
-== Mutilated Tiling Problem ==
-
-You have an 8x8 grid, and 31 rectangular tiles.  Each tile can cover two squares in the grid.  If the grid is mutilated so that two diagonally opposite corners are removed, show how the remaining squares in the grid can be covered with the 31 tiles, or if this is not possible, show why not.
+ * rUNSWift overview
+
+   * Aperios
+
+     * Embedded C/C++
+
+     * http://www.openr.org/
+
+     * RoboCup Wiki
+
+     * Aperios objects
+
+       * Shared memory
+
+       * Message Passing
+
+       * Lacks normal linking
+
+     * Our Objects/systems
+
+       * Vision
+
+       * Tracking
+
+         * Location
+
+         * Ball
+
+         * Opponents
+
+         * Wireless teammates
+
+       * Behaviours
+
+         * Python language
+
+         * Python/C interface
+
+         * PyCode
+
+         * TOIB/Modules
+
+       * Wireless
+
+         * TCP gateway
+
+         * TCP
+
+         * UDP
+
+       * ActuatorControl
+
+         * Walks
+
+         * Motions
+
+         * Odometry/stepComplete
+
+         * HeadControl
+
+         * PWalk
+
+      * Flow Control between objects
+
+      * Interfaces between objects
+
+      * OfflineVision
+
+      * OffActuator
+
+
+
+== The Himalayan Tea Ceremony ==
+
+
+
+In the inns of certain Himalayan villages is practiced a most civilized and refined tea ceremony. The ceremony involves a host and exactly two guests, neither more nor less. When his guests have arrived and seated themselves at his table, the host performs three services for them. These services are listed in order of the nobility that the Himalayans attribute to them: (1) Stoking the Fire, (2) Pouring the Tea, and (3) Reciting Poetry. During the ceremony, any of those present may ask another, "Honored Sir, may I perform this onerous task for you?" However, a person may request of another only the least noble of the tasks which the other is performing. Further, if a person is performing any tasks, then he may not request a task that is nobler than the least noble task he is already performing. Custom requires that by the time the tea ceremony is over, all the tasks will have been transferred from the host to the more senior of the guests. How may this be accomplished?
+
+
+
+== Mutilated Tiling Problem ==
+
+
+
+You have an 8x8 grid, and a set of identical rectangular tiles.  Each tile can cover two squares in the grid.  If the grid is mutilated so that two diagonally opposite corners are removed, show how the remaining squares in the grid can be covered with the tiles, or if this is not possible, show why not.

Rename files pulled from the old wiki to have .txt after their name.
diff --git a/aibo/AperiosOpenR b/aibo/AperiosOpenR
deleted file mode 100644
index 28f91f3..0000000
--- a/aibo/AperiosOpenR
+++ /dev/null
@@ -1,104 +0,0 @@
-= Aperios OPEN-R =
-
-Aperios is a proprietary operating system from Sony, and OPEN-R is our interface to the robot.
-
-See also [wiki:AperiosObjects Aperios Objects] for details of how we fit our code into Aperios.
-
-== Overview ==
-
-OPEN-R software is modular and object oriented (not in the C++/Java sense, but the COM/CORBA sense). Processing is performed by multiple objects running concurrently and communicating via interobject communication. Connections between objects are specified in an external description file (stub.cfg). Connection ports in objects are identified by service name. The system layer (access to sensors and actuators) is also implemented by inter-object communication.
-
-An object is similar to a UNIX process in that it is implemented by an executable file and runs concurrently with other objects (N.B. we don't know how the task switching works on AIBO). However, unlike UNIX processes objects have multiple entry points. Objects exchange information using message passing. A message contains a selector and some data; the selector identifies which method of the object to run and the data provides arguments. Objects are internally single threaded - an object can process only one message at a time. Additional messages wait in a queue.
-
-== Inter-object communication ==
-When two objects communicate, the side that sends data is called the "subject",  and the side that receives data is called the "observer". (subject --data--> observer) 
-
-When the observer is ready to receive data, the observer sends a "ASSERT-READY" message to the subject. Otherwise, the observer sends "DEASSERT-READY" to the subject. When the subject receives ASSERT-READY from the observer, the subject starts to send data to the observer. After the observer receives this data and is ready to receive the next data, the subject sends ASSERT-READY again.
-
-== Core class ==
-A core class is a C++ class that represents an object. Each object should be represented by only one core class.
-
-Characteristics of a core class:
- * A core class inherits from the OObject class. 
- * A core class implements {{{DoInit()}}}, {{{DoStart()}}}, {{{DoStop()}}}, {{{DoDestroy()}}}. 
- * A core class has the necessary number of OSubject and OObserver. Example:
-{{{
-    OSubject* subject[numOfSubject]; 
-    OObserver* observer[numOfObserver]; 
-}}}
- * numOfSubject and numOfObserver are defined in def.h that is generated by the stubgen2 command. 
-
-more coming...
-
-== Stub ==
-Stub is a specification of OPEN-R object. 
-Every OPEN-R object you define, you must have a stub file and usually called stub.cfg. 
-Currently, in our rUNSWift architecture, we have four (I think...) OPEN-R objects namely: 
- * vision 
- * actuator
- * wireless
- * GameController
-Thus, we have four stub files and they reside in vision, actuatorControl, GameController and wireless directories respectively. 
-Each OPEN-R object has several services that can be invoked between objects and each of these services is defined as 
-
-"(Connection name)", (Member function 1), (Member fuction 2) 
-
-* Connection name - The connection name consists of the following items. 
-(Object name).(Subname).(Data name).(Service type)
-
-Object Name - Any name you want, but usually the core class name. 
-
-Subname - This is a service name and must be unique. Do not use the same subname that other serivces use. 
-
-Data Name - This is the name corresponding to the data type used in inter-object communication. 
-
-Service Type - S for subject and O for observer. 
-
-* Member function 1 - This member function is called when a connection result is received. 
-
-* Member function 2 - If this service is for observers, this function is called when a message is received from a subject. If this service is for subjects, this function is called when ASSERT-READY or DEASSERT-READY is received from an observer. 
-
-Below is a snippet of stub.cfg in vision directory.
-Explanation on this snippet is coming soon. 
-{{{
-ObjectName : Vision
-NumOfOSubject   : 8
-NumOfOObserver  : 7
-
-Service : "Vision.SetIndication.int.S", 		null, null
-...
-Service : "Vision.Sensor.OSensorFrameVectorData.O", 	null, ResultSensor()
-...
-}}}
-
-== OPEN-R Configuration Files ==
-
-=== OBJECT.CFG ===
-This file lists all of the objects that the dog will load and execute.
-
-=== CONNECT.CFG ===
-There needs to be a way to interconnect all the objects and their interfaces. These interfaces are defined in each object's respective stub.cfg file. Then by using a connect.cfg file, it will draw links between the interfaces on stub.cfg files.
-
-=== DESIGNDB.CFG ===
-
-
-== Building the bin file ==
-
-== Some History ==
-Currently, rUNSWift has different OPEN-R objects like vision, actuator and wireless. 
-However, in 2002 rUNSWift, they only had one OPEN-R object that did everything. 
-Since OPEN-R object is single threaded, there was a significant performance slow down in using wireless. 
-When the object was handling wireless process (e.g. AIBOs communicating each other), it blocked out all the other requested services like vision and actuator.  
-So, M. S. K. told me that 2002 rUNSWift decided not to use wireless at all! (interesting)
-Which means AIBOs weren't communicating each other... which also means no team work between AIBOs in 2002? 
-
-Thus, in 2003 or 2004? rUNSWift introduced other OPEN-R objects like wireless... So that when AIBOs communicate via wireless, wireless process won't block other processes, thereby smoothing actuator and vision processes.    
-
-== Note ==
- * The senser data is sent every 32ms (frequency = 31.25Hz)   (open-r::Level2!ReferenceGuilde.pdf)
- * 3 types of data used for communication:
-{{{
-    OCommandVectorData
-    OSensorFrameVectorData
-    OFbkImageVectorData
-}}}
diff --git a/aibo/AperiosOpenR.txt b/aibo/AperiosOpenR.txt
new file mode 100644
index 0000000..28f91f3
--- /dev/null
+++ b/aibo/AperiosOpenR.txt
@@ -0,0 +1,104 @@
+= Aperios OPEN-R =
+
+Aperios is a proprietary operating system from Sony, and OPEN-R is our interface to the robot.
+
+See also [wiki:AperiosObjects Aperios Objects] for details of how we fit our code into Aperios.
+
+== Overview ==
+
+OPEN-R software is modular and object oriented (not in the C++/Java sense, but the COM/CORBA sense). Processing is performed by multiple objects running concurrently and communicating via interobject communication. Connections between objects are specified in an external description file (stub.cfg). Connection ports in objects are identified by service name. The system layer (access to sensors and actuators) is also implemented by inter-object communication.
+
+An object is similar to a UNIX process in that it is implemented by an executable file and runs concurrently with other objects (N.B. we don't know how the task switching works on AIBO). However, unlike UNIX processes objects have multiple entry points. Objects exchange information using message passing. A message contains a selector and some data; the selector identifies which method of the object to run and the data provides arguments. Objects are internally single threaded - an object can process only one message at a time. Additional messages wait in a queue.
+
+== Inter-object communication ==
+When two objects communicate, the side that sends data is called the "subject",  and the side that receives data is called the "observer". (subject --data--> observer) 
+
+When the observer is ready to receive data, the observer sends a "ASSERT-READY" message to the subject. Otherwise, the observer sends "DEASSERT-READY" to the subject. When the subject receives ASSERT-READY from the observer, the subject starts to send data to the observer. After the observer receives this data and is ready to receive the next data, the subject sends ASSERT-READY again.
+
+== Core class ==
+A core class is a C++ class that represents an object. Each object should be represented by only one core class.
+
+Characteristics of a core class:
+ * A core class inherits from the OObject class. 
+ * A core class implements {{{DoInit()}}}, {{{DoStart()}}}, {{{DoStop()}}}, {{{DoDestroy()}}}. 
+ * A core class has the necessary number of OSubject and OObserver. Example:
+{{{
+    OSubject* subject[numOfSubject]; 
+    OObserver* observer[numOfObserver]; 
+}}}
+ * numOfSubject and numOfObserver are defined in def.h that is generated by the stubgen2 command. 
+
+more coming...
+
+== Stub ==
+Stub is a specification of OPEN-R object. 
+Every OPEN-R object you define, you must have a stub file and usually called stub.cfg. 
+Currently, in our rUNSWift architecture, we have four (I think...) OPEN-R objects namely: 
+ * vision 
+ * actuator
+ * wireless
+ * GameController
+Thus, we have four stub files and they reside in vision, actuatorControl, GameController and wireless directories respectively. 
+Each OPEN-R object has several services that can be invoked between objects and each of these services is defined as 
+
+"(Connection name)", (Member function 1), (Member fuction 2) 
+
+* Connection name - The connection name consists of the following items. 
+(Object name).(Subname).(Data name).(Service type)
+
+Object Name - Any name you want, but usually the core class name. 
+
+Subname - This is a service name and must be unique. Do not use the same subname that other serivces use. 
+
+Data Name - This is the name corresponding to the data type used in inter-object communication. 
+
+Service Type - S for subject and O for observer. 
+
+* Member function 1 - This member function is called when a connection result is received. 
+
+* Member function 2 - If this service is for observers, this function is called when a message is received from a subject. If this service is for subjects, this function is called when ASSERT-READY or DEASSERT-READY is received from an observer. 
+
+Below is a snippet of stub.cfg in vision directory.
+Explanation on this snippet is coming soon. 
+{{{
+ObjectName : Vision
+NumOfOSubject   : 8
+NumOfOObserver  : 7
+
+Service : "Vision.SetIndication.int.S", 		null, null
+...
+Service : "Vision.Sensor.OSensorFrameVectorData.O", 	null, ResultSensor()
+...
+}}}
+
+== OPEN-R Configuration Files ==
+
+=== OBJECT.CFG ===
+This file lists all of the objects that the dog will load and execute.
+
+=== CONNECT.CFG ===
+There needs to be a way to interconnect all the objects and their interfaces. These interfaces are defined in each object's respective stub.cfg file. Then by using a connect.cfg file, it will draw links between the interfaces on stub.cfg files.
+
+=== DESIGNDB.CFG ===
+
+

(Diff truncated)
small updates & spacing change
diff --git a/notes/Lecture1A.mdwn b/notes/Lecture1A.mdwn
index 0aa1ab9..14c825d 100644
--- a/notes/Lecture1A.mdwn
+++ b/notes/Lecture1A.mdwn
@@ -1,73 +1,75 @@
- * Course Overview
-   * What is course about?
-     * AI as what humans do
-     * AI as what we cannot do yet
-     * AI as systems to achieve weak goals
-   * Overview vs detail - some of each
-   * Aiming at top of class
-   * Discussion in class - need to take own notes - almost problem based learning
-   * Plagiarism policy
-   * Systems, search, bayes
-   * Representation is important
-
- * Agents building = system building
-   * KISS ( Keep It Short & Simple)
-     * Premature profiling is the root of all evil
-     * Good software engineering helps
-     * Code reviews
-     * Only as strong as weakest link
-     * Trade-offs between approaches
-
- * Approximation:
-   * Take a machine learning course
-   * Bayes' Rule
-
- * Overview of Agent in world
-
- * Types of systems:
-   * Discrete vs Continuous
-     * Finite vs Infinite
-     * Continuous/Smooth vs Discontinuous
-       * Discrete is usually linked with Discontinuous because it tends to have "jumps"
-   * Fully Observable vs Partially Observable
-     * Fully Observable - when agent sensors world means it knows everything about the world
-     * Partially Observable - almost all real agents can only see what they can observe through sensors
-   * Markov vs. Non-markov
-     * Assuming time is discrete
-     * In Markov model, what state is happening at the moment does not depend on what state & action in previous time 
-     * It is not necessary to remember the full history, since we only want to record sufficient statistics to be able to predict what happens next
-   * Deterministic vs Non-deterministic vs Stochastic (Non-deterministic with probabilities)
-     * Deterministic, no probability
-     * Non-deterministic, occasionally probability is given
-     * Stochastic, probability is always given
-   * Implicit vs explicit time
-     * Systems often have collection of states & actions
-     * Implicit time means all action to change state I into state II assume 1 time step
-   * Tracking vs Acting
-     * Acting --> at every time step, perform an action, given sufficient statistics
-     * Tracking --> the world perform the change for the agent, finding sufficient statistic to find a state or an action to perform. (can be think of a subset of Acting)
-   * Online vs Offline  (Anytime algs)
-     * Offline - Not attached to robot
-     * Online - continuous problems
-   * Stationary vs Non-stationary (world changes over time without actions of agent)
-
- * Goal types:
-   * Goal = state
-   * Goal = trajectory
-     * Goal is specified in a path, go through X states of states (exact goal)
-   * Maintenance goals
-   * Reward (Loss)
-
- * Plan types:
-   * Complete policy
-   * Markov policy
-     * All history is irrelevant
-   * Linear plan
-   * Telioreactive plan
-
- * Representation:
-   * Raw states
-   * Decomposed state space ( have list of variables and coordinate system)
-   * Predicate calculus  (boolean predicates)
-   * First order calculus  (relations)
-   * Turing complete
+ * Course Overview
+   * What is course about?
+     * AI as what humans do
+     * AI as what we cannot do yet
+     * AI as systems to achieve weak goals
+   * Overview vs detail - some of each
+   * Aiming at top of class
+   * Discussion in class - need to take own notes - almost problem based learning
+   * Plagiarism policy
+   * Systems, search, bayes
+   * Representation is important
+
+ * Agents building = system building
+   * KISS ( Keep It Simple & Stupid)
+     * Premature profiling is the root of all evil
+     * Good software engineering helps
+     * Code reviews
+     * Only as strong as weakest link
+     * Trade-offs between approaches
+
+ * Approximation:
+   * Take a machine learning course
+   * Bayes' Rule
+
+ * Overview of Agent in world
+
+ * Types of systems:
+
+   * Discrete vs Continuous
+     * Finite vs Infinite
+     * Continuous (Smooth, Discontinuous, etc)
+         * Discrete is usually linked with Discontinuous because it tends to have "jumps"
+   * Fully Observable vs Partially Observable
+     * Fully Observable - when agent sensors world means it knows everything about the world
+     * Partially Observable - almost all real agents can only see what they can observe through sensors
+   * Markov vs. Non-markov
+     * Assuming time is discrete
+     * In Markov model, what state is happening at the moment does not depend on what state & action in previous time 
+     * It is not necessary to remember the full history, since we only want to record sufficient statistics to be able to predict what happens next
+   * Deterministic vs Non-deterministic vs Stochastic (Non-deterministic with probabilities)
+     * Deterministic, no probability
+     * Non-deterministic, occasionally probability is given
+     * Stochastic, probability is always given
+   * Implicit vs explicit time
+     * Systems often have collection of states & actions
+     * Implicit time means all action to change state I into state II assume 1 time step
+   * Tracking vs Acting
+     * Acting --> at every time step, perform an action, given sufficient statistics
+     * Tracking --> the world perform the change for the agent, finding sufficient statistic to find a state or an action to perform. (can be think of a subset of Acting)
+   * Online vs Offline  (Anytime algs)
+     * Offline - Not attached to robot
+     * Online - continuous problems
+   * Stationary vs Non-stationary (world changes over time without actions of agent)
+
+ * Goal types:
+   * Goal = state
+   * Goal = trajectory
+     * Goal is specified in a path, go through X states of states (exact goal)
+   * Maintenance goals
+   * Reward (Loss)
+
+ * Plan types:
+   * Complete policy
+   * Markov policy
+     * Only previous state (not the prior history) is relevant
+   * Linear plan
+   * Telioreactive plan
+
+
+ * Representation: (See [Chomsky Hierarchy](http://en.wikipedia.org/wiki/Chomsky_hierarchy) of Languages)
+   * Raw states
+   * Decomposed state space ( have list of variables - a coordinate system )
+   * Propositional calculus  (boolean set of variables)
+   * First order (Predicate) calculus  (relations)
+   * Turing complete

Feedback from timetabling meeting
diff --git a/news/Timetable_Changes.mdwn b/news/Timetable_Changes.mdwn
new file mode 100644
index 0000000..4bef435
--- /dev/null
+++ b/news/Timetable_Changes.mdwn
@@ -0,0 +1,13 @@
+Hi all,
+
+  Just a quick note about what happened at the timetabling meeting last Thursday.
+
+- There were no clash-free times to move the Thursday class to.  (Monday afternoon was best, but wasn't any better than the current time, and I'd prefer to leave things as they are if possible.)
+- I found out that one of the other classes that was clashing is planning to move, and it appears it is easier for them to move than for us.
+- I am trying to expand the size of the 11am lab on Tuesday and cancel the noon lab.  Noone at the meeting had a problem with this and it will make things run more smoothly.
+
+Overview: No changes in lecture times.  I'm looking to cancel the noon lab and just run the 11am lab.
+
+See you all tomorrow,
+
+Will

more css stuff
diff --git a/local.css b/local.css
index a2465b3..8f0c5a9 100644
--- a/local.css
+++ b/local.css
@@ -1,5 +1,5 @@
 #sidebar {
-	border: 1px solid #FFFFFF;
+	border: 1px solid;
 }	
 
 #sidebar h1 {

Try css changes again
diff --git a/local.css b/local.css
index 82547f9..a2465b3 100644
--- a/local.css
+++ b/local.css
@@ -1,51 +1,7 @@
 #sidebar {
+	border: 1px solid #FFFFFF;
 }	
 
 #sidebar h1 {
-	margin: 10px 0 0 0;
-	padding: 5px 0 5px 10px; 
-	border: 1px solid #EFF0F1;
-	background: #EEF0F1;
-	color: #555555;
-	font-family: Verdana,'Trebuchet MS',Sans-serif;
-	font-style: normal;
-	font-variant: normal;
-	font-weight: bold;
-	font-size: 1.1em;
-	line-height: normal;
-}
-
-#sidebar .left-box {
-	margin: 0 0 5px 0;	
-	padding: 0;
-	border: 1px solid #EFF0F1; 
-}
-
-#sidebar ul {
-	margin: 3px 0 8px 0;
-	padding: 0;
-	list-style: none;
-	text-align: left;
-	text-decoration: none;		
-}
-
-#sidebar ul li {
-	display: block;
-	margin: 0 2px;	
-	padding: 2px 0 2px 25px;
-	border-bottom: 1px solid #EFF0F1;
-}
-
-#sidebar ul a {
-	margin: 0;
-	padding: 0;
-	font-weight: bolder;
-	text-decoration: none;	
-	background-image: none;	
-}
-
-#sidebar .selflink {
-	background: white;
-	color: #333333;
-	font-weight: bolder;
+	text-align: center;
 }

Remove outline in sidebar.mdwn (should be in css file)
diff --git a/sidebar.mdwn b/sidebar.mdwn
index 2823b93..d2a6d28 100644
--- a/sidebar.mdwn
+++ b/sidebar.mdwn
@@ -1,13 +1,8 @@
-<TABLE BORDER=1 FRAME=BOX RULES=NONE><TR><TD>
-<CENTER>
 Quick Links
 -----------
-</CENTER>
 
  - [Front Page](http://www.cse.unsw.edu.au/~cs3431/)
  - [[News]]
  - [[Lecture_plan]]
  - [[Assignments]]
  - [[Site_Map|Map]]
-
-</TD><TD>&nbsp;&nbsp;</TD></TR></TABLE>

Try a stylesheet.
diff --git a/local.css b/local.css
new file mode 100644
index 0000000..82547f9
--- /dev/null
+++ b/local.css
@@ -0,0 +1,51 @@
+#sidebar {
+}	
+
+#sidebar h1 {
+	margin: 10px 0 0 0;
+	padding: 5px 0 5px 10px; 
+	border: 1px solid #EFF0F1;
+	background: #EEF0F1;
+	color: #555555;
+	font-family: Verdana,'Trebuchet MS',Sans-serif;
+	font-style: normal;
+	font-variant: normal;
+	font-weight: bold;
+	font-size: 1.1em;
+	line-height: normal;
+}
+
+#sidebar .left-box {
+	margin: 0 0 5px 0;	
+	padding: 0;
+	border: 1px solid #EFF0F1; 
+}
+
+#sidebar ul {
+	margin: 3px 0 8px 0;
+	padding: 0;
+	list-style: none;
+	text-align: left;
+	text-decoration: none;		
+}
+
+#sidebar ul li {
+	display: block;
+	margin: 0 2px;	
+	padding: 2px 0 2px 25px;
+	border-bottom: 1px solid #EFF0F1;
+}
+
+#sidebar ul a {
+	margin: 0;
+	padding: 0;
+	font-weight: bolder;
+	text-decoration: none;	
+	background-image: none;	
+}
+
+#sidebar .selflink {
+	background: white;
+	color: #333333;
+	font-weight: bolder;
+}

Invert include order
diff --git a/aibo.mdwn b/aibo.mdwn
index 071ce2a..86ad1a3 100644
--- a/aibo.mdwn
+++ b/aibo.mdwn
@@ -5,10 +5,11 @@ These notes describe the rUNSWift code for driving the Sony AIBO robots.  The mo
 
 These pages were all exported from a previous wiki and are in the wrong wiki format for this wiki.  This wiki uses [[ikiwiki/Markdown]] as its format, whereas the previous wiki used the [Trac](http://trac.edgewall.org/) wiki format.  At the moment you'll just see the raw Trac wikitext, but it is still very readable.  Feel free to convert the information.
 
-These are notes transferred from the previous wiki about the UNSW/NICTA rUNSWift architecture:
+There are notes from the previous COMP3431 class wiki:
 
-[[!inline pages="aibo/*" archive="yes" feeds="no" sort="title"]]
+[[!inline pages="aibo/comp3431/*" archive="yes" feeds="no" sort="title"]]
 
-There are also notes from the previous class wiki:
+There are notes from the previous rUNSWift wiki:
+
+[[!inline pages="aibo/*" archive="yes" feeds="no" sort="title"]]
 
-[[!inline pages="aibo/comp3431/*" archive="yes" feeds="no" sort="title"]]

cleanup
diff --git a/aibo.mdwn b/aibo.mdwn
index bcc7940..071ce2a 100644
--- a/aibo.mdwn
+++ b/aibo.mdwn
@@ -1,9 +1,9 @@
 AIBO Notes
 ==========
 
-These notes describe the rUNSWift code for driving the Sony AIBO robots.  The most useful places to start are probably the [[aibo/WikiStart]] and [[aibo/comp3431/WikiStart]] pages.
+These notes describe the rUNSWift code for driving the Sony AIBO robots.  The most useful places to start are probably the rUNSWift [[aibo/WikiStart]] and the COMP3431 [[aibo/comp3431/WikiStart]] pages.
 
-These pages were all exported from a previous wiki and are in the wrong wiki format for this wiki.  This wiki uses [[Markdown|ikiwiki/Markdown]] as its format, whereas the previous wiki used the [Trac](http://trac.edgewall.org/) wiki format.  At the moment you'll just see the raw Trac wikitext, but it is still very readable.  Feel free to convert the information.
+These pages were all exported from a previous wiki and are in the wrong wiki format for this wiki.  This wiki uses [[ikiwiki/Markdown]] as its format, whereas the previous wiki used the [Trac](http://trac.edgewall.org/) wiki format.  At the moment you'll just see the raw Trac wikitext, but it is still very readable.  Feel free to convert the information.
 
 These are notes transferred from the previous wiki about the UNSW/NICTA rUNSWift architecture:
 

Give some pointers on where to start
diff --git a/aibo.mdwn b/aibo.mdwn
index fa7f075..bcc7940 100644
--- a/aibo.mdwn
+++ b/aibo.mdwn
@@ -1,6 +1,10 @@
 AIBO Notes
 ==========
 
+These notes describe the rUNSWift code for driving the Sony AIBO robots.  The most useful places to start are probably the [[aibo/WikiStart]] and [[aibo/comp3431/WikiStart]] pages.
+
+These pages were all exported from a previous wiki and are in the wrong wiki format for this wiki.  This wiki uses [[Markdown|ikiwiki/Markdown]] as its format, whereas the previous wiki used the [Trac](http://trac.edgewall.org/) wiki format.  At the moment you'll just see the raw Trac wikitext, but it is still very readable.  Feel free to convert the information.
+
 These are notes transferred from the previous wiki about the UNSW/NICTA rUNSWift architecture:
 
 [[!inline pages="aibo/*" archive="yes" feeds="no" sort="title"]]

Link to old wiki pages
diff --git a/news/Pages_from_old_wiki.mdwn b/news/Pages_from_old_wiki.mdwn
new file mode 100644
index 0000000..43c004c
--- /dev/null
+++ b/news/Pages_from_old_wiki.mdwn
@@ -0,0 +1,3 @@
+I've moved web pages across from the old rUNSWift and COMP3431 wikis.  Currently all the ported pages are linked from the [[AIBO]] page.  You'll also find them in the [[Site_Map|Map]] link.
+
+These pages are all in the wrong wiki format for this wiki.  This wiki uses [[Markdown|ikiwiki/Markdown]] as its format.  The previous wiki used the [Trac](http://trac.edgewall.org/) wiki format.  At the moment you'll just see the raw Trac wikitext, but it is still very readable.  Feel free to convert what you want.

Add comp3431 notes
diff --git a/aibo.mdwn b/aibo.mdwn
index 036bd92..fa7f075 100644
--- a/aibo.mdwn
+++ b/aibo.mdwn
@@ -5,3 +5,6 @@ These are notes transferred from the previous wiki about the UNSW/NICTA rUNSWift
 
 [[!inline pages="aibo/*" archive="yes" feeds="no" sort="title"]]
 
+There are also notes from the previous class wiki:
+
+[[!inline pages="aibo/comp3431/*" archive="yes" feeds="no" sort="title"]]

Add a base page for the old AIBO notes
diff --git a/aibo.mdwn b/aibo.mdwn
new file mode 100644
index 0000000..036bd92
--- /dev/null
+++ b/aibo.mdwn
@@ -0,0 +1,7 @@
+AIBO Notes
+==========
+
+These are notes transferred from the previous wiki about the UNSW/NICTA rUNSWift architecture:
+
+[[!inline pages="aibo/*" archive="yes" feeds="no" sort="title"]]
+

Comment on minor edit
diff --git a/news/Week_0_location.mdwn b/news/Week_0_location.mdwn
new file mode 100644
index 0000000..719c8aa
--- /dev/null
+++ b/news/Week_0_location.mdwn
@@ -0,0 +1,5 @@
+Just a quick note to confirm the location for tomorrow's timetabling meeting: ASB 219 (ASB == Australian School of Business).  This is the currently timetabled location for the Thursday class for the rest of semester.
+
+Be well,
+
+Will

Note logging where changes are mentioned
diff --git a/index.mdwn b/index.mdwn
index be68635..6da9ca0 100644
--- a/index.mdwn
+++ b/index.mdwn
@@ -1,4 +1,4 @@
-This page gives a broad overview of the COMP3431/9431 Robot Software Architectures course.  This web site is an [[ikiwiki]] based [wiki](http://en.wikipedia.org/wiki/Wiki) and most pages are editable by anyone enrolled in the course.  Pages are all publicly readable.  You'll need to use your normal [CSE](http://www.cse.unsw.edu.au/) account name and password to log in to make changes.
+This page gives a broad overview of the COMP3431/9431 Robot Software Architectures course.  This web site is an [[ikiwiki]] based [wiki](http://en.wikipedia.org/wiki/Wiki) and most pages are editable by anyone enrolled in the course.  Pages are all publicly readable.  You'll need to use your normal [CSE](http://www.cse.unsw.edu.au/) account name and password to log in to make changes.  All changes are logged.
 
 Course Introduction Page Contents
 ---------------------------

Insert table of contents
diff --git a/index.mdwn b/index.mdwn
index d8b2e7c..be68635 100644
--- a/index.mdwn
+++ b/index.mdwn
@@ -1,7 +1,9 @@
-COMP3431/9431 Course Introduction
-=================================
+This page gives a broad overview of the COMP3431/9431 Robot Software Architectures course.  This web site is an [[ikiwiki]] based [wiki](http://en.wikipedia.org/wiki/Wiki) and most pages are editable by anyone enrolled in the course.  Pages are all publicly readable.  You'll need to use your normal [CSE](http://www.cse.unsw.edu.au/) account name and password to log in to make changes.
 
-This page gives a broad overview to the COMP3431/9431 Robot Software Architectures course.  This web site is an [[ikiwiki]] based [wiki](http://en.wikipedia.org/wiki/Wiki) and most pages are editable by anyone enrolled in the course.  Pages are all publicly readable.  You'll need to use your normal [CSE](http://www.cse.unsw.edu.au/) account name and password to log in to make changes.
+Course Introduction Page Contents
+---------------------------
+
+[[!toc levels=2]]
 
 Aims
 ----
@@ -32,7 +34,7 @@ This course is for postgraduate students (COMP9431) and advanced undergraduates
 
 I expect students in this course to be able to program in C++ and java, and to be prepared to learn Python.
 
-While not a formal pre-requisite or co-requisite, I highly recommend that students take a machine learning course if they are interested in artificial intelligence, eg COMP9417.  That course does not need to be taken before this one. The artificial intelligence course, COMP3411, is not a bad choice either (although it isn't going to give you the depth of Machine Learning knowledge I'd recommend).
+While not a formal pre-requisite or co-requisite, I highly recommend that students take a machine learning course if they are interested in artificial intelligence, eg COMP9417.  That course does not need to be taken before this one. The artificial intelligence course, COMP3411, is not a bad choice either (although it isn't going to give you the depth of Machine Learning knowledge I'd recommend).  While it isn't a formal pre-requisite, students who have already taken COMP3411 or an equivalent course often find my course easier.
 
 Course Web Pages
 ----------------

Add a user page for Will
diff --git a/users/willu.mdwn b/users/willu.mdwn
new file mode 100644
index 0000000..b4e1988
--- /dev/null
+++ b/users/willu.mdwn
@@ -0,0 +1,3 @@
+Will is the Lecturer in Charge of the Robot Software Architectures course.
+
+More detail is available on his web page: <http://www.cse.unsw.edu.au/~willu/>

Clean up some links
diff --git a/index.mdwn b/index.mdwn
index 5448f26..d8b2e7c 100644
--- a/index.mdwn
+++ b/index.mdwn
@@ -61,7 +61,7 @@ The labs are also unusual.  I dislike busywork, so I have already implemented ev
 Syllabus
 --------
 
-Course [[notes]] and [[rough_syllabus|lecture_plan]] are available on the class wiki.  A [[sample_exam|exams/3431-sample-exam-2006.pdf]] is available from previous years as well.
+Course notes and [[rough syllabus|lecture_plan]] are available on the class wiki.  A [[sample exam|exams/3431-sample-exam-2006.pdf]] is available from previous years as well.
 
 Reading Materials
 -----------------

Update for new pre-processor directive syntax
diff --git a/map.mdwn b/map.mdwn
index c7f0ec0..f6b5e5b 100644
--- a/map.mdwn
+++ b/map.mdwn
@@ -1,4 +1,4 @@
 Robot Software Architectures wiki map
 =====================================
 
-[[map pages="*"]]
+[[!map pages="*"]]

Add a notice about the week 0 timetabling meeting
diff --git a/news/Week0.mdwn b/news/Week0.mdwn
new file mode 100644
index 0000000..1711e2c
--- /dev/null
+++ b/news/Week0.mdwn
@@ -0,0 +1,11 @@
+Week 0 is this week (starting 21 July 2008).
+
+During week 0, the University does not allow us to teach coursework, but encourages us to get admin stuff out of the way.
+
+I have had a large number of requests to re-schedule the classes because of conflicts.  I will be holding a meeting this Thursday in the normal Thursday timeslot (24 July, 2pm).  I hope to hold this in the normal Thursday room (Australian School Business room 219 (K-E12-219)), but I haven't had confirmation that is available yet.  I'll update the room information here when I know for sure.
+
+Everyone who cares when we reschedule the Lectures and Labs is encouraged to attend.  If you cannot attend, you can send me email with your timetabling constraints (mon-fri 9-6pm).  Attending is better.
+
+Be well,
+
+Will      :-)

Import raw Trac markup from old robocup and comp3431 wikis
diff --git a/aibo/AperiosOpenR b/aibo/AperiosOpenR
new file mode 100644
index 0000000..28f91f3
--- /dev/null
+++ b/aibo/AperiosOpenR
@@ -0,0 +1,104 @@
+= Aperios OPEN-R =
+
+Aperios is a proprietary operating system from Sony, and OPEN-R is our interface to the robot.
+
+See also [wiki:AperiosObjects Aperios Objects] for details of how we fit our code into Aperios.
+
+== Overview ==
+
+OPEN-R software is modular and object oriented (not in the C++/Java sense, but the COM/CORBA sense). Processing is performed by multiple objects running concurrently and communicating via interobject communication. Connections between objects are specified in an external description file (stub.cfg). Connection ports in objects are identified by service name. The system layer (access to sensors and actuators) is also implemented by inter-object communication.
+
+An object is similar to a UNIX process in that it is implemented by an executable file and runs concurrently with other objects (N.B. we don't know how the task switching works on AIBO). However, unlike UNIX processes objects have multiple entry points. Objects exchange information using message passing. A message contains a selector and some data; the selector identifies which method of the object to run and the data provides arguments. Objects are internally single threaded - an object can process only one message at a time. Additional messages wait in a queue.
+
+== Inter-object communication ==
+When two objects communicate, the side that sends data is called the "subject",  and the side that receives data is called the "observer". (subject --data--> observer) 
+
+When the observer is ready to receive data, the observer sends a "ASSERT-READY" message to the subject. Otherwise, the observer sends "DEASSERT-READY" to the subject. When the subject receives ASSERT-READY from the observer, the subject starts to send data to the observer. After the observer receives this data and is ready to receive the next data, the subject sends ASSERT-READY again.
+
+== Core class ==
+A core class is a C++ class that represents an object. Each object should be represented by only one core class.
+
+Characteristics of a core class:
+ * A core class inherits from the OObject class. 
+ * A core class implements {{{DoInit()}}}, {{{DoStart()}}}, {{{DoStop()}}}, {{{DoDestroy()}}}. 
+ * A core class has the necessary number of OSubject and OObserver. Example:
+{{{
+    OSubject* subject[numOfSubject]; 
+    OObserver* observer[numOfObserver]; 
+}}}
+ * numOfSubject and numOfObserver are defined in def.h that is generated by the stubgen2 command. 
+
+more coming...
+
+== Stub ==
+Stub is a specification of OPEN-R object. 
+Every OPEN-R object you define, you must have a stub file and usually called stub.cfg. 
+Currently, in our rUNSWift architecture, we have four (I think...) OPEN-R objects namely: 
+ * vision 
+ * actuator
+ * wireless
+ * GameController
+Thus, we have four stub files and they reside in vision, actuatorControl, GameController and wireless directories respectively. 
+Each OPEN-R object has several services that can be invoked between objects and each of these services is defined as 
+
+"(Connection name)", (Member function 1), (Member fuction 2) 
+
+* Connection name - The connection name consists of the following items. 
+(Object name).(Subname).(Data name).(Service type)
+
+Object Name - Any name you want, but usually the core class name. 
+
+Subname - This is a service name and must be unique. Do not use the same subname that other serivces use. 
+
+Data Name - This is the name corresponding to the data type used in inter-object communication. 
+
+Service Type - S for subject and O for observer. 
+
+* Member function 1 - This member function is called when a connection result is received. 
+
+* Member function 2 - If this service is for observers, this function is called when a message is received from a subject. If this service is for subjects, this function is called when ASSERT-READY or DEASSERT-READY is received from an observer. 
+
+Below is a snippet of stub.cfg in vision directory.
+Explanation on this snippet is coming soon. 
+{{{
+ObjectName : Vision
+NumOfOSubject   : 8
+NumOfOObserver  : 7
+
+Service : "Vision.SetIndication.int.S", 		null, null
+...
+Service : "Vision.Sensor.OSensorFrameVectorData.O", 	null, ResultSensor()
+...
+}}}
+
+== OPEN-R Configuration Files ==
+
+=== OBJECT.CFG ===
+This file lists all of the objects that the dog will load and execute.
+
+=== CONNECT.CFG ===
+There needs to be a way to interconnect all the objects and their interfaces. These interfaces are defined in each object's respective stub.cfg file. Then by using a connect.cfg file, it will draw links between the interfaces on stub.cfg files.
+
+=== DESIGNDB.CFG ===
+
+
+== Building the bin file ==
+
+== Some History ==
+Currently, rUNSWift has different OPEN-R objects like vision, actuator and wireless. 
+However, in 2002 rUNSWift, they only had one OPEN-R object that did everything. 
+Since OPEN-R object is single threaded, there was a significant performance slow down in using wireless. 
+When the object was handling wireless process (e.g. AIBOs communicating each other), it blocked out all the other requested services like vision and actuator.  
+So, M. S. K. told me that 2002 rUNSWift decided not to use wireless at all! (interesting)
+Which means AIBOs weren't communicating each other... which also means no team work between AIBOs in 2002? 
+
+Thus, in 2003 or 2004? rUNSWift introduced other OPEN-R objects like wireless... So that when AIBOs communicate via wireless, wireless process won't block other processes, thereby smoothing actuator and vision processes.    
+
+== Note ==
+ * The senser data is sent every 32ms (frequency = 31.25Hz)   (open-r::Level2!ReferenceGuilde.pdf)
+ * 3 types of data used for communication:
+{{{
+    OCommandVectorData
+    OSensorFrameVectorData
+    OFbkImageVectorData
+}}}
diff --git a/aibo/BflFileFormat b/aibo/BflFileFormat
new file mode 100644
index 0000000..74d46ec
--- /dev/null
+++ b/aibo/BflFileFormat
@@ -0,0 +1,15 @@
+= BFL File Format =
+
+BFL files are used for colour classification and contain the YUV image data along with information on how each pixel has been classified.
+
+The BFL file stores the image as a series of rows, top row first. (Note: there is no meta-data about how many rows might be in the image. You have to know). For each row the file stores:
+
+ * The YLL values for each pixel on the row (1 byte per pixel)
+ * The U values
+ * The V values
+ * The YLH values
+ * The YHL values
+ * the YHH values
+ * The classified colour values
+
+See [wiki:YUVPlaneFormat YUV Plane Format] for more information on the YUV values.
diff --git a/aibo/BuildingDevelopmentEnvironment b/aibo/BuildingDevelopmentEnvironment
new file mode 100644
index 0000000..a44b3d0
--- /dev/null
+++ b/aibo/BuildingDevelopmentEnvironment
@@ -0,0 +1,165 @@
+= Building Development Environment - Your 12 step guide to writing code! =
+
+shnl327@cse
+
+Note that for most of this stuff you should just install packages appropriate for your linux distro. The instructions here are for installing from source; mostly only needed if you use redhat.
+
+Most files mentioned here can be downloaded from simpson (192.168.0.206) under /home/willu/install. Download these files and folders:
+
+=== Java stuff ===
+ * j2sdk-1_4_2_06-linux-i586.rpm
+ * Jama-1.0.1.jar
+ * jogl-linux
+
+=== OS, SDK for the dogs ===
+ * OPEN_R_SDK-1.1.5-r3.tar.gz (you should get the newest one from http://www.openr.org/)
+
+=== Python libs. You should get packages for these for your system ===
+ * Python-2.4.tgz
+ * pychecker-0.8.14.tar.gz
+ * numarray-0.9.tar.gz
+ * python-profiler
+
+=== QT Libraries - again; get packages for your system ===
+ * qt-x11-free-3.3.3.tar.gz
+ * sip-4.1.1.tar.gz
+ * PyQt-x11-gpl-3.13.tar.gz
+
+=== OpenSSL is only needed for subversion. You should find svn packages for your system ===
+ * openssl-0.9.7e.tar.gz
+ * subversion-1.1.1.tar.gz < get the newest of this on cse mirror http://mirror.cse.unsw.edu.au/pub/debian/pool/main/s/subversion/
+
+=== MIPS version of gcc, binutils. Some distros provide this stuff, most don't. ===
+ * cross_dev_tools/*
+ - if you have to download use cse mirror:
+http://mirror.cse.unsw.edu.au/pub/gnu/binutils/binutils-2.14.tar.gz
+http://mirror.cse.unsw.edu.au/pub/gnu/gcc/gcc-3.3.2.tar.gz
+
+
+1. Install Java SDK
+Install the RPM with:
+{{{rpm -Uvh j2sdk-1_4_2_06-linux-i586.rpm}}}
+
+2. Install Jama and jogl
+Copy Jama.jar and the contents of jogl-linux into your JRE's lib/ext folder, which may be {{{/usr/java/j2sdk1.4.2_06/jre/lib/ext}}} if you used the default Java installation settings
+
+3. Install OPEN-R
+Copy OPEN_R_SDK-1.1.5-r3.tar.gz to {{{/usr/local}}} then untar it with:
+{{{tar -zxvf OPEN_R_SDK-1.1.5-r3.tar.gz}}}
+This untars the file to a folder OPEN_R_SDK, and thats all there is to installing the SDK.
+
+4. Install MIPS cross development tools
+There is a shell script called build-devtools in the cross development folder. Execute it and the script will install the development tools to the OPEN-R directory automatically
+
+5. Install OpenSSL
+OpenSSL is really only needed here for SVN (next one), and OpenSSL might already be installed on your machine, but if it isn't you can install it by untaring it with {{{tar -zxvf openssl-0.9.7e.tar.gz}}}, then install it with:
+{{{
+./config
+make
+make test
+make install
+}}}
+
+6. Install SVN

(Diff truncated)
Add link to Probabilistic Robotics
diff --git a/index.mdwn b/index.mdwn
index e504598..5448f26 100644
--- a/index.mdwn
+++ b/index.mdwn
@@ -70,10 +70,11 @@ There is no set text for this course. However, the following books are recommend
 
 <dl>
 <dt><a href="http://aima.cs.berkeley.edu/">Artificial Intelligence: A Modern Approach</a>; S. Russell and P. Norvig</dt><dd>This is a good overview textbook for artificial intelligence in general. If you were going to get one book on AI, this would be the one I'd choose.</dd>
+<dt><a href="http://robots.stanford.edu/probabilistic-robotics/">Probabilistic Robotics</a>; S. Thrun, W. Burgard and D. Fox</dt><dd>This is a newer textbook covering "perception and control in the face of uncertainty".  It covers those areas well, but doesn't have quite the breadth of this course.</dd>
 <dt><a href="http://www.laas.fr/planning/">Automated Planning: Theory and Practice</a>; M. Ghallab, D. Nau and P. Traverso</dt><dd>This book focusses on the planning and decision making areas of artificial intelligence. It goes goes into more detail in that one area. It provides a readable introduction to this area of artificial intelligence.</dd>
 <dt><a href="http://www-anw.cs.umass.edu/~rich/book/the-book.html">Reinforcement Learning: An Introduction</a>; R. Sutton and A. Barto</dt><dd>This is a good book on reinforcement learning and Markov Decision Processes, in the same way that "Automated Planning" is a good book on planning systems: it covers its section of AI well.</dd>
 <dt><a href="http://www.cs.cmu.edu/afs/cs.cmu.edu/user/mitchell/ftp/mlbook.html">Machine Learning</a>; T. Mitchell</dt><dd>While machine learning is only touched on in this course, I consider it a very important part of AI and robotics, so I'm putting this book here anyway.</dd>
-<dt><a href="http://www.wiley.com/WileyCDA/WileyTitle/productCd-0471619779.html">Markov Decision Processes: Discrete Stochastic Dynamic Programming</a>; M. Puterman</dt><dd>This book focuses in great detail on the theory of Markov Decision Processes. It is almost 10 years old now, and so lacks some of the newer contributions to the field, but it is an excellent reference on the mathematical theory of stochastic decision making.</dd>
+<dt>Markov Decision Processes: Discrete Stochastic Dynamic Programming; M. Puterman</dt><dd>This book focuses in great detail on the theory of Markov Decision Processes. It is almost 10 years old now, and so lacks some of the newer contributions to the field, but it is an excellent reference on the mathematical theory of stochastic decision making.</dd>
 </dl>
 
 Assignments

Update main course page to include the link for the wiki's git repository.
diff --git a/index.mdwn b/index.mdwn
index 1b55ea3..e504598 100644
--- a/index.mdwn
+++ b/index.mdwn
@@ -36,7 +36,9 @@ While not a formal pre-requisite or co-requisite, I highly recommend that studen
 
 Course Web Pages
 ----------------
-You're reading it :).  <http://www.cse.unsw.edu.au/~cs3431/>
+You're reading them :).  <http://www.cse.unsw.edu.au/~cs3431/>
+
+As noted above, this is a wiki and many of these pages are editable by people enrolled in the course.  The git repository for the wiki has read-only access here: <http://www.cse.unsw.edu.au/~cs3431/wiki.git/>.
 
 Staff
 -----

Update class notes
diff --git a/lecture_plan.mdwn b/lecture_plan.mdwn
index 80b7ce7..55bf444 100644
--- a/lecture_plan.mdwn
+++ b/lecture_plan.mdwn
@@ -44,26 +44,19 @@
 
 #### [[notes/Lecture2A]]
 
-    Low Level Vision
+    Robot Vision
       Colour segmentation
       Blobbing
-      Edge Points
+      High level concepts
 
 #### [[notes/Lecture2B]]
 
-    High Level Vision
-      Object Detection
-      Sanity Checks
-        Hand
-        Learned
-        Ripple-Down Rules?
-      Distance to objects
-        Close-in ball localization
-
-    Other teams' vision
-      German team
-      CMU Ball
-      Point projection
+    Motion (low level)
+      Head Control
+      Forward and Inverse Kinematics  (Head and Legs)
+      Point Projection
+      Non-Commutable Rotations
+      Recorded motions
 
 #### Lab (Level 3)
 
@@ -76,18 +69,14 @@
 
 #### [[notes/Lecture3A]]
 
-    Motion (low level)
-      Head Control
-      Forward and Inverse Kinematics  (Head and Legs)
-      Point Projection
-      Non-Commutable Rotations
-      Recorded motions
+    Tracking
+      Bayesian Localization I
+        Tabular representation
 
 #### [[notes/Lecture3B]]
 
     Tracking
-      Bayesian Localization
-        Tables
+      Bayesian Localization II
         Particle Filters
         Kalman-Bucy Filters
 
diff --git a/notes/Lecture10A.mdwn b/notes/Lecture10A.mdwn
index fbc121a..3dce786 100644
--- a/notes/Lecture10A.mdwn
+++ b/notes/Lecture10A.mdwn
@@ -1,36 +1,67 @@
-Review
- * Building Models
-Today
- * Building Heuristics (deterministic, goal state(s))
-   * Backward search / Dynamic programming
-     * Both cost and search heuristics
-   * Relaxing problem to find admissible (optimistic) heuristic
- * Dynamic Programming for Markov Decision Processes
-   * Stochasticity
-   * Random order of update
-     * Value iteration
-     * Policy iteration
-     * Modified Policy iteration
-   * State and state/action value functions
-     * Q(s,a) = E(r + V(s')) = Sum_s' P(s,a,s') ( r + V(s') )
-       * "Expected reward for taking action a in state s and then following policy pi"
-       * Note: P(s,a,s') is the model of the world
-     * V(s) = max_a Q(s, a)
-       * "Expected reward for following policy pi from state s"
-     * pi*(s) = argmax_a Q(s, a)
-       * pi* is the optimal policy (assuming everything has converged)
-   * Other optimality criterion
-     * One way to view what we were doing is to find a policy that maximises the long term sum of reward
-       * sum_{0 < t < infinity} r_t
-       * Maximise "sum of reward" is tricky if sums can be infinite (loops)
-     * infinite horizon, discounted
-       * Find policy to maximise sum_{0 < t < infinity} gamma^t r_t
-       * gamma is:
-         * trick to keep things bounded
-         * Interest rate
-         * (1-gamma) = probability of transitioning to 0-value terminal state each step
-       * Q(s,a) = E(r + gamma V(s'))
-     * average reward
-       * Maximise lim t_max -> infinity 1/t_max sum_{0 < t < t_max} r_t
-  * Discussion
-    * MDP solving finds a complete policy -> looks at entire state space
+Non-gradient methods:
+
+ * Powell's Direction Set Method
+   * Pick a start point and N directions
+   * Minimise in each direction in turn
+     * Example - horizontal valley
+     * Example - 45 degree valley
+   * Conjugate directions: (p 414)
+     * Imagine we have all gradient information we might want.
+     * Do first line minimization - dir u
+     * Gradient is now T to line
+     * Add constraint - gradient must stay T to u
+       * Can be approximated using the Hessian matrix - the 2nd derivative matrix
+         * Will be perfect if we're in a parabola
+       * Gives a set of lines to minimise along - choose the one with highest gradient
+    
+   * Basic algorithm
+     * Save starting position as P0
+     * For i = 1...N
+       * Move P(i-1) to along direction Ui, and make new min Pi
+       For i = 1...(N-1)
+         * Ui <- Ui+1
+         * Un <- Pn - P0
+         * Minimise along Pn
+         * Repeat (result of prev min = new P0)
+      * k iterations make last k members mutually conjugate (for a parabolic function)
+        * Problem
+          * Can lose track of a dimension
+            * Become linearly dependant
+          * Reset the direction set ever N iterations
+            * Reset to original directions
+          * Just make sure we're not linearly dependant
+          * Modify which direction we replace to make a heuristically good function
+            * Remove the direction of largest decrease.
+
+ * Use of Gradient:
+   * Simple gradient descent
+   * Gradient descent with momentum
+   * Use gradient for line search
+   * Conguate gradient methods
+     * A set of vectors are conjugate if
+        minimizing along any one of them keeps gradient T to others
+     * Quasi-Newton or Variable Metric methods (BFGS)
+      Build up an estimate of the Hessian
+      Use that to find dir to min of quadratic function
+      Search in that direction
+      Note: because we don't have the hessian directly
+        It takes N minimizations to build it up from the gradient
+        This is not very different to the conjugate gradient methods, except
+          it requires storage for the whole hessian matrix, not just the last conjugate direction
+
+Estimating the Gradient
+  Take a step in each direction - method of differences
+
+		def approx_fprime(xk,f,*args):
+			f0 = apply(f,(xk,)+args)
+			grad = Num.zeros((len(xk),),'d')
+			ei = Num.zeros((len(xk),),'d')
+			for k in range(len(xk)):
+				ei[k] = 1.0
+				grad[k] = (apply(f,(xk+epsilon*ei,)+args) - f0)/epsilon
+				ei[k] = 0.0
+			return grad
+
+  Can do the same thing with randomized vectors
+    Don't get stuck becuase some partials are not good
+
diff --git a/notes/Lecture10B.mdwn b/notes/Lecture10B.mdwn
index 7e58532..53cbc85 100644
--- a/notes/Lecture10B.mdwn
+++ b/notes/Lecture10B.mdwn
@@ -1,70 +1,71 @@
-Linkage
+Agent Example:
 
- * Continuous search
-   * plan space - looking for a good point in space, not a good path
- * Relate this to what we saw in Lecture7A on Genetic Algorithms
- * Relate to reinforcement learning
-   * Search over the space of policies for one that optimises sum of reward
+  * Example one - DunceBot
+    * Get to corner of room
+    * Unknown map
+    * Known sensors, actuators/actions
+    * Deterministic, Markov
 
-Function minimization/maximization/optimization
+    * Discussion: Which is more important: Building a map, or reaching goal?
+      * Exploration/Exploitation trade off - depends upon how many times you'll use the map
+      * Are you going to be switching goals much?
+        * Including goals as state
 
- * [http://www.library.cornell.edu/nr/bookcpdf.html Numerical Recipies in C] - chapter 10
- * [http://www.ece.northwestern.edu/~nocedal/book/num-opt.html Wright and Nocedal - Numerical Optimization]
+    * As so much is known, it is possible to invent a policy
+    * This is an AI class - how can we make the system do more of the work?
+      * If I were to change the goals, would that just require another search or a human-in-the-loop re-design?

(Diff truncated)
Update links to the lecture plan
diff --git a/notes.mdwn b/notes.mdwn
index f6e4165..01b8572 100644
--- a/notes.mdwn
+++ b/notes.mdwn
@@ -1,30 +1,3 @@
-This page includes links to the notes I use when teaching:
+[[!meta redir=lecture_plan delay=10]]
 
- * [[notes/Lecture1A]] -- Course Overview, What is an Agent?
- * [[notes/Lecture1B]] -- rUNSWift Overview
- * [[notes/Lecture2A]] -- Vision
- * [[notes/Lecture2B]] -- Head Motion and Kinematics
- * [[notes/Lecture3A]] -- Tracking - Bayes' Filters
- * [[notes/Lecture3B]] -- Tracking - Tables, particles and gaussians
- * [[notes/Lecture4A]] -- Tracking - SLAM
- * [[notes/Lecture4B]] -- Walking
- * [[notes/Lecture5A]] -- Wireless and Behaviours
- * [[notes/Lecture5B]] -- Overview of architectures
- * [[notes/Lecture6A]] -- Intoduction to search
- * [[notes/Lecture6B]] -- Heuristic search
- * [[notes/Lecture7A]] -- Genetic Algorithms
- * [[notes/Lecture7B]] -- State Space Planning
- * [[notes/Lecture8A]] -- Plan Space Planning
- * [[notes/Lecture8B]] -- Cognitive Architectures (ACT-R and SOAR)
- * [[notes/Lecture9A]] -- Logic Based Planning
- * [[notes/Lecture9B]] -- Representation in search
- * [[notes/Lecture10A]] -- Learning Heuristics and solving Markov Decision Processes
- * [[notes/Lecture10B]] -- Non-Gradient Optimization
- * [[notes/Lecture11A]] -- Gradient Optimization
- * [[notes/Lecture11B]] -- Model Based, Model Free and Policy Gradient RL
- * [[notes/Lecture12A]] -- Hierarchy in MDPs
- * [[notes/Lecture12B]] -- Partially Observable Markov Decision Processes
- * [[notes/Lecture13A]] -- Function approximation in MDPs
- * [[notes/Lecture13B]] -- Adversarial Agents
- * [[notes/Lecture14A]] -- Review - Sample Exam
- * [[notes/Lecture14B]] -- Review
+You probably want to be looking at the [[lecture_plan]].  I'll send you there in 10 seconds.
diff --git a/sidebar.mdwn b/sidebar.mdwn
index 547bb59..2823b93 100644
--- a/sidebar.mdwn
+++ b/sidebar.mdwn
@@ -6,7 +6,7 @@ Quick Links
 
  - [Front Page](http://www.cse.unsw.edu.au/~cs3431/)
  - [[News]]
- - [[Notes]]
+ - [[Lecture_plan]]
  - [[Assignments]]
  - [[Site_Map|Map]]
 

Update lecture plan - add links to class notes. Still need to update class notes.
diff --git a/lecture_plan.mdwn b/lecture_plan.mdwn
index ab64ec5..80b7ce7 100644
--- a/lecture_plan.mdwn
+++ b/lecture_plan.mdwn
@@ -1,9 +1,26 @@
-Week 1 - 26/7
-  A
-	Course Overview
-	Agent/Planning systems
+### Week 0 - 21/7
+
+#### A
+
+    No lecture A in week 0
+
+#### B
+
+    Re-schedule classes to try and accommodate everyone.
+
+#### Lab
+
+    No labs week 0
+
+### Week 1 - 28/7
+
+#### [[notes/Lecture1A]]
+
+    Course Overview
+    Agent/Planning systems
+
+#### [[notes/Lecture1B]]
 
-  B
     rUNSWift overview
       Aperios
       Our Objects/systems
@@ -15,21 +32,25 @@ Week 1 - 26/7
       Flow Control between objects
       Interfaces between objects
 
-  Lab
+#### Lab (Level 3)
+
     Intro to rUNSWift agent
       Subversion
       Compiling
       Running
       Base Station
 
-Week 2 - 2/8
-  A
-	Low Level Vision
-	  Colour segmentation
-	  Blobbing
-	  Edge Points
+### Week 2 - 4/8
+
+#### [[notes/Lecture2A]]
+
+    Low Level Vision
+      Colour segmentation
+      Blobbing
+      Edge Points
+
+#### [[notes/Lecture2B]]
 
-  B
     High Level Vision
       Object Detection
       Sanity Checks
@@ -44,14 +65,17 @@ Week 2 - 2/8
       CMU Ball
       Point projection
 
-  Lab
+#### Lab (Level 3)
+
     Ball tracking
     Assignment 1 out at end of lab (Tracking & Life Saver)
     Assignment 2 out at end of lab (Grab Ball - get to other half of field)
     Assignment 3 out at end of lab (1x1 penalty shooter)
 
-Week 3 - 9/8
-  A
+### Week 3 - 11/8
+
+#### [[notes/Lecture3A]]
+
     Motion (low level)
       Head Control
       Forward and Inverse Kinematics  (Head and Legs)
@@ -59,38 +83,44 @@ Week 3 - 9/8
       Non-Commutable Rotations
       Recorded motions
 
-  B
+#### [[notes/Lecture3B]]
+
     Tracking
       Bayesian Localization
         Tables
         Particle Filters
         Kalman-Bucy Filters
 
-  Lab
+#### Lab (Level 3)
+
     Go To Point
       Experiments with tracking (odom/obs, bad mean/var)
 
-Week 4 - 16/8
+### Week 4 - 18/8
+
+#### [[notes/Lecture4A]]
 
-  A
     Finish Tracking
     Information form Kalman Filters
     SLAM
       Expectation Maximisation if time
 
-  B
+#### [[notes/Lecture4B]]
+
     Motion (Walking)
       Walking
         Normal Walk
         Odomentry Calibration
         Parameter Optimisation
 
-  Lab
+#### Lab (Level 3)
+
     Work on Assignment 1
 
-Week 5 - 23/8
+### Week 5 - 25/8
+
+#### [[notes/Lecture5A]]
 
-  A
     Wireless
       UDP vs TCP
     Behaviours
@@ -98,96 +128,107 @@ Week 5 - 23/8
       Hierarchies
       Software Engineering and State
 
-  B
+#### [[notes/Lecture5B]]
+
     Agent Architectures
       Engineered (subsumption)
       Logic based (Three layer, planning, golog)
-      Cognitive (ACT-R, not Golog in thie sense)
+      Cognitive (ACT-R, not Golog in this sense)
       Reinforcement Learning
 
-  Lab
+#### Lab (Level 3)
+
     Assignment 1 graded in lab
   
-Week 6 - 30/8
+### Week 6 - 1/9
+
+#### [[notes/Lecture6A]]
 
-  A
     Introduction to Search
       BFS/DFS
       A*
       Islands
   
-  B
+#### [[notes/Lecture6B]]
+
     Further search - heuristics
       Mixing Search and Heuristics (Korf)
       Heuristics as simplifications/relaxations
-      
 
-  Lab
+#### Lab (Computer lab)
+
     A*/Islands/Heuristics
 
-Week 7 - 6/9
+### Week 7 - 8/9
 
-  A
-  	Planning
-  	  State Space search
+#### [[notes/Lecture7A]]
+
+    Planning
+      State Space search
+
+#### [[notes/Lecture7B]]
 

(Diff truncated)
Clean up after test
diff --git a/news/noNewsIsGoodNews.mdwn b/news/noNewsIsGoodNews.mdwn
index ce34e75..c1736a3 100644
--- a/news/noNewsIsGoodNews.mdwn
+++ b/news/noNewsIsGoodNews.mdwn
@@ -1,3 +1 @@
 No news is good news... right?
-
-testing

blah
diff --git a/news/noNewsIsGoodNews.mdwn b/news/noNewsIsGoodNews.mdwn
index c1736a3..ce34e75 100644
--- a/news/noNewsIsGoodNews.mdwn
+++ b/news/noNewsIsGoodNews.mdwn
@@ -1 +1,3 @@
 No news is good news... right?
+
+testing

cleanup
diff --git a/news/noNewsIsGoodNews.mdwn b/news/noNewsIsGoodNews.mdwn
index de603f5..c1736a3 100644
--- a/news/noNewsIsGoodNews.mdwn
+++ b/news/noNewsIsGoodNews.mdwn
@@ -1,3 +1 @@
 No news is good news... right?
-
-Whee more testing

tesing 123
diff --git a/news/noNewsIsGoodNews.mdwn b/news/noNewsIsGoodNews.mdwn
index c1736a3..de603f5 100644
--- a/news/noNewsIsGoodNews.mdwn
+++ b/news/noNewsIsGoodNews.mdwn
@@ -1 +1,3 @@
 No news is good news... right?
+
+Whee more testing

clean up
diff --git a/news/noNewsIsGoodNews.mdwn b/news/noNewsIsGoodNews.mdwn
index 4bf417f..c1736a3 100644
--- a/news/noNewsIsGoodNews.mdwn
+++ b/news/noNewsIsGoodNews.mdwn
@@ -1,3 +1 @@
 No news is good news... right?
-
-another test

another test
diff --git a/news/noNewsIsGoodNews.mdwn b/news/noNewsIsGoodNews.mdwn
index c1736a3..4bf417f 100644
--- a/news/noNewsIsGoodNews.mdwn
+++ b/news/noNewsIsGoodNews.mdwn
@@ -1 +1,3 @@
 No news is good news... right?
+
+another test

Revert last test edit
diff --git a/news/noNewsIsGoodNews.mdwn b/news/noNewsIsGoodNews.mdwn
index f38d963..c1736a3 100644
--- a/news/noNewsIsGoodNews.mdwn
+++ b/news/noNewsIsGoodNews.mdwn
@@ -1,3 +1 @@
 No news is good news... right?
-
-Well, that's good news then :)

test change
diff --git a/news/noNewsIsGoodNews.mdwn b/news/noNewsIsGoodNews.mdwn
index c1736a3..f38d963 100644
--- a/news/noNewsIsGoodNews.mdwn
+++ b/news/noNewsIsGoodNews.mdwn
@@ -1 +1,3 @@
 No news is good news... right?
+
+Well, that's good news then :)

Change the ikiwiki link to be local
diff --git a/index.mdwn b/index.mdwn
index d934115..1b55ea3 100644
--- a/index.mdwn
+++ b/index.mdwn
@@ -1,7 +1,7 @@
 COMP3431/9431 Course Introduction
 =================================
 
-This page gives a broad overview to the COMP3431/9431 Robot Software Architectures course.  This web site is an [ikiwiki](http://ikiwiki.info) based [wiki](http://en.wikipedia.org/wiki/Wiki) and most pages are editable by anyone enrolled in the course.  Pages are all publicly readable.  You'll need to use your normal [CSE](http://www.cse.unsw.edu.au/) account name and password to log in to make changes.
+This page gives a broad overview to the COMP3431/9431 Robot Software Architectures course.  This web site is an [[ikiwiki]] based [wiki](http://en.wikipedia.org/wiki/Wiki) and most pages are editable by anyone enrolled in the course.  Pages are all publicly readable.  You'll need to use your normal [CSE](http://www.cse.unsw.edu.au/) account name and password to log in to make changes.
 
 Aims
 ----
@@ -87,4 +87,3 @@ Assessment
  - Final exam: 45%
 
 Lectures and Assignments are similar between COMP3431 and COMP9431 students.  I am required to make the the COMP9431 course 'harder' than COMP3431, and hence the exam is more in-depth for COMP9431.  As I noted above, both courses are hard.
-

Fix site map link (for real this time, honest)
diff --git a/sidebar.mdwn b/sidebar.mdwn
index 8956ffa..547bb59 100644
--- a/sidebar.mdwn
+++ b/sidebar.mdwn
@@ -8,6 +8,6 @@ Quick Links
  - [[News]]
  - [[Notes]]
  - [[Assignments]]
- - [[Site_Map]]
+ - [[Site_Map|Map]]
 
 </TD><TD>&nbsp;&nbsp;</TD></TR></TABLE>

Fix site map link
diff --git a/sidebar.mdwn b/sidebar.mdwn
index aa99147..8956ffa 100644
--- a/sidebar.mdwn
+++ b/sidebar.mdwn
@@ -8,6 +8,6 @@ Quick Links
  - [[News]]
  - [[Notes]]
  - [[Assignments]]
- - [[Site Map]]
+ - [[Site_Map]]
 
 </TD><TD>&nbsp;&nbsp;</TD></TR></TABLE>

Add link to main page to side bar
diff --git a/sidebar.mdwn b/sidebar.mdwn
index 02d8c92..aa99147 100644
--- a/sidebar.mdwn
+++ b/sidebar.mdwn
@@ -4,9 +4,10 @@ Quick Links
 -----------
 </CENTER>
 
+ - [Front Page](http://www.cse.unsw.edu.au/~cs3431/)
  - [[News]]
  - [[Notes]]
  - [[Assignments]]
- - [[Map]]
+ - [[Site Map]]
 
 </TD><TD>&nbsp;&nbsp;</TD></TR></TABLE>

Add a site map
diff --git a/map.mdwn b/map.mdwn
new file mode 100644
index 0000000..c7f0ec0
--- /dev/null
+++ b/map.mdwn
@@ -0,0 +1,4 @@
+Robot Software Architectures wiki map
+=====================================
+
+[[map pages="*"]]
diff --git a/sidebar.mdwn b/sidebar.mdwn
index 1a0b455..02d8c92 100644
--- a/sidebar.mdwn
+++ b/sidebar.mdwn
@@ -4,8 +4,9 @@ Quick Links
 -----------
 </CENTER>
 
- - [[Lecture_Notes|notes]]
- - [[Assignments]]
  - [[News]]
+ - [[Notes]]
+ - [[Assignments]]
+ - [[Map]]
 
 </TD><TD>&nbsp;&nbsp;</TD></TR></TABLE>

Add a news feed
diff --git a/news.mdwn b/news.mdwn
new file mode 100644
index 0000000..072d561
--- /dev/null
+++ b/news.mdwn
@@ -0,0 +1,4 @@
+News
+====
+
+[[!inline pages="news/* and !*/Discussion" show="10" rootpage="news"]]
diff --git a/news/noNewsIsGoodNews.mdwn b/news/noNewsIsGoodNews.mdwn
new file mode 100644
index 0000000..c1736a3
--- /dev/null
+++ b/news/noNewsIsGoodNews.mdwn
@@ -0,0 +1 @@
+No news is good news... right?
diff --git a/sidebar.mdwn b/sidebar.mdwn
index 00f88c6..1a0b455 100644
--- a/sidebar.mdwn
+++ b/sidebar.mdwn
@@ -6,5 +6,6 @@ Quick Links
 
  - [[Lecture_Notes|notes]]
  - [[Assignments]]
+ - [[News]]
 
 </TD><TD>&nbsp;&nbsp;</TD></TR></TABLE>

Centre sidebar heading
diff --git a/sidebar.mdwn b/sidebar.mdwn
index 0d95ddf..00f88c6 100644
--- a/sidebar.mdwn
+++ b/sidebar.mdwn
@@ -1,5 +1,8 @@
 <TABLE BORDER=1 FRAME=BOX RULES=NONE><TR><TD>
-#### Quick Links ####
+<CENTER>
+Quick Links
+-----------
+</CENTER>
 
  - [[Lecture_Notes|notes]]
  - [[Assignments]]

More space
diff --git a/sidebar.mdwn b/sidebar.mdwn
index fada5eb..0d95ddf 100644
--- a/sidebar.mdwn
+++ b/sidebar.mdwn
@@ -4,4 +4,4 @@
  - [[Lecture_Notes|notes]]
  - [[Assignments]]
 
-</TD><TD> </TD></TR></TABLE>
+</TD><TD>&nbsp;&nbsp;</TD></TR></TABLE>

Add more space on the right
diff --git a/sidebar.mdwn b/sidebar.mdwn
index ebbfe53..fada5eb 100644
--- a/sidebar.mdwn
+++ b/sidebar.mdwn
@@ -4,4 +4,4 @@
  - [[Lecture_Notes|notes]]
  - [[Assignments]]
 
-</TD></TR></TABLE>
+</TD><TD> </TD></TR></TABLE>

Add an outline to the sidebar
diff --git a/sidebar.mdwn b/sidebar.mdwn
index 8e9ef46..ebbfe53 100644
--- a/sidebar.mdwn
+++ b/sidebar.mdwn
@@ -1,4 +1,7 @@
+<TABLE BORDER=1 FRAME=BOX RULES=NONE><TR><TD>
 #### Quick Links ####
 
  - [[Lecture_Notes|notes]]
  - [[Assignments]]
+
+</TD></TR></TABLE>

Clean up a little
diff --git a/index.mdwn b/index.mdwn
index 77b9749..d934115 100644
--- a/index.mdwn
+++ b/index.mdwn
@@ -46,9 +46,9 @@ Lecturer-In-Charge: [Will Uther](http://www.cse.unsw.edu.au/~willu/).  Contact d
 Teaching style and other fuzzy stuff
 ------------------------------------
 
-I (Will) am a researcher at [NICTA](http://www.nicta.com.au/), who teaches at UNSW because I enjoy it (UNSW does not pay me).  My personal goal for this course is to teach top students how to build impressive intelligent systems, and possibly encourage some of them to go on to get PhDs (side note - I'm not suggesting that they all go into academia.  Australian industry needs more PhDs!).  For this reason, I teach to the top of the class - the motivated people who want to learn.
+I (Will) am a researcher at [NICTA](http://www.nicta.com.au/), who teaches at UNSW because I enjoy it (I hold a conjoint appointment at UNSW, and they do not pay me to teach).  My personal goal for this course is to teach top students how to build impressive intelligent systems, and possibly encourage some of them to go on to get PhDs (side note - I'm not suggesting that they all go into academia.  Australian industry needs more PhDs!).  For this reason, I teach to the top of the class - the motivated people who want to learn.
 
-The class has traditionally been fairly small (10-15 students).  I haven't found a textbook that covers the topics I cover in the right level of detail, so there is no set text.  I teach from my notes.  I do not use powerpoint.  I prefer to present a ideas on the board and then discuss them.  The course is all about getting an intuitive feel for what is going on - you need to understand the algorithms in detail to implement them, but I assume you can all read.  I'm interested in making sure you know enough to know what you need to look up.
+The class has traditionally been fairly small (10-15 students).  I haven't found a textbook that covers the topics I cover in the right level of detail, so there is no set text.  I teach from my notes.  I do not use powerpoint.  I prefer to present ideas on the board and then discuss them.  The course is all about getting an intuitive feel for what is going on - you need to understand the algorithms in detail to implement them, but I assume you can all read those in a book.  I'm interested in making sure you know enough to know what you need to look up.
 
 Assignments and labs are also run a little differently in my course to other Computer Science courses you may have encountered:
 

Add some quick links on the side.
diff --git a/sidebar.mdwn b/sidebar.mdwn
new file mode 100644
index 0000000..8e9ef46
--- /dev/null
+++ b/sidebar.mdwn
@@ -0,0 +1,4 @@
+#### Quick Links ####
+
+ - [[Lecture_Notes|notes]]
+ - [[Assignments]]

Notes on teaching style
diff --git a/index.mdwn b/index.mdwn
index b952fdd..77b9749 100644
--- a/index.mdwn
+++ b/index.mdwn
@@ -23,7 +23,7 @@ At the end of this course, students should have:
  - an understanding of the practicalities of programming physical robots as opposed to software systems,
  - an understanding of a robot as a complete system, as well as its component parts.
 
-This course is being taught in conjunction with <a href="http://www.nicta.com.au/">National ICT Australia</a>'s Symbolic Machine Learning and Knowledge Acquisition Program.
+This course is being taught in conjunction with [National ICT Australia](http://www.nicta.com.au/)'s Making Sense of Data group.
 
 Pre-requisites
 --------------
@@ -43,6 +43,19 @@ Staff
 
 Lecturer-In-Charge: [Will Uther](http://www.cse.unsw.edu.au/~willu/).  Contact details are on my web page.
 
+Teaching style and other fuzzy stuff
+------------------------------------
+
+I (Will) am a researcher at [NICTA](http://www.nicta.com.au/), who teaches at UNSW because I enjoy it (UNSW does not pay me).  My personal goal for this course is to teach top students how to build impressive intelligent systems, and possibly encourage some of them to go on to get PhDs (side note - I'm not suggesting that they all go into academia.  Australian industry needs more PhDs!).  For this reason, I teach to the top of the class - the motivated people who want to learn.
+
+The class has traditionally been fairly small (10-15 students).  I haven't found a textbook that covers the topics I cover in the right level of detail, so there is no set text.  I teach from my notes.  I do not use powerpoint.  I prefer to present a ideas on the board and then discuss them.  The course is all about getting an intuitive feel for what is going on - you need to understand the algorithms in detail to implement them, but I assume you can all read.  I'm interested in making sure you know enough to know what you need to look up.
+
+Assignments and labs are also run a little differently in my course to other Computer Science courses you may have encountered:
+
+The assignments are all group-work.  You're going to have to work in groups when you graduate so you may as well get used to it now.  Furthermore, the assignments are graded is a style more like a design class than a computer science class: you demonstrate your robot doing what it does, and then the class discusses why it behaved that way.
+
+The labs are also unusual.  I dislike busywork, so I have already implemented everything you need for the labs.  The goal of the labs is for you to play with the implementations to see for yourselves what happens when various parameters are changed.  Because there is not as much of a set script as I have seen in other labs, this style of lab requires the student to be inquisitive and adventurous.
+
 Syllabus
 --------
 

Note difference in assessment between comp3431 and comp9431.
diff --git a/index.mdwn b/index.mdwn
index bb92598..b952fdd 100644
--- a/index.mdwn
+++ b/index.mdwn
@@ -73,3 +73,5 @@ Assessment
  - Quiz about Week 9: 10%
  - Final exam: 45%
 
+Lectures and Assignments are similar between COMP3431 and COMP9431 students.  I am required to make the the COMP9431 course 'harder' than COMP3431, and hence the exam is more in-depth for COMP9431.  As I noted above, both courses are hard.
+

Update the main page and include links to last year's assignments.
diff --git a/assignments.mdwn b/assignments.mdwn
new file mode 100644
index 0000000..aeba7d4
--- /dev/null
+++ b/assignments.mdwn
@@ -0,0 +1,7 @@
+There are three assignments distributed throughout the semester.  All are team assignments to make the AIBO robots do something.
+
+The three 2007 assignments were:
+
+ * [[Assignment_1|assignments/2007/assign1-2007.pdf]]
+ * [[Assignment_2|assignments/2007/assign2-2007.pdf]]
+ * [[Assignment_3|assignments/2007/assign3-2007.pdf]]
diff --git a/index.mdwn b/index.mdwn
index 7342248..bb92598 100644
--- a/index.mdwn
+++ b/index.mdwn
@@ -1,6 +1,8 @@
 COMP3431/9431 Course Introduction
 =================================
 
+This page gives a broad overview to the COMP3431/9431 Robot Software Architectures course.  This web site is an [ikiwiki](http://ikiwiki.info) based [wiki](http://en.wikipedia.org/wiki/Wiki) and most pages are editable by anyone enrolled in the course.  Pages are all publicly readable.  You'll need to use your normal [CSE](http://www.cse.unsw.edu.au/) account name and password to log in to make changes.
+
 Aims
 ----
 
@@ -34,17 +36,17 @@ While not a formal pre-requisite or co-requisite, I highly recommend that studen
 
 Course Web Pages
 ----------------
-<http://www.cse.unsw.edu.au/~cs3431/>
+You're reading it :).  <http://www.cse.unsw.edu.au/~cs3431/>
 
 Staff
 -----
 
-Lecturer-In-Charge: [Will Uther](http://www.cse.unsw.edu.au/~willu/).  Contact details are on my we page.
+Lecturer-In-Charge: [Will Uther](http://www.cse.unsw.edu.au/~willu/).  Contact details are on my web page.
 
 Syllabus
 --------
 
-Course [[notes]] and [[rough_syllabus|lecture_plan]] are available on the class wiki.  Anyone can read the class wiki, but only class members can edit it.   A [[sample_exam|exams/3431-sample-exam-2006.pdf]] is available from previous years as well.</p>
+Course [[notes]] and [[rough_syllabus|lecture_plan]] are available on the class wiki.  A [[sample_exam|exams/3431-sample-exam-2006.pdf]] is available from previous years as well.
 
 Reading Materials
 -----------------
@@ -62,7 +64,7 @@ There is no set text for this course. However, the following books are recommend
 Assignments
 -----------
 
-There are three assignments in this course.  Details are in the assignment sheets.  All three assignments are on real robots.  Due dates are on the calendar section of the web page.  Each assignment is worth equal marks.  As the second semester of 2008 will be the first time this course has run with a 12 week semester, I'll be carefully monitoring the course to see how the new workload fits.  This means things might be somewhat more fluid this semester.
+There are three assignments in this course.  Details are in the [[assignment|assignments]] sheets.  All three assignments are on real robots.  Due dates are on the calendar section of the web page.  Each assignment is worth equal marks.  As the second semester of 2008 will be the first time this course has run with a 12 week semester, I'll be carefully monitoring the course to see how the new workload fits.  This means things might be somewhat more fluid this semester.
 
 Assessment
 ----------

Move lecture notes around a little.
diff --git a/notes/Lecture10A b/notes/Lecture10A
deleted file mode 100644
index fbc121a..0000000
--- a/notes/Lecture10A
+++ /dev/null
@@ -1,36 +0,0 @@
-Review
- * Building Models
-Today
- * Building Heuristics (deterministic, goal state(s))
-   * Backward search / Dynamic programming
-     * Both cost and search heuristics
-   * Relaxing problem to find admissible (optimistic) heuristic
- * Dynamic Programming for Markov Decision Processes
-   * Stochasticity
-   * Random order of update
-     * Value iteration
-     * Policy iteration
-     * Modified Policy iteration
-   * State and state/action value functions
-     * Q(s,a) = E(r + V(s')) = Sum_s' P(s,a,s') ( r + V(s') )
-       * "Expected reward for taking action a in state s and then following policy pi"
-       * Note: P(s,a,s') is the model of the world
-     * V(s) = max_a Q(s, a)
-       * "Expected reward for following policy pi from state s"
-     * pi*(s) = argmax_a Q(s, a)
-       * pi* is the optimal policy (assuming everything has converged)
-   * Other optimality criterion
-     * One way to view what we were doing is to find a policy that maximises the long term sum of reward
-       * sum_{0 < t < infinity} r_t
-       * Maximise "sum of reward" is tricky if sums can be infinite (loops)
-     * infinite horizon, discounted
-       * Find policy to maximise sum_{0 < t < infinity} gamma^t r_t
-       * gamma is:
-         * trick to keep things bounded
-         * Interest rate
-         * (1-gamma) = probability of transitioning to 0-value terminal state each step
-       * Q(s,a) = E(r + gamma V(s'))
-     * average reward
-       * Maximise lim t_max -> infinity 1/t_max sum_{0 < t < t_max} r_t
-  * Discussion
-    * MDP solving finds a complete policy -> looks at entire state space
diff --git a/notes/Lecture10A.mdwn b/notes/Lecture10A.mdwn
new file mode 100644
index 0000000..fbc121a
--- /dev/null
+++ b/notes/Lecture10A.mdwn
@@ -0,0 +1,36 @@
+Review
+ * Building Models
+Today
+ * Building Heuristics (deterministic, goal state(s))
+   * Backward search / Dynamic programming
+     * Both cost and search heuristics
+   * Relaxing problem to find admissible (optimistic) heuristic
+ * Dynamic Programming for Markov Decision Processes
+   * Stochasticity
+   * Random order of update
+     * Value iteration
+     * Policy iteration
+     * Modified Policy iteration
+   * State and state/action value functions
+     * Q(s,a) = E(r + V(s')) = Sum_s' P(s,a,s') ( r + V(s') )
+       * "Expected reward for taking action a in state s and then following policy pi"
+       * Note: P(s,a,s') is the model of the world
+     * V(s) = max_a Q(s, a)
+       * "Expected reward for following policy pi from state s"
+     * pi*(s) = argmax_a Q(s, a)
+       * pi* is the optimal policy (assuming everything has converged)
+   * Other optimality criterion
+     * One way to view what we were doing is to find a policy that maximises the long term sum of reward
+       * sum_{0 < t < infinity} r_t
+       * Maximise "sum of reward" is tricky if sums can be infinite (loops)
+     * infinite horizon, discounted
+       * Find policy to maximise sum_{0 < t < infinity} gamma^t r_t
+       * gamma is:
+         * trick to keep things bounded
+         * Interest rate
+         * (1-gamma) = probability of transitioning to 0-value terminal state each step
+       * Q(s,a) = E(r + gamma V(s'))
+     * average reward
+       * Maximise lim t_max -> infinity 1/t_max sum_{0 < t < t_max} r_t
+  * Discussion
+    * MDP solving finds a complete policy -> looks at entire state space
diff --git a/notes/Lecture10B b/notes/Lecture10B
deleted file mode 100644
index a026525..0000000
--- a/notes/Lecture10B
+++ /dev/null
@@ -1,67 +0,0 @@
-Linkage
- * Continuous search
-   * plan space - looking for a good point in space, not a good path
- * Relate this to what we saw in Lecture7A on Genetic Algorithms
- * Relate to reinforcement learning
-   * Search over the space of policies for one that optimises sum of reward
-
-Function minimization/maximization/optimization
- * [http://www.library.cornell.edu/nr/bookcpdf.html Numerical Recipies in C] - chapter 10
- * [http://www.ece.northwestern.edu/~nocedal/book/num-opt.html Wright and Nocedal - Numerical Optimization]
-
-Optimization without gradients
- * evaluate a function at a given point
-   * minimize (or maximise) function
-   * avoid estimating derivative for this lecture
- * Simulated Annealing
-   * Bounce around (usually using using Boltzmann exploration)
-   * proof of convergence given infinite time
- * Downhill Simplex Method in Multi-dimensions
-   * How do you bracket a minimum in multiple dimensions?
-   * Triangulation - simplex
-   * Very robust algorithm - often not fast, but generally does surprisingly well
-   * Simplex 'rolls' down hill
-     * Options
-       * Reflection - highest point is refected through opposite plane
-       * Reflection and expansion - like reflection, but dist through opposing plane is doubled
-       * Contraction - half dist from highest point to opposing plane
-       * Multiple contraction - move all points in plane opposing min point half dist to min point
-     * Routine
-       * First try to lower highest point
-         * Reflect it
-         * If the reflection is better than min point then
-           * try expanding in that dir
-         * If the reflection is still the worst point then
-           * try a simple contraction
-           * If the simple contraction is STILL the worst point then
-             * try a multiple contraction
- * Line minimization (1D)
-   * 1D search for roots - binary search
-     * Bracket min with 2 pts
-   * 1D search for a minimum - Golden ratio search
-     * Bracket min with 3 pts
-       * Choosing new point given (a, b, c)
-         * let b be a fraction w between a and c  (p 399)
-           * (normalise dists so (c-a) is unit length
-         * our next point, x, will be an additional fraction z beyond b
-           * similar formula
-           * again, (c-a) is the normalisation factor
-         * length of next segment is either
-           * (w + z), or (1 - w)
-         * make these equal - binary search
-           * w + z = 1 - w => z = 1 - 2w => z > 0 iff w > 0.5 => x falls in larger of gap
-         * Now use recursive similarity argument
-           * z/(1-w) = w
-         * w solves to be (3 - sqrt(5)) / 2 - related to the golden ratio
-     * Parabolic search (p402)
-       * A parabola could have a min or max...
-       * Need to mix parabolic fit with Golden ratio search
-       * Brent's method
-         * Parabolic fit must fall within current range
-         * Movement from the current best value must be less than half the step before last
-           * One bad step allowed, not two
- * Multidimensional line minimisation methods
-   * Do line minimisation in one direction (1D minimization)
-   * Pick a new direction and do another minimization
-   * Talk about how to "pick a direction" next lecture
-     * generally NOT able to pick the direction to the minimum - have to do repeated line minimizations.
diff --git a/notes/Lecture10B.mdwn b/notes/Lecture10B.mdwn
new file mode 100644
index 0000000..7e58532
--- /dev/null
+++ b/notes/Lecture10B.mdwn
@@ -0,0 +1,70 @@
+Linkage
+
+ * Continuous search
+   * plan space - looking for a good point in space, not a good path
+ * Relate this to what we saw in Lecture7A on Genetic Algorithms
+ * Relate to reinforcement learning
+   * Search over the space of policies for one that optimises sum of reward
+
+Function minimization/maximization/optimization
+
+ * [http://www.library.cornell.edu/nr/bookcpdf.html Numerical Recipies in C] - chapter 10
+ * [http://www.ece.northwestern.edu/~nocedal/book/num-opt.html Wright and Nocedal - Numerical Optimization]
+
+Optimization without gradients
+
+ * evaluate a function at a given point
+   * minimize (or maximise) function
+   * avoid estimating derivative for this lecture
+ * Simulated Annealing
+   * Bounce around (usually using using Boltzmann exploration)
+   * proof of convergence given infinite time
+ * Downhill Simplex Method in Multi-dimensions
+   * How do you bracket a minimum in multiple dimensions?
+   * Triangulation - simplex
+   * Very robust algorithm - often not fast, but generally does surprisingly well
+   * Simplex 'rolls' down hill
+     * Options
+       * Reflection - highest point is refected through opposite plane
+       * Reflection and expansion - like reflection, but dist through opposing plane is doubled
+       * Contraction - half dist from highest point to opposing plane
+       * Multiple contraction - move all points in plane opposing min point half dist to min point
+     * Routine
+       * First try to lower highest point
+         * Reflect it
+         * If the reflection is better than min point then
+           * try expanding in that dir
+         * If the reflection is still the worst point then

(Diff truncated)
Move from older wiki format to Ikiwiki format
diff --git a/index.mdwn b/index.mdwn
index d9aab66..7342248 100644
--- a/index.mdwn
+++ b/index.mdwn
@@ -44,7 +44,7 @@ Lecturer-In-Charge: [Will Uther](http://www.cse.unsw.edu.au/~willu/).  Contact d
 Syllabus
 --------
 
-Course [[notes]] and [[syllabus|lecture_plan]] are available on the class wiki.  Anyone can read the class wiki, but only class members can edit it.   A [[sample_exam|exams]] is available from previous years as well.</p>
+Course [[notes]] and [[rough_syllabus|lecture_plan]] are available on the class wiki.  Anyone can read the class wiki, but only class members can edit it.   A [[sample_exam|exams/3431-sample-exam-2006.pdf]] is available from previous years as well.</p>
 
 Reading Materials
 -----------------
diff --git a/notes.mdwn b/notes.mdwn
index 626b7fb..f6e4165 100644
--- a/notes.mdwn
+++ b/notes.mdwn
@@ -1,32 +1,30 @@
 This page includes links to the notes I use when teaching:
 
- * wiki:Lecture1A -- Course Overview, What is an Agent?
- * wiki:Lecture1B -- rUNSWift Overview
- * wiki:Lecture2A -- Vision
- * wiki:Lecture2B -- Head Motion and Kinematics
- * wiki:Lecture3A -- Tracking - Bayes' Filters
- * wiki:Lecture3B -- Tracking - Tables, particles and gaussians
- * wiki:Lecture4A -- Tracking - SLAM
- * wiki:Lecture4B -- Walking
- * wiki:Lecture5A -- Wireless and Behaviours
- * wiki:Lecture5B -- Overview of architectures
- * wiki:Lecture6A -- Intoduction to search
- * wiki:Lecture6B -- Heuristic search
- * wiki:Lecture7A -- Genetic Algorithms
- * wiki:Lecture7B -- State Space Planning
- * wiki:Lecture8A -- Plan Space Planning
- * wiki:Lecture8B -- Cognitive Architectures (ACT-R and SOAR)
- * wiki:Lecture9A -- Logic Based Planning
- * wiki:Lecture9B -- Representation in search
- * wiki:Lecture10A -- Learning Heuristics and solving Markov Decision Processes
- * wiki:Lecture10B -- Non-Gradient Optimization
- * wiki:Lecture11A -- Gradient Optimization
- * wiki:Lecture11B -- Model Based, Model Free and Policy Gradient RL
- * wiki:Lecture12A -- Hierarchy in MDPs
- * wiki:Lecture12B -- Partially Observable Markov Decision Processes
- * wiki:Lecture13A -- Function approximation in MDPs
- * wiki:Lecture13B -- Adversarial Agents
- * wiki:Lecture14A -- Review - Sample Exam
- * wiki:Lecture14B -- Review
-
-[[inline pages="notes/*" sort="title" archive="yes"]]
+ * [[notes/Lecture1A]] -- Course Overview, What is an Agent?
+ * [[notes/Lecture1B]] -- rUNSWift Overview
+ * [[notes/Lecture2A]] -- Vision
+ * [[notes/Lecture2B]] -- Head Motion and Kinematics
+ * [[notes/Lecture3A]] -- Tracking - Bayes' Filters
+ * [[notes/Lecture3B]] -- Tracking - Tables, particles and gaussians
+ * [[notes/Lecture4A]] -- Tracking - SLAM
+ * [[notes/Lecture4B]] -- Walking
+ * [[notes/Lecture5A]] -- Wireless and Behaviours
+ * [[notes/Lecture5B]] -- Overview of architectures
+ * [[notes/Lecture6A]] -- Intoduction to search
+ * [[notes/Lecture6B]] -- Heuristic search
+ * [[notes/Lecture7A]] -- Genetic Algorithms
+ * [[notes/Lecture7B]] -- State Space Planning
+ * [[notes/Lecture8A]] -- Plan Space Planning
+ * [[notes/Lecture8B]] -- Cognitive Architectures (ACT-R and SOAR)
+ * [[notes/Lecture9A]] -- Logic Based Planning
+ * [[notes/Lecture9B]] -- Representation in search
+ * [[notes/Lecture10A]] -- Learning Heuristics and solving Markov Decision Processes
+ * [[notes/Lecture10B]] -- Non-Gradient Optimization
+ * [[notes/Lecture11A]] -- Gradient Optimization
+ * [[notes/Lecture11B]] -- Model Based, Model Free and Policy Gradient RL
+ * [[notes/Lecture12A]] -- Hierarchy in MDPs
+ * [[notes/Lecture12B]] -- Partially Observable Markov Decision Processes
+ * [[notes/Lecture13A]] -- Function approximation in MDPs
+ * [[notes/Lecture13B]] -- Adversarial Agents
+ * [[notes/Lecture14A]] -- Review - Sample Exam
+ * [[notes/Lecture14B]] -- Review

Try to inline class notes
diff --git a/notes.mdwn b/notes.mdwn
index 3b57e30..626b7fb 100644
--- a/notes.mdwn
+++ b/notes.mdwn
@@ -1,4 +1,4 @@
-The [http://www.cse.unsw.edu.au/~cs3431/ main class web page] will remain where it was.  This page includes links to Will's notes.  These notes are there to be edited and expanded by you!
+This page includes links to the notes I use when teaching:
 
  * wiki:Lecture1A -- Course Overview, What is an Agent?
  * wiki:Lecture1B -- rUNSWift Overview
@@ -28,3 +28,5 @@ The [http://www.cse.unsw.edu.au/~cs3431/ main class web page] will remain where
  * wiki:Lecture13B -- Adversarial Agents
  * wiki:Lecture14A -- Review - Sample Exam
  * wiki:Lecture14B -- Review
+
+[[inline pages="notes/*" sort="title" archive="yes"]]

Move some things about
diff --git a/notes.mdwn b/notes.mdwn
new file mode 100644
index 0000000..3b57e30
--- /dev/null
+++ b/notes.mdwn
@@ -0,0 +1,30 @@
+The [http://www.cse.unsw.edu.au/~cs3431/ main class web page] will remain where it was.  This page includes links to Will's notes.  These notes are there to be edited and expanded by you!
+
+ * wiki:Lecture1A -- Course Overview, What is an Agent?
+ * wiki:Lecture1B -- rUNSWift Overview
+ * wiki:Lecture2A -- Vision
+ * wiki:Lecture2B -- Head Motion and Kinematics
+ * wiki:Lecture3A -- Tracking - Bayes' Filters
+ * wiki:Lecture3B -- Tracking - Tables, particles and gaussians
+ * wiki:Lecture4A -- Tracking - SLAM
+ * wiki:Lecture4B -- Walking
+ * wiki:Lecture5A -- Wireless and Behaviours
+ * wiki:Lecture5B -- Overview of architectures
+ * wiki:Lecture6A -- Intoduction to search
+ * wiki:Lecture6B -- Heuristic search
+ * wiki:Lecture7A -- Genetic Algorithms
+ * wiki:Lecture7B -- State Space Planning
+ * wiki:Lecture8A -- Plan Space Planning
+ * wiki:Lecture8B -- Cognitive Architectures (ACT-R and SOAR)
+ * wiki:Lecture9A -- Logic Based Planning
+ * wiki:Lecture9B -- Representation in search
+ * wiki:Lecture10A -- Learning Heuristics and solving Markov Decision Processes
+ * wiki:Lecture10B -- Non-Gradient Optimization
+ * wiki:Lecture11A -- Gradient Optimization
+ * wiki:Lecture11B -- Model Based, Model Free and Policy Gradient RL
+ * wiki:Lecture12A -- Hierarchy in MDPs
+ * wiki:Lecture12B -- Partially Observable Markov Decision Processes
+ * wiki:Lecture13A -- Function approximation in MDPs
+ * wiki:Lecture13B -- Adversarial Agents
+ * wiki:Lecture14A -- Review - Sample Exam
+ * wiki:Lecture14B -- Review
diff --git a/notes/ClassNotes b/notes/ClassNotes
deleted file mode 100644
index 3b57e30..0000000
--- a/notes/ClassNotes
+++ /dev/null
@@ -1,30 +0,0 @@
-The [http://www.cse.unsw.edu.au/~cs3431/ main class web page] will remain where it was.  This page includes links to Will's notes.  These notes are there to be edited and expanded by you!
-
- * wiki:Lecture1A -- Course Overview, What is an Agent?
- * wiki:Lecture1B -- rUNSWift Overview
- * wiki:Lecture2A -- Vision
- * wiki:Lecture2B -- Head Motion and Kinematics
- * wiki:Lecture3A -- Tracking - Bayes' Filters
- * wiki:Lecture3B -- Tracking - Tables, particles and gaussians
- * wiki:Lecture4A -- Tracking - SLAM
- * wiki:Lecture4B -- Walking
- * wiki:Lecture5A -- Wireless and Behaviours
- * wiki:Lecture5B -- Overview of architectures
- * wiki:Lecture6A -- Intoduction to search
- * wiki:Lecture6B -- Heuristic search
- * wiki:Lecture7A -- Genetic Algorithms
- * wiki:Lecture7B -- State Space Planning
- * wiki:Lecture8A -- Plan Space Planning
- * wiki:Lecture8B -- Cognitive Architectures (ACT-R and SOAR)
- * wiki:Lecture9A -- Logic Based Planning
- * wiki:Lecture9B -- Representation in search
- * wiki:Lecture10A -- Learning Heuristics and solving Markov Decision Processes
- * wiki:Lecture10B -- Non-Gradient Optimization
- * wiki:Lecture11A -- Gradient Optimization
- * wiki:Lecture11B -- Model Based, Model Free and Policy Gradient RL
- * wiki:Lecture12A -- Hierarchy in MDPs
- * wiki:Lecture12B -- Partially Observable Markov Decision Processes
- * wiki:Lecture13A -- Function approximation in MDPs
- * wiki:Lecture13B -- Adversarial Agents
- * wiki:Lecture14A -- Review - Sample Exam
- * wiki:Lecture14B -- Review

try again
diff --git a/index.mdwn b/index.mdwn
index c660909..d9aab66 100644
--- a/index.mdwn
+++ b/index.mdwn
@@ -44,7 +44,7 @@ Lecturer-In-Charge: [Will Uther](http://www.cse.unsw.edu.au/~willu/).  Contact d
 Syllabus
 --------
 
-Course [[notes]] and [[syllabus|lecture_plan]] are available on the class wiki.  Anyone can read the class wiki, but only class members can edit it.   A [[sample exam|exams]] is available from previous years as well.</p>
+Course [[notes]] and [[syllabus|lecture_plan]] are available on the class wiki.  Anyone can read the class wiki, but only class members can edit it.   A [[sample_exam|exams]] is available from previous years as well.</p>
 
 Reading Materials
 -----------------

Fix up some markdown
diff --git a/index.mdwn b/index.mdwn
index a4028a3..c660909 100644
--- a/index.mdwn
+++ b/index.mdwn
@@ -44,7 +44,7 @@ Lecturer-In-Charge: [Will Uther](http://www.cse.unsw.edu.au/~willu/).  Contact d
 Syllabus
 --------
 
-Course [[notes]] and [[syllabus|lecture_plan]] are available on the class wiki.  Anyone can read the class wiki, but only class members can edit it.   A [[sample exam|exams/3431-sample-exam-2006.pdf]] is available from previous years as well.</p>
+Course [[notes]] and [[syllabus|lecture_plan]] are available on the class wiki.  Anyone can read the class wiki, but only class members can edit it.   A [[sample exam|exams]] is available from previous years as well.</p>
 
 Reading Materials
 -----------------

Turn more HTML into markdown.
diff --git a/index.mdwn b/index.mdwn
index d38253c..a4028a3 100644
--- a/index.mdwn
+++ b/index.mdwn
@@ -5,36 +5,52 @@ Aims
 ----
 
 This course gives both a theoretical and a practical introduction to the control of robotic systems. The course is in two parts:
+
 <dl>
-<dt>The <a href="http://www.cse.unsw.edu.au/~robocup/">rUNSWift</a> and <A HREF="http://dgc3.eecs.berkeley.edu/">Sydney-Berkeley Driving Team</A> architectures</dt>
-<dd>This part of the course gives students a practical introduction to some specific robot architectures; the rUNSWift architecture used by the UNSW/NICTA robot soccer team and the <A HREF="http://orca-robotics.sourceforge.net/">Orca</A> architecture used by the Sydney-Berkeley Driving team. All the elements of the robot's software are described. Assignments consist of re-implementing some simple soccer behaviours on the Sony AIBO robot hardware.</dd>
+<dt>The <a href="http://www.cse.unsw.edu.au/~robocup/">rUNSWift</a> architecture</dt>
+<dd>This part of the course gives students a practical introduction to some specific robot architectures; the rUNSWift architecture used by the UNSW/NICTA robot soccer team and the <A HREF="http://orca-robotics.sourceforge.net/">Orca</A> architecture used by the Sydney-Berkeley Driving team. The elements of the robot's software are described. Assignments consist of re-implementing some simple soccer behaviours on the Sony AIBO robot hardware.</dd>
 <dt>An overview of planning systems</dt>
 <dd>This part of the course gives students an introduction to the theory of decision making: How can an agent build up knowledge of its world?  Having done that, how can an agent choose its actions? A variety of different decision making and planning architectures are covered; including classical planning, reinforcement learning and cognitive architectures. In labs, students will get hands on experience with some of these planning systems. Assessment of this part will be by quiz and final exam.</dd>
 </dl>
-</p>
-<p>At the end of this course, students should have:
-<ul>
-<li>experience with the details of one robot architecture,</li>
-<li>an overview of a range of other architectures and decision making systems,</li>
-<li>an understanding of the practicalities of programming physical robots as opposed to software systems,</li>
-<li>an understanding of a robot as a complete system, as well as its component parts.</li>
-</ul></p>
-<p>This course is being taught in conjunction with <a href="http://www.nicta.com.au/">National ICT Australia</a>'s Symbolic Machine Learning and Knowledge Acquisition Program.</p>
-<br><h3>Pre-requisites</h3><p>This course is for postgraduate students (COMP9431) and advanced undergraduates (COMP3431).  It is a 3rd year course because it has few pre-requisites.  It is not an easy course.</p>
-<p>I expect students in this course to be able to program in C++ and java, and to be prepared to learn Python.</p>
-<p>While not a formal pre-requisite or co-requisite, I highly recommend that students take a machine learning course if they are interested in artificial intelligence, eg COMP9417.  That course does not need to be taken before this one. The artificial intelligence course, COMP3411, is not a bad choice either (although it isn't going to give you the depth of Machine Learning knowledge I'd recommend).</p>
-
-<h3>Course Web Pages</h3>
-<p>http://www.cse.unsw.edu.au/~cs3431/</p>
-
-<h3>Staff</h3>
-<p>Lecturer-In-Charge: <A HREF="http://www.cse.unsw.edu.au/~willu/">Will Uther</A>.  Contact details are on my we page.</p>
-
-<h3>Syllabus</h3>
-<p>Course notes and syllabus are available on the <a href="https://roborouter.cse.unsw.edu.au/projects/comp3431">class wiki</a>.  This wiki is password protected.  Contact the lecturer in charge for access.  Notes from <A HREF="notes">previous years</a> are online in wiki text form.  A <A HREF="3431-sample-exam.pdf">sample exam</A> is available from previous years as well.</p>
-
-<h3>Reading Materials</h3>
-<p>There is no set text for this course. However, the following books are recommended:</p>
+
+
+At the end of this course, students should have:
+
+ - experience with the details of one robot architecture,
+ - an overview of a range of other architectures and decision making systems,
+ - an understanding of the practicalities of programming physical robots as opposed to software systems,
+ - an understanding of a robot as a complete system, as well as its component parts.
+
+This course is being taught in conjunction with <a href="http://www.nicta.com.au/">National ICT Australia</a>'s Symbolic Machine Learning and Knowledge Acquisition Program.
+
+Pre-requisites
+--------------
+
+This course is for postgraduate students (COMP9431) and advanced undergraduates (COMP3431).  It is a 3rd year course because it has few pre-requisites.  It is not an easy course.
+
+I expect students in this course to be able to program in C++ and java, and to be prepared to learn Python.
+
+While not a formal pre-requisite or co-requisite, I highly recommend that students take a machine learning course if they are interested in artificial intelligence, eg COMP9417.  That course does not need to be taken before this one. The artificial intelligence course, COMP3411, is not a bad choice either (although it isn't going to give you the depth of Machine Learning knowledge I'd recommend).
+
+Course Web Pages
+----------------
+<http://www.cse.unsw.edu.au/~cs3431/>
+
+Staff
+-----
+
+Lecturer-In-Charge: [Will Uther](http://www.cse.unsw.edu.au/~willu/).  Contact details are on my we page.
+
+Syllabus
+--------
+
+Course [[notes]] and [[syllabus|lecture_plan]] are available on the class wiki.  Anyone can read the class wiki, but only class members can edit it.   A [[sample exam|exams/3431-sample-exam-2006.pdf]] is available from previous years as well.</p>
+
+Reading Materials
+-----------------
+
+There is no set text for this course. However, the following books are recommended:
+
 <dl>
 <dt><a href="http://aima.cs.berkeley.edu/">Artificial Intelligence: A Modern Approach</a>; S. Russell and P. Norvig</dt><dd>This is a good overview textbook for artificial intelligence in general. If you were going to get one book on AI, this would be the one I'd choose.</dd>
 <dt><a href="http://www.laas.fr/planning/">Automated Planning: Theory and Practice</a>; M. Ghallab, D. Nau and P. Traverso</dt><dd>This book focusses on the planning and decision making areas of artificial intelligence. It goes goes into more detail in that one area. It provides a readable introduction to this area of artificial intelligence.</dd>
@@ -42,15 +58,16 @@ This course gives both a theoretical and a practical introduction to the control
 <dt><a href="http://www.cs.cmu.edu/afs/cs.cmu.edu/user/mitchell/ftp/mlbook.html">Machine Learning</a>; T. Mitchell</dt><dd>While machine learning is only touched on in this course, I consider it a very important part of AI and robotics, so I'm putting this book here anyway.</dd>
 <dt><a href="http://www.wiley.com/WileyCDA/WileyTitle/productCd-0471619779.html">Markov Decision Processes: Discrete Stochastic Dynamic Programming</a>; M. Puterman</dt><dd>This book focuses in great detail on the theory of Markov Decision Processes. It is almost 10 years old now, and so lacks some of the newer contributions to the field, but it is an excellent reference on the mathematical theory of stochastic decision making.</dd>
 </dl>
-<br>
 
-<h3>Assignments</h3>
-<p>There are three assignments in this course.  Details are in the assignment sheets.  All three assignments are on real robots.  Due dates are on the calendar section of the web page.  Each assignment is worth equal marks.</p>
+Assignments
+-----------
+
+There are three assignments in this course.  Details are in the assignment sheets.  All three assignments are on real robots.  Due dates are on the calendar section of the web page.  Each assignment is worth equal marks.  As the second semester of 2008 will be the first time this course has run with a 12 week semester, I'll be carefully monitoring the course to see how the new workload fits.  This means things might be somewhat more fluid this semester.
+
+Assessment
+----------
 
-<h3>Assessment</h3>
-<ul>
-<li>Assignments: 45%</li>
-<li>Quiz about Week 9: 10%</li>
-<li>Final exam: 45%</li>
-</ul>
+ - Assignments: 45%
+ - Quiz about Week 9: 10%
+ - Final exam: 45%
 

initial commit
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..b84c806
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+/.ikiwiki
+/recentchanges
diff --git a/assignments/2004/assign1.pdf b/assignments/2004/assign1.pdf
new file mode 100644
index 0000000..ca04b23
Binary files /dev/null and b/assignments/2004/assign1.pdf differ
diff --git a/assignments/2004/assign2.pdf b/assignments/2004/assign2.pdf
new file mode 100644
index 0000000..a830cfc
Binary files /dev/null and b/assignments/2004/assign2.pdf differ
diff --git a/assignments/2004/assign3.pdf b/assignments/2004/assign3.pdf
new file mode 100644
index 0000000..b7124c2
Binary files /dev/null and b/assignments/2004/assign3.pdf differ
diff --git a/assignments/2005/assign1.pdf b/assignments/2005/assign1.pdf
new file mode 100644
index 0000000..ddca303
Binary files /dev/null and b/assignments/2005/assign1.pdf differ
diff --git a/assignments/2005/assign2.pdf b/assignments/2005/assign2.pdf
new file mode 100644
index 0000000..03ffdcf
Binary files /dev/null and b/assignments/2005/assign2.pdf differ
diff --git a/assignments/2005/assign3.pdf b/assignments/2005/assign3.pdf
new file mode 100644
index 0000000..3458f1b
Binary files /dev/null and b/assignments/2005/assign3.pdf differ
diff --git a/assignments/2006/assign1-2006-answers.pdf b/assignments/2006/assign1-2006-answers.pdf
new file mode 100644
index 0000000..a0031c2
Binary files /dev/null and b/assignments/2006/assign1-2006-answers.pdf differ
diff --git a/assignments/2006/assign1-2006.pdf b/assignments/2006/assign1-2006.pdf
new file mode 100644
index 0000000..6556322
Binary files /dev/null and b/assignments/2006/assign1-2006.pdf differ
diff --git a/assignments/2006/assign2-2006.pdf b/assignments/2006/assign2-2006.pdf
new file mode 100644
index 0000000..1b7b81c
Binary files /dev/null and b/assignments/2006/assign2-2006.pdf differ
diff --git a/assignments/2006/assign3-2006.pdf b/assignments/2006/assign3-2006.pdf
new file mode 100644
index 0000000..94ea0b4
Binary files /dev/null and b/assignments/2006/assign3-2006.pdf differ
diff --git a/assignments/2007/assign1-2007.pdf b/assignments/2007/assign1-2007.pdf
new file mode 100644
index 0000000..7774fd8
Binary files /dev/null and b/assignments/2007/assign1-2007.pdf differ
diff --git a/assignments/2007/assign2-2007.pdf b/assignments/2007/assign2-2007.pdf
new file mode 100644
index 0000000..79afea4
Binary files /dev/null and b/assignments/2007/assign2-2007.pdf differ
diff --git a/assignments/2007/assign3-2007.pdf b/assignments/2007/assign3-2007.pdf
new file mode 100644
index 0000000..01ceb60
Binary files /dev/null and b/assignments/2007/assign3-2007.pdf differ
diff --git a/exams/3431-sample-exam-2004.pdf b/exams/3431-sample-exam-2004.pdf
new file mode 100644
index 0000000..6ab55d9
Binary files /dev/null and b/exams/3431-sample-exam-2004.pdf differ
diff --git a/exams/3431-sample-exam-2006.pdf b/exams/3431-sample-exam-2006.pdf
new file mode 100644
index 0000000..8cc5f0b
Binary files /dev/null and b/exams/3431-sample-exam-2006.pdf differ
diff --git a/index.mdwn b/index.mdwn
new file mode 100644
index 0000000..d38253c
--- /dev/null
+++ b/index.mdwn
@@ -0,0 +1,56 @@
+COMP3431/9431 Course Introduction
+=================================
+
+Aims
+----
+
+This course gives both a theoretical and a practical introduction to the control of robotic systems. The course is in two parts:
+<dl>
+<dt>The <a href="http://www.cse.unsw.edu.au/~robocup/">rUNSWift</a> and <A HREF="http://dgc3.eecs.berkeley.edu/">Sydney-Berkeley Driving Team</A> architectures</dt>
+<dd>This part of the course gives students a practical introduction to some specific robot architectures; the rUNSWift architecture used by the UNSW/NICTA robot soccer team and the <A HREF="http://orca-robotics.sourceforge.net/">Orca</A> architecture used by the Sydney-Berkeley Driving team. All the elements of the robot's software are described. Assignments consist of re-implementing some simple soccer behaviours on the Sony AIBO robot hardware.</dd>
+<dt>An overview of planning systems</dt>
+<dd>This part of the course gives students an introduction to the theory of decision making: How can an agent build up knowledge of its world?  Having done that, how can an agent choose its actions? A variety of different decision making and planning architectures are covered; including classical planning, reinforcement learning and cognitive architectures. In labs, students will get hands on experience with some of these planning systems. Assessment of this part will be by quiz and final exam.</dd>
+</dl>
+</p>
+<p>At the end of this course, students should have:
+<ul>
+<li>experience with the details of one robot architecture,</li>
+<li>an overview of a range of other architectures and decision making systems,</li>
+<li>an understanding of the practicalities of programming physical robots as opposed to software systems,</li>
+<li>an understanding of a robot as a complete system, as well as its component parts.</li>
+</ul></p>
+<p>This course is being taught in conjunction with <a href="http://www.nicta.com.au/">National ICT Australia</a>'s Symbolic Machine Learning and Knowledge Acquisition Program.</p>
+<br><h3>Pre-requisites</h3><p>This course is for postgraduate students (COMP9431) and advanced undergraduates (COMP3431).  It is a 3rd year course because it has few pre-requisites.  It is not an easy course.</p>
+<p>I expect students in this course to be able to program in C++ and java, and to be prepared to learn Python.</p>
+<p>While not a formal pre-requisite or co-requisite, I highly recommend that students take a machine learning course if they are interested in artificial intelligence, eg COMP9417.  That course does not need to be taken before this one. The artificial intelligence course, COMP3411, is not a bad choice either (although it isn't going to give you the depth of Machine Learning knowledge I'd recommend).</p>
+
+<h3>Course Web Pages</h3>
+<p>http://www.cse.unsw.edu.au/~cs3431/</p>
+
+<h3>Staff</h3>
+<p>Lecturer-In-Charge: <A HREF="http://www.cse.unsw.edu.au/~willu/">Will Uther</A>.  Contact details are on my we page.</p>
+
+<h3>Syllabus</h3>
+<p>Course notes and syllabus are available on the <a href="https://roborouter.cse.unsw.edu.au/projects/comp3431">class wiki</a>.  This wiki is password protected.  Contact the lecturer in charge for access.  Notes from <A HREF="notes">previous years</a> are online in wiki text form.  A <A HREF="3431-sample-exam.pdf">sample exam</A> is available from previous years as well.</p>
+
+<h3>Reading Materials</h3>
+<p>There is no set text for this course. However, the following books are recommended:</p>
+<dl>
+<dt><a href="http://aima.cs.berkeley.edu/">Artificial Intelligence: A Modern Approach</a>; S. Russell and P. Norvig</dt><dd>This is a good overview textbook for artificial intelligence in general. If you were going to get one book on AI, this would be the one I'd choose.</dd>
+<dt><a href="http://www.laas.fr/planning/">Automated Planning: Theory and Practice</a>; M. Ghallab, D. Nau and P. Traverso</dt><dd>This book focusses on the planning and decision making areas of artificial intelligence. It goes goes into more detail in that one area. It provides a readable introduction to this area of artificial intelligence.</dd>
+<dt><a href="http://www-anw.cs.umass.edu/~rich/book/the-book.html">Reinforcement Learning: An Introduction</a>; R. Sutton and A. Barto</dt><dd>This is a good book on reinforcement learning and Markov Decision Processes, in the same way that "Automated Planning" is a good book on planning systems: it covers its section of AI well.</dd>
+<dt><a href="http://www.cs.cmu.edu/afs/cs.cmu.edu/user/mitchell/ftp/mlbook.html">Machine Learning</a>; T. Mitchell</dt><dd>While machine learning is only touched on in this course, I consider it a very important part of AI and robotics, so I'm putting this book here anyway.</dd>
+<dt><a href="http://www.wiley.com/WileyCDA/WileyTitle/productCd-0471619779.html">Markov Decision Processes: Discrete Stochastic Dynamic Programming</a>; M. Puterman</dt><dd>This book focuses in great detail on the theory of Markov Decision Processes. It is almost 10 years old now, and so lacks some of the newer contributions to the field, but it is an excellent reference on the mathematical theory of stochastic decision making.</dd>
+</dl>
+<br>
+
+<h3>Assignments</h3>
+<p>There are three assignments in this course.  Details are in the assignment sheets.  All three assignments are on real robots.  Due dates are on the calendar section of the web page.  Each assignment is worth equal marks.</p>
+
+<h3>Assessment</h3>
+<ul>
+<li>Assignments: 45%</li>
+<li>Quiz about Week 9: 10%</li>
+<li>Final exam: 45%</li>
+</ul>
+
diff --git a/lecture_plan.mdwn b/lecture_plan.mdwn
new file mode 100644
index 0000000..ab64ec5
--- /dev/null
+++ b/lecture_plan.mdwn
@@ -0,0 +1,259 @@
+Week 1 - 26/7
+  A
+	Course Overview
+	Agent/Planning systems
+
+  B
+    rUNSWift overview
+      Aperios
+      Our Objects/systems
+        Low/High level vision
+        Tracking
+        Behaviours
+        Wireless
+        ActuatorControl
+      Flow Control between objects
+      Interfaces between objects
+
+  Lab
+    Intro to rUNSWift agent
+      Subversion
+      Compiling
+      Running
+      Base Station
+
+Week 2 - 2/8
+  A
+	Low Level Vision
+	  Colour segmentation
+	  Blobbing
+	  Edge Points
+
+  B
+    High Level Vision
+      Object Detection
+      Sanity Checks
+        Hand
+        Learned
+        Ripple-Down Rules?
+      Distance to objects
+        Close-in ball localization
+
+    Other teams' vision
+      German team
+      CMU Ball
+      Point projection
+
+  Lab
+    Ball tracking
+    Assignment 1 out at end of lab (Tracking & Life Saver)
+    Assignment 2 out at end of lab (Grab Ball - get to other half of field)
+    Assignment 3 out at end of lab (1x1 penalty shooter)
+
+Week 3 - 9/8
+  A
+    Motion (low level)
+      Head Control
+      Forward and Inverse Kinematics  (Head and Legs)
+      Point Projection
+      Non-Commutable Rotations
+      Recorded motions
+
+  B
+    Tracking
+      Bayesian Localization

(Diff truncated)