FYS122A: Course Description



Course FYS122A Programming Xpilot Game Agents:

TR 1:15-2:30 New London Hall Room 214 (Unix Lab)

Professor:

Gary Parker
New London Hall Room 216 (ext. 5208)
parker@conncoll.edu

Text and Software:

Text: Python Programming: An Introduction to Computer Science, 2nd Edition by John Zelle; Franklin, Beedle & Associates, 2010. ISBN-13: 978-1590282410.
Software: Our primary software needed will be Xpilot-Ed (Xpilot-AI) and the Python programming environment. Both will be available on all Unix/Linux workstations. Xpilot-Ed can be downloaded for use on PCs running Linux from: http://www.xpilot-ed.org. Python 3 is available free from www.python.org.
Web Page: http://cs.conncoll.edu/parker/fys122a

Office Hours:

NLH 216: Tues, Thurs: 4:00 - 5:30

Course Description:

Introduction to computer programming and problem solving using Python. Students will discuss readings, make presentations, and program agents operating in the Xpilot video game environment to solve a series of problems that are of increasing complexity. No previous computer knowledge is assumed. Not intended for Computer Science majors. This course satisfies General Education Area 2 and is a designated Writing course.

Discussion:

This course is intended to be an opportunity for you to learn programming and experience problem solving in real-time video game environment. The programming language you will learn is Python and the game environment is Xpilot.

Xpilot is a multi-player, 2-dimensional, space flight combat game written in the C programming language. The game is open source, which makes it possible to modify the program to introduce a learning component. Xpilot is playable over the internet, and players control their ships using the keyboard or mouse. The design uses a client and server to support multiple players, and has many variables for weapon and ship upgrades, map settings, team play, etc. Xpilot-AI was produced by parsing variables used by Xpilot, such as velocity and position, and making these available to programs written by the user. Using these inputs in a control program that can output commands back into the system, the user can operate an artificial agent in the game. In addition, learning programs can alter the control program and thus the agent’s behavior while the game is in progress.

Xpilot-AI is an exception system for learning programming and developing AI learning techniques. The environment and controls can be set to vary the difficulty of the problem. A level of complication can be found to meet the level of the available solutions and the capabilities of the student. The problem is interesting with visual feedback of the outcome of one’s solution. Students can produce solutions that can compete against each other or a common opponent. Environments can be set where team cooperation is a component of success. In addition, due to its network nature, AI controllers can compete with other AI controllers and human opponents from any computer in the world, as long as it has a reasonably fast Internet connection. This gives this system of learning tremendous potential for collaborations.

The programming language Python is a very good first language to learn programming and is used at several universities in their introductory computer science courses. We use it here at Connecticut College for the COM110 intro course for majors. One main advantage is that it is an interpretive language, which means that the student does not have to deal with the complication of compiling code. This also means that the learner can write functions and test them individually without requiring an entire program. Another advantage is that there is not the extra complication of variable types and proper declaration of formal parameters. This simplifies programming for the beginning student and eases this burden for the advanced programmer. One of the main advantage of Python is that it handles advavanced datat types such as lists without complication. The programmer does not need to declare space for additions to the list, nor free memory when an object is removed from the list. This releases programmers from the burden of bookkeeping so that they can concentrate on the problem they are trying to solve.

No prior knowledge of programming is required for this course. The student will be introduced to all the components of the language needed for programming Xpilot-AI agent controllers.

The work in this class will be mainly focussed on programming controllers for Xpilot-AI agents, but will also include other elements of learning. There will be in-class assignments, homework exercises, article presentations, class discussion, and a notebook. It is very important that you attend class and keep up on the homework, writing, and reading.


Grading:

Homework / Programming Assignments
30%
Presentation
10%
Class Participation
15%
Final Project
25%
Notebook
20%

Homework / Programming Assignments: To be done individually, using no outside resources. Homework / programming assignments completed after due date will be accepted with a grade loss per class period.
Presentation: You will give a formal presentation on a technical paper you find that is pertinent to the topic of AI used in video games (15 minutes, plus 5 minutes for questions). In addition, there will be other shorter assigned presentations. There will be questions and discussion following the presentation. The grade will be determined by the quality of your presentation.
Class Participation: The participation grade will be determined by your participation in classroom discussions, including discussion of the assigned readings and presentations.
Final Project: There will be a final Xpilot-AI project. During one or two of the final class sessions, we will have competitions to show off the final control programs. You may work in teams, but no outside resources.
Notebook: This notebook is for you to organize and summarize your thoughts and procedures as you have learned about programming, problem solving, and Xpilot-AI. It should be organized chronologically with the events of the class. Use it to hold all of your class notes, HW assignments, presentation articles, programs, etc. In addition, you are to include an entry for each day that you work on your programming assignments and final project. This is to be comments on your thought processes, ideas, and discoveries as you worked on the project. The notebooks are to be done individually. In other words, they should be written from your perspective. The entries for the final project should be written as both "I" and "we" -- separating your ideas and contribututions from those of your team.

Notes:

If you have a physical or mental disability, either hidden or visible, which may require classroom, test-taking, or other reasonable modifications, please see me as soon as possible. If you have not already done so, please be sure to register with the Office of Student Disability Services. You can do so by going to the Office of Student Disability Services which is located in Crozier Williams, Room 221, or by contacting the Office at Campus Extensions 5428 or 5240, or by email to barbara.mcllarky@conncoll.edu or lillian.liebenthal@conncoll.edu.

The Roth Writing Center provides one-to-one peer tutoring (free of charge) to help student writers of all abilities during all stages of the writing process. To make an appointment, call x2173 or stop by the Writing Center at 214 Blaustein. If you're a confident, experienced writer we can help you to push your ideas and polish your style; if you're a relatively inexperienced and not-so-confident writer we can also help you, by working on grammar or organization or whatever you need. Writing Center tutors are trained to help you to discover what you think through writing. Working with a tutor gives you the opportunity to share your work-in-progress with an actual reader, so that you can get useful feedback on that work before you have to turn it in for a final grade. For further information, visit the Writing Center web page at http://write.conncoll.edu/.


 
 

Return to the FYS122A Home Page