These projects focus on the study and practical implementation of abstract data types and the associated data structures used in applications. It covers essential abstract data types such as dynamic arrays, linked lists, stacks, queues, and dictionaries, and explores the data structures, including arrays, linked lists, binary trees, and hash tables, used to build and operate these data types. The core purpose of the project was to develop essential skills in designing applications based on these abstract data types, enabling the effective manipulation of data stored in diverse data structures. Additionally, the project sought to foster the ability to select the most suitable abstract data types and data structures for specific software applications. Finally, it equipped me with the expertise to design and implement algorithms for data processing effectively.