One of the core topics in my Design and Implementation of Software course at Reykjavik University is design patterns.
Design patterns are among the most powerful methods for building large software system. Patterns provide well-know solutions to reoccurring problems that developers are facing. There are several benefits of using patterns if applied correctly. Although design patterns are only over decade old, the science of patterns is becoming established, allowing for consistent communication. By using well-known patterns reusable components can be built in frameworks. Providing frameworks for reusability and separation of concerns is key to software development today.
This article appeared in Icelandic magazine Tölvumál.