If you enjoy puzzles like Sudoku have you ever wondered about how to teach a computer to solve them? This hands-on course will show you how to do that. It is suitable for people who want to learn programming with the Python language, or for experienced programmers looking for a new challenge. It will run over two terms. After a ”soft start”, covering the basics of the Python programming language and writing simple programs, we will use the "pygame" toolkit to create animated displays and also look at object-oriented programming. In the second term we will look at the more creative side of programming: working out the logical steps needed for a solution, and then turning this into a program. We'll help you work on your favourite puzzles, sharing questions and solutions. You will need a computer (Linux, Mac or Windows). All software needed for this course is free to download.