CPSC 625-600 Read-Only Bulletin Board

Last modified: 8/31/04, 12:02PM (Tue)

This page will have all relevant email transactions with the students regarding the AI course, so that everyone has equal information regarding the course material.

Newest transactions will be posted on the top. Regularly view this page to see what's going on between other students and the instructor.

All sensitive material such as your name, email address, etc. will be removed, and also any part of code that is not relevant to the discussion will not be uploaded here.


Article List

Date: 11/08 Title: Program #3 alternative: mini term project
Date: 10/11 Title: Homework #2 unification exercise solution
Date: 10/3 Title: General Q and A
Date: 9/21 Title: Compiling Lisp programs
Date: 9/15 Title: Program #1 Q and A


Articles

Date: 11/08 Title: Program #3 alternative: mini term project

I. Introduction

In place of program #3, you can do a mini term project relating to any topic in AI. The percentage will be the same as program #3, so this will not be a major project.
  1. The project can be either invidivual or team (up to two). For a team project, the scope should be broader, and a clear plan for the division of labor should be presented.
  2. You may use any language supported on CS Unix or windows machines, or you can do a demo on your laptop.
  3. You may use other people's implementation found on the web and extend it in a meaningful way or do a novel experiment.

II. Timeline

  1. Send initial suggested topic to the instructor via email to obtain approval. Send the following to choe(a)tamu.edu (the sooner the better):
    • Project title.
    • Team members.
    • Software package that you will use (if applicable).
    Then start writing the proposal.
  2. Submit a one-page, single-spaced proposal by 11/17 Thursday, in class (submit a hardcopy).
  3. The project due date would be the same as the program #3 (12/6 midnight): submit brief report (2-3 pages) and code.

III. Example Topics

  1. Simple experiments with simulated robots:
  2. Applications of backprop (backprop-1.6.tar.gz):
    • Image compression.
    • Character recognition.
  3. Other tools:
Date: 10/11 Title: Homework #2 unification exercise solution
Solution to homework #2, unification exercise:

1. P(x,b,f(x)), P(a,y,f(y))

  {x/a}

  P(a,b,f(a)), P(a,y,f(y))

  {y/b}

  P(a,b,f(a)), P(a,b,f(b))

  Cannot unify because the final disagreement set, D = {a,b},
  contains no variable.


2. P(x,f(x,y),g(f(a,b))), P(a,z,g(z))

   {x/a}

   P(a,f(a,y),g(f(a,b))), P(a,z,g(z))
   
   {z/f(a,y)}
   
   P(a,f(a,y),g(f(a,b))), P(a,f(a,y),g(f(a,y)))

   {y/b}
   
   P(a,f(a,b),g(f(a,b))) ==  P(a,f(a,b),g(f(a,b)))

   unifier = {x/a} o {z/f(a,y)} o {y/b} = {x/a, z/f(a,b), y/b}

Date: 10/3 Title: General Q and A
>
> 1-    What are topics that we need to study for the exam?

		Topics covered in class.
>
> 2-    Are the slides enough for that?

		That, and what I mentioned in class.

>
> 3- Shall we read only the sections that are listed in the reading part
> of the web site?

		That would be sufficient.

> 4- In case of Chapter 3.1-3.5 (3.6,3.7 optional) , are sections 3.6 and
> 3.7 included in the exam ?

		No.

>
> 5-    Shall we memorize the UNIX commands?

		No.

>
> 6-    In the case of Lisp, should again memorize all the functions?

		No. No lisp questions.

>
> 7-    Shall we memorize the topics of chapter 1 and 26 including definitions and history ?!!

		No, but read and get acquainted with the concepts.

> 8- Shall we know all the algorithms in the book? Do we expect to write
> an algorithm?

		No. Only those that were discussed in the class.
		No. No writing of algorithms.

> 9- May you please provide us with previous exams so that we can have a
> brief idea of what to expect we shall see in the exam ? like would there
> be comprehensive questions , True/False , multiple choice etc.

		Yes I will.
>
> 10- Just to be in the safe side , the exam will be in the class on
> October 13 at 11:10 until 12:25

		Yes.

> 11- Some definitions (small topics) in the book you are not explained in
> the slides , shall we try to understand them ?

		No.

> 12-  When is the date and time of the final exam test?

		See the official university schedule.
		12/9 3-5pm ZACH

Date: 9/21 Title: Compiling Lisp programs
To optimize and speed up execution, you should compile your program code. You can do this in CMUCL by running the (compile-file <filename>) function. See below for an example, where I am compiling function(s) in the file fibo.l. The file contained the definition for the (fibo ..) function. Of course you can have multiple function definitions in the file, and all of those will be compiled. Again, * is the lisp prompt, and my inputs to lisp are in bold.
* (compile-file "fibo.l")

; Python version 1.1, VM version UltraSparc/Solaris 7 on 09 SEP 04 10:49:52 am.
; Compiling: /user/choe/web_project/625/fibo.l 09 SEP 04 10:44:02 am

; Converted FIBO.
; Compiling DEFUN FIBO: 
; Byte Compiling Top-Level Form: 

; fibo.sparcf written.
; Compilation finished in 0:00:00.

#p"/user/choe/web_project/625/fibo.sparcf"
NIL
NIL

* (load "fibo.sparcf")

; Loading #p"/user/choe/web_project/625/fibo.sparcf".
T
* (fibo 20)

10946
* 

Note that you need to first compile it, and then note what the resulting compiled file is (the one highlighted in red above), and then finally (load ...) that.
Date: 9/15 Title: Program #1 Q and A
First of all, see
http://courses.cs.tamu.edu/choe/04fall/board.html
for useful tips on program #1. Start from the bottom of the page and go up.

Next, there were several questions from the students already, so I'll summarize those and my responses below.

Q1: Why do I get "end-of-file" error when I try to load the following code?


	(defun ...

		...

		(list ...
		
		}

		...

	)

A1: That error happens if you did not balance all the parentheses. For example,
    in the above example, "}" is used instead of ")".

    Also, see an old article on the same topic, from Fall 2004, which gives much more
    detail.

----------------------------------------------------

Q2: I am having trouble with the deriv-eval in multiple ways. Any 
    suggestions?

A2: Try using "list", "eval", etc. creatively, or write a recursive
    expression evaluator.

----------------------------------------------------

Q3: I am getting strange errors like:

; Warning: These variables are undefined:
;   Y X
;


A3: Try declaring them first using (let (x y) ... .


	(defun ...

		(setq x ...
		(setq y ...

	)


	==>

	(defun ...

	    (let (x y)
		(setq x ...
		(setq y ...
	    )

	)


----------------------------------------------------
	
Q4: Does our program need to evaluate derivatives for negative numbers too? 
For example, does our program need to handle the following command?
 
	(deriv-eval '(* x x) 'x (- 1))

A4: No. Just use -1 instead of (- 1).

----------------------------------------------------

Q5: Does our deriv-eval need to support lettered constants like

	(deriv-eval '(* x y) 'x 2)

A5: No, you don't need to worry about those cases.

----------------------------------------------------

Q6: Can I use "smult" instead of "sminus" (or "sunaryminus" for that matter) 
    in the main unary minus function?

A6: It's up to you, under the condition that it does simplify the expression
    correctly.


$Id: board.php,v 1.5 2004/08/30 23:54:24 choe Exp $