Component-based programming

Course Code: MI203 • Study year: II • Academic Year: 2024-2025
Domain: Computer Science - Masters • Field of study: Advanced programming and databases
Type of course: Compulsory
Language of instruction: Romanian
Erasmus Language of instruction: English
Name of lecturer: Manuella Kadar
Seminar tutor: Manuella Kadar
Form of education Full-time
Form of instruction: Class / Seminary
Number of teaching hours per semester: 48
Number of teaching hours per week: 4
Semester: Summer
Form of receiving a credit for a course: Grade
Number of ECTS credits allocated 8

Course 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 Entry Requirements:

-

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

Teaching methods:

Ppt presentation, discussions, case studies

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;

Learning outcomes verification and assessment criteria:

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

Recommended reading:

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