One of the big changes has been the background knowledge of the students. 30 years ago, one would expect that many students coming into class had never touched a computer before and almost no one owned a computer home.
That has changed over time. Now, it is hard to imagine a student who hasn't spent many hours on a computer prior to arriving at college. They have gotten used to highly graphical and intuitive interfaces. They have high bars for what they expect computer programs to do. 30 years ago, if you wrote a program to print something you were impressed with yourself.
Now that simply isn't the case. They have much higher expectations. Thanks to improvements in languages and libraries, it is possible to get students going things that are graphical early on, but it causes some challenges in how you do the instruction. You still want to focus on basic principles. Early on, that means logic and problem solving. However, students must spend time learning elements of the libraries to do the things they actually find interesting.