As a First Year Engineering student at the University of Pittsburgh, all freshmen students are required to take the same courses regardless of major. One of the courses I was required to take was Introduction to Engineering Computing. This course covered MATLAB as well as the C programming language and was structured such that every student was a part of a group to work on projects and homework. Throughout the course, we were assigned two group projects, and one of those projects was to create Conway's Game of Life with the MATLAB programming language and display some statistics to the user afterwards.
Conway's Game of Life is a cellular automaton which has an end state only effected by the initial state of the game. In other words, it's a grid simulation that is entirely based off of its starting point. The game revolves around giving the program an initial amount of alive and dead cells, and then simply watching the patterns change according to these four rules:
Conway had proposed that no starting pattern could grow indefintely, and every initial state would lead to a finite number of living cells in the end. This conjecture ended up being false, however, when Bill Gosper figured out an initial condition which would create an endless amount of living cells (Gosper's Glider).
This project was hard at first glance, but after delving deeper with my group, it ended up being more than manageable for my team. If you're someone who is interested in testing their programming abilities I would recommend this project.