What is HTML?

HTML (Hypertext Markup Language) is a markup language used to create web pages. Along with CSS and JavaScript, HTML is a fundamental technology, used to create visually engaging, dynamic web pages and user interfaces for web applications. Do not make mistake, HTML is not a programming language, it's a markup language.

What is an algorithm?

In general, an algorithm is a sequence of well-defined instructions for solving a particular problem. Originally, algorithms were part of mathematics – the word “algorithm” comes from the Arabic writer Muhammad ibn Musa al-Khwarizmi, – but currently it is usually associated with computer science and programming.

What is .NET Framework?

.NET Framework is a software framework developed by Microsoft, which significantly simplifies software development. It includes a large class library known as Framework Class Library (FCL) and provides language interoperability across several programming languages, which means each one of them can use code written in any of other languages. Programs written for .NET Framework execute in a software environment, known as Common Language Runtime (CLR), an application virtual machine. This unified framework offers a number of benefits to developers including code reuse, simplified debugging, and improved security. FCL and CLR together constitute .NET Framework.

What are advantages of composition and aggregation over inheritance?

Object composition in OOP refers to combining two or more different classes with purpose of creating new, more complex class. In case of composition, an object "owns" another object, rather than just use it, which means if main object will be destroyed, all internal objects should be destroyed as well. In case of aggregation, which is a closely related concept to composition, you can say an internal object is a part of the main object, but is still independent and can exists on its own.

How prototype-based OOP is different from class-based?

Prototype-based programming is a style of object-oriented programming in which inheritance is implemented via process of cloning existing objects that serve as prototypes. Read more about prototype-based OOP here. In prototype-based languages objects inherit directly from other objects, in more classical class-based OOP languages inheritance is based around "parent-child" relationship between classes.