Data Structures and Design Patterns for Game Developers (Coursera)

Data Structures and Design Patterns for Game Developers (Coursera)

This course is the fourth course in the specialization about learning how to develop video games using the C# programming language and the Unity game engine on Windows or Mac. Why use C# and Unity instead of some other language and game engine? Well, C# is a really good language for learning how to program and then programming professionally. Also, the Unity game engine is very popular with indie game developers; Unity games were downloaded 16,000,000,000 times in 2016! Finally, C# is one of the programming languages you can use in the Unity environment.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

This course assumes you have the prerequisite knowledge from the previous three courses in the specialization. You should make sure you have that knowledge, either by taking those previous courses or from personal experience, before tackling this course. Throughout this course you'll build on your foundational C# and Unity knowledge by developing more robust games with better object-oriented designs using various data structures and design patterns.
Data structures and design patterns are both general programming and software architecture topics that span all software, not just games. Although we'll discuss these ideas in the game domain, they also apply if you're writing a web app in ASP.NET, building a tool using WinForms, or any other software you decide to build.
Module 1: Explore a Dynamic Array data structure and learn the basics of algorithm analysis
Module 2: Learn about and use the common Linked List and Graph data structures
Module 3: Learn about and use several additional data structures: Stacks, Queues, and Trees
Module 4: Learn why design patterns are so useful and discover a number of design patterns useful in game development
Module 5: Complete final peer review
Course 4 of 4 in the C# Programming for Unity Game Development Specialization.

Syllabus

WEEK 1
Dynamic Arrays and Algorithm Analysis

WEEK 2
Linked Lists and Graphs

WEEK 3
Stacks, Queues, and Trees

WEEK 4
Design Patterns

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Games, Sensors and Media (Coursera) Coursera
University of California, Irvine

Games, Sensors and Media (Coursera)

You will learn to make fluid digital interactive experiences that are suitable for gaming and use the advanced sensor hardware built into the iPhone and iPad. This includes drawing 2D graphics, playing sounds and music, integrating with Game Center, the iOS physics engine and detecting device orientation and location.

Oct 26th 2026
4 Weeks
Applied Calculus with Python (Coursera) Coursera
Johns Hopkins University

Applied Calculus with Python (Coursera)

This course is designed for the Python programmer who wants to develop the foundations of Calculus to help solve challenging problems as well as the student of mathematics looking to learn the theory and numerical techniques of applied calculus implemented in Python. By the end of this course, you will have learned how to apply essential calculus concepts to develop robust Python applications that solve a variety of real-world challenges.

Oct 26th 2026
5-12 Weeks
Software Processes and Agile Practices (Coursera) Coursera
University of Alberta

Software Processes and Agile Practices (Coursera)

This course delves into a variety of processes to structure software development. It also covers the foundations of core Agile practices, such as Extreme Programming and Scrum. Upon successful completion of this course, you will be able to: distinguish between different process models for organizing software production; gauge the applicability of process models for a software development project; apply the fundamentals of Agile software development and management practices.

Oct 26th 2026
4 Weeks
Python Data Structures (Coursera) Coursera
University of Michigan

Python Data Structures (Coursera)

This course will introduce the core data structures of the Python programming language. We will move past the basics of procedural programming and explore how we can use the Python built-in data structures such as lists, dictionaries, and tuples to perform increasingly complex data analysis. This course will cover Chapters 6-10 of the textbook “Python for Everybody”. This course covers Python 3.

Oct 19th 2026
5-12 Weeks
Programming Mobile Applications for Android Handheld Systems: Part 1 (Coursera) Coursera
University of Maryland, College Park

Programming Mobile Applications for Android Handheld Systems: Part 1 (Coursera)

This course introduces you to the design and implementation of Android applications for mobile devices. You will develop an app from scratch, assuming a basic knowledge of Java, and learn how to set up Android Studio, work with various Activities and create simple user interfaces to make your apps run smoothly.

Oct 26th 2026
5-12 Weeks
Emprendimiento y métodos ágiles de desarrollo en videojuegos (Coursera) Coursera
Universidad de los Andes

Emprendimiento y métodos ágiles de desarrollo en videojuegos (Coursera)

¡Bienvenido al curso de emprendimiento y métodos ágiles de desarrollo en videojuegos! Este curso es parte del Programa Especializado Coursera en Diseño y Desarrollo de Videojuegos, en la cual aprenderás a diseñar y programar cierto tipo de videojuegos, aumentarás tu comprensión acerca del mercado actual de videojuegos y de lo que se requiere para crear un juego exitoso comercialmente.

Oct 26th 2026
5-12 Weeks
Open Source Programming - Bachelor's (Coursera) Coursera
Illinois Tech

Open Source Programming - Bachelor's (Coursera)

Contemporary open-source programming languages and frameworks are presented in this course. Students will consider design and development topics in system, graphical user interface, network, and web programming. Dynamic scripting languages are covered using object-oriented, concurrent, and functional programming paradigms. Concepts gained throughout the course are reinforced with numerous exercises which will culminate in an open-source programming project.

Oct 26th 2026
5-12 Weeks
Client Needs and Software Requirements (Coursera) Coursera
University of Alberta

Client Needs and Software Requirements (Coursera)

This course covers practical techniques to elicit and express software requirements from client interactions. Upon successful completion of this course, you will be able to: Create clear requirements to drive effective software development; visualize client needs using low-fidelity prototypes; maximize the effectiveness of client interactions - adapt to changing product requirements.

Oct 26th 2026
4 Weeks
Introduction and Programming with IoT Boards (Coursera) Coursera
Pohang University of Science and Technology - POSTECH

Introduction and Programming with IoT Boards (Coursera)

Internet of Things (IoT) is an emerging area of information and communications technology (ICT) involving many disciplines of computer science and engineering including sensors/actuators, communications networking, server platforms, data analytics and smart applications. IoT is considered to be an essential part of the 4th Industrial Revolution along with AI and Big Data. This course will be very useful to senior undergraduate and graduate students as well as engineers who are working in the industry.

Oct 26th 2026
5-12 Weeks
Learn TypeScript (Coursera) Coursera
Scrimba

Learn TypeScript (Coursera)

Are you a proficient developer in HTML, CSS, and JavaScript, looking to elevate your technical skillset? Have you observed an increasing demand for TypeScript in the professional job market and are keen to explore its significance? Are you in search of a programming language that offers ease in readability and debugging? If the answer to any of these questions is affirmative, then you have arrived at the optimal course to advance your career.

Oct 26th 2026
4 Weeks
Programming Mobile Applications for Android Handheld Systems: Part 2 (Coursera) Coursera
University of Maryland, College Park

Programming Mobile Applications for Android Handheld Systems: Part 2 (Coursera)

This course introduces you to the design and implementation of Android applications for mobile devices. You will build upon concepts from the prior course, including handling notifications, using multimedia and graphics and incorporating touch and gestures into your apps.

Oct 26th 2026
5-12 Weeks