Fun with Algorithms

In this course, we will explore and seek to understand popular games such as guess-the-number, playing with matches, tic-tac-toe, Sudoku, etc. Our main focus will be having fun, and exploring what each one of these games represent as a computer science concept. All major concepts and algorithms in computer science can be illustrated with a game, and the main goal of this course is to introduce those concepts through game-playing. Specifically, we will be programming the games in C++, show optimal and suboptimal solutions to games, thus illustrating different flavors of problems and ways to solve them, and revealing the mathematical underpinnings that help us understand why some games are easy and others are hard. The course is intended as an eclectic introduction to the study of algorithms and programming, with the focus on coding, understanding the efficiency of programs and mathematical concepts relevant for a computer scientist.