It occurs to me the method of teaching students to write programs is all wrong.
I mean I understand trying to keep it interesting by showing students potential; and yes you DO start to build a decent set of tools and techniques.
But I found, when stuck with a complication students only know how to use the front end of a hammer, and not the back.
What does this community think of student assignments that don't have a specific goal, rather ask students to achieve usage of a new tool in different ways.
Example:
Assignment1 Arrays
Q1)
a) declare a new int Array and initialize it with:
*an empty int Array of no specific size
*an empty int Array of specific size 3
*an int Array that starts out with only the values 7,3
b) which one of these doesn't work?
Q2) use the 2 Arrays that worked and change the 1st position in the array to 1, the 2nd position to 2 the 3rd position to 3, and the 4th position to 4.
Q3) which lines cause the code to throw an exception during run time? try to figure out why.
Anyway, you get the point.