I also studied CS on polish university and I feel we had the best of both worlds:
Initial programming courses were electives, where you could choose between more basic or more advanced "intro to programming" course. Basic had python, while advanced had c and c++.
Similarly logic classes were in basic and advanced groups and it was easy to choose the group you want and switch groups during course.
In fact, I was the guy who came for CS degree after never doing great at math or CS in high school and it reaaaaaally helped me to get up to speed with the others.
Initial programming courses were electives, where you could choose between more basic or more advanced "intro to programming" course. Basic had python, while advanced had c and c++.
Similarly logic classes were in basic and advanced groups and it was easy to choose the group you want and switch groups during course.
In fact, I was the guy who came for CS degree after never doing great at math or CS in high school and it reaaaaaally helped me to get up to speed with the others.