Building a Turtle Graphics Application with Design Patterns
Flatten the Cost-of-Change Curve in Software Development!
Ready to take your programming skills to the next level?
Join Francesco Cirillo for a hands-on course on building a Turtle Graphics app with advanced design patterns and techniques.
Unleash your creativity and learn to build scalable and maintainable software.
Why Turtle Graphics?
Turtle graphics is an educational programming tool that has been around since the 1960s.
The concept was developed by Seymour Papert,
a computer scientist and pioneer in the field of artificial intelligence.
Papert's idea was to create a programming language that would allow children
to explore mathematical and geometric concepts in a visual and intuitive way.
The result was Logo,
a simple programming language that could be used to control a virtual turtle.
By issuing commands to the turtle, such as "move forward," "turn left," and "pen up,"
children could create complex patterns and shapes on the screen.
Logo quickly became popular in schools and universities as a way to teach children about computer programming and geometry.
In this course, you will learn how to build a turtle graphics application from scratch
and apply good design practices, including software design patterns,
to create a well-structured, maintainable, and extensible software system.
By building a turtle graphics application, you will gain experience with concepts
such as state management, geometric transformations, and user input handling.
You'll also leverage advanced design patterns like the Model-View-Controller (MVC), Interpreter, State, Command, and other patterns
to create a flexible and scalable architecture, giving you a solid foundation in software design.
Your learning goals
Studying HotDraw can offer a number of benefits for individuals interested in software design, including:
- Combine multiple design patterns: Learn how to apply design patterns such as the Model-View-Controller (MVC), Interpreter, State, and Command to create a flexible and scalable architecture.
- Develop a programming language: Learn how to create a simple programming language for the turtle graphics application to automate repetitive tasks and enable new possibilities.
- Gain experience with user input handling: Develop skills in handling user input through the graphical user interface to provide a better user experience.
- Familiarize with geometric transformations: Learn how to manipulate the turtle's movement and orientation on the canvas, providing a foundation for advanced 2D graphics.
- Practice state management: Learn how to manage application state to create complex programs with multiple features while maintaining a clear separation of concerns.
Building a Turtle Graphics: The Turtle Moves