COURSE DESCRIPTION AND APPLICATION INFORMATION

Course Name Code Semester T+A+L (hour/week) Type (C / O) Local Credit ECTS
Software Design Project MTE 391 Fall-Spring 03+00+02 Elective 4 6
Academic Unit: Mechatronics Engineering Department
Mode of Delivery: Face to face
Prerequisites: MTE 291
Language of Instruction: English
Level of Course Unit: Undergraduate
Course Coordinator: - -
Course Objectives: The objective of this course is to provide students with a thorough understanding of both basic and advanced concepts in C++ programming, with a focus on object-oriented programming principles. The course aims to equip students with the necessary skills to apply these concepts in the field of mechatronics engineering, enabling them to design and develop complex systems that integrate hardware and software components. By the end of the course, students will have a solid foundation in C++, be proficient in applying its features in engineering solutions, and be prepared to tackle real-world engineering challenges with innovative and efficient software solutions.
Course Contents: Overview of C++ syntax and basic language features, fundamental programming concepts in C++, const qualifiers, function prototyping, function overloading, analysis of C++ building blocks, understanding pointers, memory allocation/deallocation, practical applications in mechatronic engineering, introduction to references in C++, usage in function arguments and return values, encapsulation, information hiding, class features, member functions, access control, implementing single inheritance, exploration of base and derived classes, inheritance implications, polymorphism in C++, virtual functions, runtime binding, v-table concepts, defining and utilizing abstract classes, implementing interfaces, up/down casting in inheritance hierarchies.
Learning Outcomes of the Course Unit (LO):
  • 1- Develop a strong foundation in C++ basics, including syntax, programming concepts, and critical non-object-oriented features.
  • 2- Gain expertise in pointers and references, crucial for effective memory management and software development in mechatronic systems.
  • 3- Master class-related concepts like encapsulation, information hiding, and class structures, vital for object-oriented design.
  • 4- Acquire the ability to implement and understand single inheritance, enhancing capabilities in designing complex software systems.
  • 5- Develop skills in polymorphism and dynamic binding, essential for creating flexible and efficient object-oriented designs.
  • 6- Learn to effectively use abstract classes and interfaces, key for advanced and flexible software design and implementation in mechatronics engineering.
Planned Learning Activities and Teaching Methods: Classroom discussion, computer laboratory work, project presentations


WEEKLY SUBJECTS AND RELATED PREPARATIONS

WeekSubjectsRelated Preperation LO
1 Introduction to Basic C++ Assumptions Textbook Ch 1 1
2 Essential Language Features in C++ Textbook Ch 2 1
3 Indirect Addressing – Pointers Textbook Ch 3 2
4 Indirect Addressing – References Textbook Ch 4 2
5 Classes Textbook Ch 5 3
6 Implementing Hierarchies with Single Inheritance Textbook Ch 6 4
7 Dynamic Binding through Polymorphism Textbook Ch 7 5
8 Abstract Classes Textbook Ch 8 6
9 Advanced Concepts in OOP Textbook Ch 5-8 3,5,6
10 In-Depth Exploration of Object-Oriented Programming Principles Textbook Ch 1-8 1,2,3,4,5,
11 Advanced Inheritance and Polymorphism Textbook Ch 6-7 4,5
12 Abstract Classes and Interface Design Textbook Ch 8 3,6
13 Integrating Advanced OOP Concepts Textbook Ch 1-8 1, 2, 3, 4
14 Course Review and Synthesis Textbook Ch 1-8 1, 2, 3, 4


REQUIRED AND RECOMMENDED READING

Kirk, D. R. (2021). Demystified Object-Oriented Programming with C++. Packt Publishing


OTHER COURSE RESOURCES



ASSESSMENT METHODS AND CRITERIA

Semester RequirementsNumberPercentage of Grade (%)
Project 4 80
Quizes 2 20
Total: 6 100


WORKLOAD

EventsCountDuration (Hours)Total Workload (hour)
Course Hours14228
Laboratory14228
Project41976
Quizes21020
Total Workload (hour):152


THE RELATIONSHIP BETWEEN COURSE LEARNING OUTCOMES (LO) AND PROGRAM QUALIFICATIONS (PQ)

# PQ1 PQ2 PQ3 PQ4 PQ5 PQ6 PQ7 PQ8 PQ9 PQ10
LO1                    
LO2                    
LO3                    
LO4                    
LO5                    
LO6