The course "Algorithmics and Data Structures 2" serves as a continuation of the foundation laid in the first semester's course. While the initial course introduced students to the basics of algorithmics and programming, covering fundamental concepts like basic instructions, conditional structures, loops, arrays, and records, this second part aims to deepen their understanding. Students will focus on structuring their algorithms and programs using subprograms, and explore more efficient data structures such as linked lists, stacks, queues, and files. The objective is to provide them with a comprehensive toolkit and the expertise needed to make informed decisions about when and how to use these advanced data structures in practical programming scenarios.