Course MI203 · Year II · Summer 2026-2027

Component-based programming

Compulsory course in Advanced programming and databases, taught by Manuella Kadar.

Overview

Lecturer
Manuella Kadar
Seminar tutor
Manuella Kadar
Type of course
Compulsory
Language of instruction
Romanian
Erasmus language
English
Domain
Computer Science - Masters
Field of study
Advanced programming and databases
Form of education
Full-time
Form of instruction
Class / Seminary
Credit awarded by
Grade
Teaching methods
Ppt presentation, discussions, case studies
Entry requirements
-

Aims

Acquiring the fundamental notions and the latest developments in the field of component-based programming in order to develop competitive programs applied in various IT fields.ds;

Gain the knowledge needed to write programs in .NET and Java Netbeans.

Analysis and design of information systems: design, development, testing, implementation and maintenance of information systems and programs, preparing the related technical documentation.

Course contents

Chapter I Definition of software components 1.1. Basic terms: component, object, module, interface, reuse 1.2. Aspects of standardization Chapter II. Components, interfaces 2.1. Interface types for components 2.2. Client-server relationship in procedural, objective and component-based systems 2.3. Components in distributed systems Chapter III. Polymorphism 3.1. The concept of data type in programming languages 3.2. Extensibility of types and independent extensibility of components 3.3. Safety in the operation of component-based systems 3.4. Evolution of interfaces and contracts Chapter IV. Ways of implementing polymorphism 4.1. Types of inheritance 4.2. Advantages and disadvantages of using inheritance 4.3. Legacy of interfaces 4.4. Delegation, composition, inheritance and polymorphism. Chapter V. Aspects of scale and granularity of components 5.1. The impact of components on software development 5.2. Components and development process 5.3. Execution of component-based systems 5.4. Maintenance of component-based systems Chapter VI. Component-based systems architecture 6.1. Ways to reuse components 6.2. Types of components in relation to how to reuse 6.3. Design templates 6.4. Application frameworks Chapter VII. Programming styles in component-based systems 7.1. Connection-oriented programming 7.2. Events and messages 7.3. Dispatcher and metaprogramming interfaces 7.4. Script languages 7.5. OMG CORBA, OMA, Oracle: JavaBeans, Enterprise Java Beans, Microsoft: COM, ActiveX, COM +, .NET

Learning outcomes

Upon completion of the course, students must possess: a) systematic knowledge about the fundamentals of component-based programming; b) clear understanding of the terms component, interface, polymorphism; c) the similarities and differences between component-based programming and object-oriented programming in terms of inheritance and composition; d) the importance of the aspects of scale, granularity and architecture of the components;

Assessment

Final evaluation Project 50% , Evaluation during semester: Projects, essays, practical works 50%

Recommended reading

Programming with components
https://msdn.microsoft.com/en-us/library/0ffkdtkf.aspx
Web, Internet, 2018 · -
Head First Java: A Brain-Friendly Guide
Sierra Kathy, Bates Bert
O reilly, O reilly, 2005 · 688
https://netbeans.org/kb/docs/java/quickstart.html 2018
Web, Web, 2018 · -