Hello everyone, long time no see!
I have disappeared for a quite a while now as I started taking some online classes to broaden my skills set. In particular I have been taking two specializations on Coursera: Fundamentals of Computing and Game Design and Development.
Fundamentals of Computing, by Rice University, focuses mainly on programming in Python and developing a computer science approach to problems, and as a matter of fact I am extremely happy with how everything is going, I have been learning a lot. It’s heavily based on programming projects which I have always aced and I am currently half-way through, I must admit I can’t wait to get to the end of it though! Here is the rundown and description for each course that makes up this specialization:
- An Introduction to Interactive Programming in Python (Part 1 & 2): This two-part course is designed to help students with very little or no computing background learn the basics of building simple interactive applications. Our language of choice, Python, is an easy-to learn, high-level computer language that is used in many of the computational courses offered on Coursera. To make learning Python easy, we have developed a new browser-based programming environment that makes developing interactive applications in Python simple. These applications will involve windows whose contents are graphical and respond to buttons, the keyboard and the mouse.
- Principles of Computing (Part 1 & 2): This two-part course introduces the basic mathematical and programming principles that underlie much of Computer Science. Understanding these principles is crucial to the process of creating efficient and well-structured solutions for computational problems. To get hands-on experience working with these concepts, we will use the Python programming language. The main focus of the class will be weekly mini-projects that build upon the mathematical and programming principles that are taught in the class. To keep the class fun and engaging, many of the projects will involve working with strategy-based games.
- Algorithmic Thinking (Part 1 & 2): When presented with a problem from a scientific domain, a Computer Scientist goes through a set of steps in order to provide a solution for the problem. These steps include: (1) understanding the problem; (2) formulating the problem mathematically; (3) designing an algorithm; (4) implementing the algorithm; and (5) solving the original scientific problem. This course will train students in how to employ algorithmic thinking by following these five steps to solve real-world problems. While the course emphasizes implementing the algorithms and solving the original problems that gave rise to the need for these algorithms in the first place, much of this two-part course will be devoted to the third step, namely, algorithm design. Here, the course will introduce students to different algorithm design strategies, as well as mathematical tools for reasoning about the correctness and efficiency of algorithms.
- The Fundamentals of Computing Specialization Capstone Exam: While most specializations on Coursera conclude with a project-based course, students in the “Fundamentals of Computing” specialization have completed more than 20+ projects during the first six courses of the specialization. Given that much of the material in these courses is reused from session to session, our goal in this capstone class is to provide a conclusion to the specialization that allows each student an opportunity to demonstrate their individual mastery of the material in the specialization.
The Game Design and Development Specialization by Michigan State University instead focuses on, as the name clearly states, Game Design and Game Development (yep, had to say it). So far I have only completed the first of the course, but I have to say it has helped me a lot to appreciate a subject I have always wanted to know more of, Unity 3D. The first month was based on project development and I have actually went from knowing basically nothing of game development in Unity to actually creating C# scripts for my games (boy was that devastating at first), which I honestly couldn’t have done without the prior experience I have acquired by programming in Python. I am also posting here the last project I had graded as the second level I designed has some interesting stuff (or so I have been told). Again, here is the rundown and description for each course in this specialization:
- Introduction to Game Development: In this course you will familiarize yourself with the tools and practices of game development. You will get started developing your own videogames using the industry standard game development tools, including the Unity3D game engine and C#. At the end of the course you will have completed three hands-on projects and will be able to leverage an array of game development techniques to create your own basic games. This course is for individuals interested in becoming a game designer, game artist, or game programmer.
- Principles of Game Design: In this course you will practice moving from game concept through design documentation, prototyping and testing. Numerous elements go into the overall process of game design. These range from topics such as idea generation, story, character, and game world development, game mechanics and level design, and user experience design. You will explore the process for designing meaningful experiences for your players. At the end of the course learners will have produced a game’s high concept document, one page blueprint, a physical prototype, pitch and supporting design documentation to move from an idea in your head to a fleshed out design, ready for implementation.
- Game Development for Modern Platforms: In this course you will explore how game design and development is tied to the device a game is destined to be played on. You will be exposed to how game platforms have changed over the years and how modern platforms influence the creative process. While completing several hands-on projects, you will learn more advanced game development techniques in the Unity3D game engine. By the end of the course, you will understand how to develop, package, and prepare your game for distribution on a variety of game platforms.
- Business of Game and Entrepreneurship: This course will introduce you to game production, project management, teamwork skills, and how to position your game ideas and yourself in the broader marketplace. By the end of the course, you will be able to develop an impactful portfolio of game work to get noticed and/or develop an effective business plan to bring your game to market.
- Game Design and Development Capstone: In the game design and development capstone, you will create a game from concept to implementation. You will have the opportunity to put your game ideas in front of your peers and for the best-of-the-best you will have the chance to put your game in front of game industry professionals. The capstone experience gives you the opportunity to push your skills further and demonstrate your new found skills as a game developer.
And finally, here is the final project I turned in for the first course of Game Development! Level 1 is basically what we were taught during the lessons and Level 2 is what we actually had to create, in complete freedom. It took me a couple of days because I wanted to try out some ideas that had been popping in my head. It was a lot of overkill, I know, but it was the best place and way to try out new things and have some constructive feedback while at it. I basically went over everything we were taught throughout the course, and I also created some scripts specifically for the level and modified some of the one that were given to us in the first place. Hope you enjoy it!
To download it, click on the screenshot on the left or here.