Project Type: University lecture

12. Startup fundraising

Understand the fundamentals of startup fundraising, valuation, investors, and risk profiles.

4. Business models

Understand what a business model is and how to design one using the business model canvas.

3. Software vendors

Understand software vendors, their business models, and how they differ from consultancies.

2. Software products

Understand software products as structured into core, basic, and whole product.

9. Object creation

Learn how to wisely choose between design alternatives using the important example of object creation.

8. Type objects

Understand the type object pattern and learn how to handle model-level vs. instance-level information.

7. Design patterns

Understand design patterns and learn how to use them in system design.

6. Value objects

Understand the fundamental difference between objects and values and learn how to implement value types efficiently.

4. Design by contract

Learn design by contract to better define the relationship between class (interfaces) and their clients.

2. Class and interface design

Understand the difference between abstract and implementation state and learn how to design and work with classes and interfaces.