We may earn an affiliate commission when you visit our partners.
Course image
Jose Sanchez

In Data Structures for Designers Using Python, you’ll delve into the critical concepts of data structures and object-oriented programming, tailored specifically for design and visual content creation applications. You’ll be introduced to object-oriented programming principles in Python, enabling you to model real-world scenarios and design problems using objects and classes. You will use the Processing platform to draw lines, rectangles, ellipses, and more through the program’s Python mode. Learn about vector math and how it can be manipulated to store, organize, and manage data efficiently in creative projects. These approaches to Python allow you to gain a deeper understanding of the programming language while enhancing your ability to conceptualize and implement sophisticated design solutions.

Read more

In Data Structures for Designers Using Python, you’ll delve into the critical concepts of data structures and object-oriented programming, tailored specifically for design and visual content creation applications. You’ll be introduced to object-oriented programming principles in Python, enabling you to model real-world scenarios and design problems using objects and classes. You will use the Processing platform to draw lines, rectangles, ellipses, and more through the program’s Python mode. Learn about vector math and how it can be manipulated to store, organize, and manage data efficiently in creative projects. These approaches to Python allow you to gain a deeper understanding of the programming language while enhancing your ability to conceptualize and implement sophisticated design solutions.

This is the second course in a three-part series, Programming for Designers, aimed at equipping designers, including those in architecture, graphic design, industrial design, game design, and visual artists, with essential computational design skills.

Enroll now

What's inside

Syllabus

Introduction to Data Structures
Our journey begins with lists and dictionaries, the fundamental data structures for organizing and storing data in Python. You'll learn how to manipulate these structures using examples that involve typography, exploring how text can be dynamically integrated and manipulated to create engaging visual compositions.
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Students interested in broadening their skills as designers who may benefit from computational design
Graphic designers may build upon their design principles foundation to integrate them with code
Students with a clear interest in data structures and object-oriented programming will benefit from this course the most
Those entirely new to data structures or OOP may struggle with some of the concepts covered in this series
Students must complete the first course in this series before taking this course
This course relies heavily on hands-on Python work. Students should ensure they have Python 3.10.6 or higher on their system before starting this course

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Computational design with python data structures

According to students, this course offers a largely positive experience, particularly for designers and visual artists aiming to integrate computational skills into their work. Learners praise its design-centric examples and practical application, especially through the seamless use of the Processing platform for visual projects. Key modules like vector math and Object-Oriented Programming (OOP) are frequently highlighted for their clarity and relevance. While generally well-received, a few students noted that the pace can be inconsistent, and some felt the course occasionally assumes prior Python knowledge, which might be a challenge for absolute beginners. Overall, it's considered a strong foundation for creative coding.
Provides a good foundation but may not delve into advanced topics sufficiently for all.
"Overall, a great foundation, but I'll need more practice to fully master the techniques."
"I felt I quickly hit a ceiling after grasping the basics."
"It lays a decent foundation for using Python for visual design."
Provides solid understanding in specific relevant areas like vectors and OOP.
"The vector math section truly opened my eyes to generative art possibilities."
"The Object Oriented Programming section was well-explained and provided a solid framework."
"The grid and vector modules were particularly relevant to my work."
Effective use of the Processing platform for visual, practical application.
"The Processing platform integration was seamless and very intuitive for visual thinkers."
"The hands-on activities using Processing cemented my understanding."
"The hands-on projects using Processing are incredibly effective for learning."
Tailored concepts and examples for visual and creative applications.
"The way data structures were presented with design-centric examples made all the difference."
"This course bridged the gap between my design intuition and computational logic beautifully."
"Exactly what I needed as a visual artist. The relevance to design was always clear."
Some students desired more engaging lectures and clearer exercises.
"The lectures felt a bit dry at times."
"I also felt some of the exercises could have been clearer, leading to frustration."
"The execution needs polish."
Some learners found the pace inconsistent or assumed too much prior Python knowledge.
"I felt the course sometimes assumed more Python knowledge than I had..."
"The pace was inconsistent. Some early topics were slow, then OOP felt very fast."
"I would recommend having some basic Python syntax familiarity beforehand, as it helps with the pace."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Data Structures for Designers Using Python with these activities:
Read 'Data Structures and Algorithms in Python' by Michael Goodrich
Gain a deeper theoretical foundation in data structures
Show steps
  • Read the textbook, focusing on core data structures and algorithms
  • Work through the exercises and examples to practice your understanding
  • Apply the concepts to your own projects and assignments
Solve Python Coding Challenges
Reinforce your understanding of data structures and OOP through practice
Show steps
  • Find and solve coding challenges on platforms like HackerRank or LeetCode
  • Implement data structures like lists, dictionaries, and vectors in your solutions
  • Apply OOP concepts such as classes, objects, and inheritance
Explore Pygame for Interactive Design
Expand your skills in creating interactive and engaging design prototypes
Browse courses on PyGame
Show steps
  • Find tutorials on Pygame and 2D game development
  • Experiment with creating simple games and simulations
  • Implement user input and responsiveness to create immersive experiences
  • Share your creations with others for feedback and inspiration
Three other activities
Expand to see all activities and additional details
Show all six activities
Collaborative Design Project
Enhance your OOP skills by collaborating on a design project
Show steps
  • Form a team with fellow students
  • Define a design problem that involves object interactions and simulation
  • Work together to design and implement a solution using OOP principles
  • Test and debug your solution, seeking feedback from team members
  • Present your project to the group, demonstrating its functionality and creativity
Design a Vector-Based Artwork
Demonstrate your understanding of vectors by creating a visually stunning artwork
Browse courses on Generative Art
Show steps
  • Conceptualize a design that can be represented using vectors
  • Use a vector-based software or Python's Processing platform for implementation
  • Manipulate vectors to create dynamic and responsive elements
  • Apply vector math to create organic and flowing forms
  • Refine and iterate on your design for aesthetic appeal
Contribute to an Open-Source Data Structures Library
Deepen your practical knowledge and support the community
Show steps
  • Identify an open-source data structures library
  • Find and fix bugs or implement new features
  • Write documentation or tutorials to help others use the library
  • Interact with other contributors and learn about best practices

Career center

Learners who complete Data Structures for Designers Using Python will develop knowledge and skills that may be useful to these careers:

Reading list

We've selected 50 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Data Structures for Designers Using Python.
This classic work by Donald Knuth provides a comprehensive and in-depth treatment of fundamental algorithms, including lists and their applications.
Provides a comprehensive introduction to vector calculus. It covers a wide range of topics, including vector algebra, differential calculus, and integral calculus.
Provides a comprehensive introduction to vector and tensor analysis for engineering and physics. It covers a wide range of topics, including vector algebra, tensor analysis, and applications in mechanics and electromagnetism.
Provides a comprehensive introduction to vector and tensor analysis for engineering and physics. It covers a wide range of topics, including vector algebra, tensor analysis, and applications in mechanics and electromagnetism.
Considered a foundational text in typography, this book delves into the history, theory, and practice of the craft. It provides a comprehensive understanding of the principles that govern effective typography, making it essential for anyone seeking a deep and broad knowledge of the subject. It is widely regarded as a classic and a must-read for students and professionals alike.
While not solely about OOP, this book is fundamental for any programmer, including those using OOP. It emphasizes writing readable, maintainable, and well-structured code, which is essential for effective object-oriented design. It teaches the difference between good and bad code and how to refactor, providing practical examples and insights into SOLID design principles based on OOP concepts. This crucial reference for writing high-quality code in any object-oriented language.
Often referred to as the 'Gang of Four' book, this seminal work on software design patterns in OOP. It presents a catalog of 23 classic design patterns that provide solutions to recurring design problems. Understanding these patterns is vital for designing flexible, maintainable, and reusable object-oriented systems. is more suitable for those with a foundational understanding of OOP and valuable reference for designing complex software.
Covers a wide range of algorithms and data structures, including advanced topics such as graph algorithms and dynamic programming.
Is excellent for beginners to grasp the fundamental concepts of OOP and how to apply them. It covers basics like classes, objects, encapsulation, polymorphism, abstraction, and inheritance, as well as more advanced concepts such as composition, delegation, association, and aggregation. It helps readers think in terms of objects to solve problems and is particularly useful for those transitioning from procedural programming. This book great introductory text and can serve as a foundational resource before diving into more complex topics.
Widely considered the 'bible' of algorithms and data structures, this book provides a comprehensive and rigorous foundation. It covers fundamental data structures, including hash tables and their analysis, in detail. While mathematically dense, it is an invaluable reference for a deep understanding.
Gathers hundreds of battle-tested recipes covering network programming, memory management, data structures, and functional decorators for veteran application developers.
Provides a comprehensive overview of generative art and design, covering a wide range of topics such as algorithms, randomness, interaction, and aesthetics.
Delivers the canonical blueprint for numeric analysis from the creator of pandas, thoroughly detailing NumPy structures, data cleaning, and high-speed transformations.
Introduces clean architecture, domain-driven design, and event-driven microservices to Python developers, demonstrating repository patterns and dependency inversion.
Focuses on teaching you how to think in terms of objects, which is crucial for effective OOP. It's an excellent resource for beginners, especially those with a background in procedural languages, to understand how to build complex systems using basic OOP concepts. It's considered a must-read for anyone starting their OOP journey and complements practical coding exercises well.
Demystifies programming for practical utility, guiding beginners through real-world automation projects including web scraping, spreadsheet generation, and file audits.
Collection of essays and articles on generative art by various authors, providing a broad overview of the field and its history.
Focuses on static typing, structural subtyping, and defensive design techniques, demonstrating how modern type annotations prevent regressions in enterprise codebases.
The original Java version of the popular Goodrich and Tamassia textbook, providing a comprehensive introduction to data structures and algorithms. It covers hash tables and related concepts with detailed explanations and Java implementations. A foundational text for understanding data structures in an object-oriented context.
Provides a clear and concise introduction to vector calculus. It covers a wide range of topics, including vector algebra, differential calculus, and integral calculus.
Comprehensive guide to using Processing to create simulations of natural phenomena. It valuable resource for anyone who wants to learn more about using Processing to create their own simulations of natural phenomena.
Provides a comprehensive overview of algorithmic art and computer graphics, including generative art, and discusses the mathematical and computational foundations of these fields.
Provides indispensable guidelines and best practices for writing robust, efficient, and well-designed programs in Java, a widely used object-oriented language. It covers various aspects of Java programming through a series of actionable 'items,' explaining what to do, what not to do, and why. While Java-specific, many of the principles and patterns discussed are applicable to OOP in general. The 3rd edition is updated to cover modern Java features. This highly recommended read for Java developers looking to deepen their understanding of effective OOP.
This classic book introduces the concept of L-systems, a powerful tool for generating complex and realistic plant models, which has been widely used in generative art.
Unpacks professional testing methodologies using pytest, explaining fixture management, parameterized tests, coverage tracking, and automated CI test execution.
Demonstrates how to develop object-oriented software using a test-driven development (TDD) approach. It shows how writing tests first can guide the design of well-structured and maintainable object-oriented code. This book is highly practical and provides valuable insights into the synergy between TDD and object-oriented design. It's particularly useful for developers interested in agile methodologies and building robust software.
Offers a more accessible introduction to OOP using C++ compared to Stroustrup's book. It systematically introduces OOP principles alongside the C++ language features. It is often used as a textbook and is known for its clear explanations and numerous examples, making it suitable for beginners learning OOP with C++.
Investigates advanced software craft, detailing packaging distribution, bytecode internals, scaling architectures, and maintainability across large distributed systems.
This textbook is suitable for advanced data structures or introductory graduate-level algorithm analysis courses. It bridges the gap between foundational data structures and more advanced analysis techniques. The book provides a rigorous and in-depth analysis of algorithms and their implementation in C++.
Is essential for understanding how to improve the design of existing codebases, a common task in software development. It provides a catalog of refactorings and explains how to apply them to make code more understandable, maintainable, and less prone to bugs. While not exclusively about OOP, many refactoring techniques are applied to object-oriented code to improve its structure and design. This book is highly practical and valuable for anyone working on real-world software projects.
Focuses on practical object-oriented design principles using the Ruby programming language. It emphasizes creating flexible, maintainable, and well-designed code through clear explanations and realistic examples. While the examples are in Ruby, the design principles are broadly applicable to other object-oriented languages. This book is great for developers looking for a practical guide to writing better object-oriented code.
Focusing specifically on the challenges and opportunities of typography for digital interfaces, this book provides a critical guide to designing with type for screens. It is highly relevant for anyone working in web design, UI/UX design, or digital publishing.
Similar to the Java version, this book provides a thorough analysis of data structures and algorithms, with implementations in C++. It covers hash tables and their performance characteristics in detail, making it a valuable resource for those seeking a deep understanding in a C++ context.
Bridges volumetric point cloud analysis with Python, teaching LiDAR processing, spatial meshing, and 3D machine vision using modern scientific computing toolchains.
Offers a practical approach to algorithm design and analysis, featuring a unique catalog of algorithmic problems. It covers essential data structures, including hash tables, from an applied perspective. It useful reference for understanding how data structures are used to solve real-world problems.
Adapts the problem-solving approach of 'Data Structures and Algorithms Made Easy' to Python. It provides numerous problems and solutions related to data structures and algorithms, including those involving dictionaries and hashing, with Python code. It's a valuable resource for practicing algorithmic thinking and interview preparation in Python.
Similar to his C++ book, Lafore's book on OOP in Java provides a clear and step-by-step introduction to object-oriented concepts using the Java language. It's a good resource for beginners who want to learn OOP through practical Java examples. can serve as a solid starting point for understanding OOP fundamentals in a widely used language.
Presents a welcoming, foundational ramp into computational logic and programming, establishing syntax literacy, object modeling, and error handling for total beginners.
Focuses on a responsibility-driven approach to object-oriented design, emphasizing the roles, responsibilities, and collaborations of objects. It provides a practical methodology for designing object-oriented software by thinking about how objects interact. This book valuable resource for improving your object design skills and creating more flexible and understandable systems.
Focuses on the practical aspects of generative design, providing hands-on tutorials and examples using the Processing programming language.
Provides 50 focused exercise routines and guided breakdowns designed to build instinctive muscle memory across collections, functional pipelines, algorithms, and file I/O.
A widely used textbook for introductory typography courses, this book covers the fundamentals of type with clear explanations and visual examples. It's a solid resource for gaining a broad understanding of typographic principles.
A manifesto for modern typography, this book articulates the principles of asymmetrical layout, standardized paper sizes, and the use of sans-serif typefaces. It's a foundational text for understanding the development of 20th-century typography and its emphasis on clarity and functionality.
Dives deep into the topic of visual storytelling. It introduces the key principles and best practices for using images, videos, and infographics to engage your audience and communicate your message effectively.
Focused specifically on typography for the web, this book addresses the unique challenges and opportunities of using type in digital environments. It covers topics such as responsive design, web fonts, and performance, making it highly relevant for contemporary design practice.
Part of a multi-volume series, this book covers fundamental algorithms and data structures with implementations in C++. It provides in-depth coverage of sorting, searching, and essential data structures, including those related to dictionaries. A classic reference for understanding algorithmic concepts in C++.

Share

Help others find this course page by sharing it with your friends and followers:

Coursera Buyer Protection & Guarantee

Verified partner policies & purchase protections

Accredited University Partner
Free Trial & Audit

7-Day Free Trial & Free Audit

7-day free trial on monthly Coursera Plus subscriptions; free audit option available on most individual courses to explore video lectures and readings at no charge.

Return & Refund Policy

14-Day Refund Guarantee

14-day refund window on annual Coursera Plus subscriptions and single-course purchases prior to certificate issuance. Monthly subscriptions do not offer refunds once billed.

Buyer Protections

Verified Academic & Industry Partner

Accredited university and industry certifications (e.g. Stanford, Google, IBM, Yale), secure SSL payment processing, and verifiable digital certificate links.

Key Purchase Protections
14-day refund window on annual Coursera Plus and single courses
7-day free trial on monthly Coursera Plus subscriptions
Free course audit option for lectures and readings
Verified certificates from top universities & companies
OpenCourser Verified Partner Policy details last reviewed: 2026-10-22
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser