CS 121: Programming Artificial Life


Instructor: Jaime Davila
Office: Cole 125
Office Hours:Fridays 9:30-11:30 AM
or by appointment
(to schedule an appointment, please contact Jackie Jeffery: jjeffery at hampshire dot edu, or 559-5379)
Phone Number : 413-559-5687
email: jdavila at hampshire dot edu

Evaluations:
Your end-of-semester evaluation will be based on the following: a series of programming homeworks to be assigned throughout the semester, class participation, and a final programming project. All aspects will be equally important.

If you would like to satisfy the first year quantitative analysis learning goal requirement with this course, you must satisfactorily complete all homeworks. Successfully completing this course will give you much exposure towards quantitative analysis/skills learning goals, as well as independent project work.

Students that want to satisfy the learning goal on oral presentations can do so by scheduling and successfully delivering class presentations. Since there are, at present, no presentations in the schedule, students that want to use this opportunity need to identify themselves.
Late work:
Work will only be accepted late if you have a really good excuse (real health problem, etc.) Having a slight cold, oversleeping, or not knowing about it will never be accepted as good excuses.
Format of classes.
Classes will be very interactive and student based. Often we will run class as a laboratory, where a problem is assigned and students work on solutions during class time. Homeworks often consist of finishing this work. Because of this, coming to class and being on time end up being very important and helpful.

The following schedule should help you in preparing for class. We will all enjoy and get more out of the course if you prepare for class.
In addition, as homeworks are assigned, you'll be able to retrieve them from here.

I encourage you to take advantage of the syllabus shown below in order to remain on schedule.


Some useful links:
Breve home page (and Breve documentation).


Week Dates Topics Stuff we saw this week Sample Code Assignments
1 Sep. 5 Introductions.
Class format.
Introduction to Breve.
Breve documentation.
  • Breve.
  • Examples.
  • The controller object.
  • Methods and attributes.
  • Random.
  • move.
  • set-color.
  • the init and iterate methods.
simplest code.
You might also want to look at this helloWorld program.
 
2 Sep. 10, 12 The controller object.
Other objects.
A first object on the screen.
Attributes and methods of an object.
Types and expressions.
  • classes and/vs. objects
  • variables
  • declarations
  • the breve log window
  • naming conventions
  • lists
  • public vs. private
  • the print command
  • self
  • inheritance
 
3 Sep. 17, 19 Control structures.
  • if-else
  • foreach
  • while
  • for
a sample code that uses if-else, foreach, while loops, and for loops.
4 Sep. 24, 26 Control structures.
Homework on simple objects assigned.
5 Oct. 1, 3 Interactions with the environment.
6 Oct. 10 A first look at more complex applications. First homework due.
Homework on sensing the environment assigned.
7 Oct. 15, 17 Project selection. Second and third homeworks assigned.
8 Oct. 22, 24 More interactions with the environment.

9 Oct. 29, 31 Separating a project into files.  Second homework due October 29. 
10 Nov. 5 Finding additional help. Proposal for final project due.
11 Nov. 12, 14 Project debugging. Third homework and project proposals due November 5. 
12 Nov. 19 Neural networks.
13 Nov. 28 Project debugging.
14 Dec. 3, 5 Final projects presentations. All projects due by December 17.