Just sharing my experience. Anyone interested to respond feel free to chime in. Arduino is just a part of their labs. They have regular labs like op-amps, diodes, transistors etc.
My students are science and engineering majors (non-ECE). Many took C or Matlab programming in the past, some in the distance past and most of them don't even touch programming in other classes. The other half never took any programming class. I created some tutorial videos and documents. After a tutorial session they started to be able to mess around with pin 13 led and character LCDs. Then a week later they finished their first mini project, a resistor sorter. They helped me sort a big box of random resistors (~150 resistors were returned to their bins). I think having an assembled shield helped a lot on the LCD. I don't think my students can survive 12 connections between the LCD and Arduino. Plus, there's two sections. With a shield, each section has their own shields so they don't have to disconnect anything after their section is over. They can always come back on a different day and finish their work. My next goal for them is to do a temperature display with min and max. Then they will work with digital inputs like buttons and eventually build an interactive temperature logger.