The need for building large scale Software has been increased in the last two decades. Nowadays, Software engineers are less likely to design data structures and algorithms from scratch. They are required to build systems from library and framework components. The Software System Design course aims to teach students the main concepts related to the construction of software systems. The course covers technical topics such as concepts of design for complex systems, object oriented programming, UML notation, among others.