Implementation of Heuristic Algorithms for Board Games (Practical Course)

Implementation of Heuristic Algorithms for Board Games

Practical Software Course, Summer Semester 2014

News

  • 14.04: Dates for the plenary meetings are set
  • 22.04: Assignment 2 (with fixed dates) now available

Plenary meetings

Date Time Location Assignment Slides

08.04.2014

15:00-16:00 9U10 (E3)
22.04.2014 12:00-13:00 9U10 (E3)
06.05.2014 15:00-16:00 9U10 (E3)
20.05.2014 12:00-13:00 9U10 (E3)
17.06.2014 12:00-13:00 9U10 (E3)
01.07.2014 12:00-13:00 9U10 (E3)
TBA TBA TBA (E3)

Group meetings

Location: Room 4201b (2nd floor E1)

Group Day Time

1

Friday 10:25-10:40
2 Friday 10:45-11:00
3 Thursday 16:00-16:15
4 Friday 11:05-11:20
5 Thursday 16:20-16:35
6 Friday 11:25-11:40
7 Friday 12:00-12:15

Discussion Group

Use the mailinglist swp-i2-2014-pm AT lab9.sselab.de for general and technical questions and discussions among students. Students are urged to answer other student’s questions.

Topics and Goals

The aim of the course is the implementation of a strong computer player for an extended version of Reversi. At the end of the course, a competition will be held between the developed computer players and a ranking is set up. The top of the ranking is the winner of the competition, and additional points to the final grade will be awarded to the winner.
During the course, techniques and concepts for creating stronger computer players are introduced incrementally which are expected to be studied and understood by the student. The course covers the following topics:

  • Client network socket programming
  • Mini-max and paranoid search
  • Alpha-beta pruning
  • Iterative deepening
  • Move sorting
  • Aspiration windows
  • Game state rating heuristics
  • Empirical algorithmic efficiency analysis
  • Performance and memory profiling
  • Technical writing and reporting

Lab organisers are Harold Bruintjes and Christian Dehnert.

References

Remarks

  • The preferred language for this course is English.
  • By default, the implementation is expected to be in Java.
  • Reports have to handled in a clearly defined location in your Git repository.
  • Attendance of every meeting is mandatory.
  • Students are expected to form and work in groups of 3 students.
  • Grades are based on the quality of the written reports, the quality of the source code, the strength of the AI, team play and work attitude.