This is a repository for the course of Principles of Computing, which is part of computer science series offered by Rice University on Coursera.
This class covers a collection of principles that are fundamental to Computer Science. As a motivating application of these principles, it will examine a collection of strategy games and apply these principles in the analysis/solution of these games.
Each week, we will watch a set of 6-8 videos and then complete homework on the mathematical aspects of these concepts. Our main weekly task is to complete a mini-project that furthers your practical understanding of the material.
Below is the syllabus for the class.
Week------------------Concepts----------------------------------Mini-project
-0-------------Introduction, coding standards-----------------2048
-1-------------Counting, growth of functions, lambda----------Cookie Clicker
-2-------------Probability, randomness, objects/references----Tic-Tac-Toe (Monte-Carlo)
-3-------------Combinatorics, generators, debugging-----------Yahtzee
-4-------------Searching, data structures, inheritance--------Zombie Apocalypse (BFS)
-5-------------Recursion, sorting, reading files--------------Word Wrangler
-6-------------Trees, game tree search, testing---------------Tic-Tac-Toe (Tree search)
-7-------------Design of abstractions, models, invariants-----The "Fifteen" puzzle