The fundamentals of computer software design are the principles and practices that software engineers use to create software systems.
They include:
Software architecture: The high-level structure of a software system, including its components, their relationships, and the principles that govern their interactions.
Design patterns: Reusable solutions to common software design problems.
Data structures: Ways of organizing data in memory so that it can be efficiently accessed and manipulated.
Algorithms:*Step-by-step procedures for solving problems.
Testing: The process of verifying that software meets its requirements and works correctly.