Skip to content
Owen Mackwood edited this page Dec 4, 2020 · 1 revision

Overview

The purpose of the project is to teach students some essential software engineering skills (or "software carpentry"). This includes:

  • Use of a version control system, such as git
  • Test-driven development
  • Documentation
  • Issue tracking, and milestones for project planning
  • Debugging, profiling, and optimization
  • (Optional) Software design and associated artifacts, e.g. activity/class diagrams

Teaching materials

In the first month, each tutorial includes a teaching component. Here is the content for the first four weeks, which should be delivered both as a lecture and later posted to the relevant teaching platform:

Part 1

Part 2

Part 3

Part 4

After the students submit their minimax agents at the end of week six, they will undertake the second part of the project. This involves implementing either a simple MCTS-based agent, or an agent trained using either a supervised or reinforcement learning based approach. Here is the material for the first tutorial of this phase:

Part 5

Miscellaneous teaching materials:

Optimization tips

Clone this wiki locally