Teaching and learning computer programming is challenging for many undergraduate first-year computer science students. During introductory programming courses, novice programmers need to learn some basic algorithms, gain algorithmic thinking, improve their logical and problem-solving thinking skills, and learn data types, data structures, and the syntax of the chosen programming language. In literature, we can find various methods of teaching programming that can motivate students and reduce students’ cognitive load during the learning process of computer programming, e.g., using robotic kits, microcontrollers, microworld environments, virtual worlds, serious games, interactive animations, and visualizations. In this paper, we focus mainly on algorithm visualizations, especially on the different models of data structures that can be effectively used in educational visualizations. First, we show how a vector (one-dimensional array), a matrix (two-dimensional array), a singly linked list, and a graph can be represented by various models. Next, we also demonstrate some examples of interactive educational algorithm animations for teaching and learning elementary algorithms and some sorting algorithms, e.g., swapping two variables, summing elements of the array, mirroring the array, searching the minimum or maximum of the array, searching the index of minimum or maximum of the array, sorting elements of thearray using simple exchange sort, bubblesort, insertion sort, minsort, maxsort, quicksort, or mergesort. Finally, in the last part of the paper, we summarize our experiences in teaching algorithmization and computer programming using algorithm animations and visualizations and draw some conclusions.