In my not so humble opinion, a first programming class should be structured. I think the student ends up having a deeper understanding of what is going on behind the scenes when Java lets you import a hash table and populate it at will if you have written one in C, for example. I have also seen in my co-workers, who have done nothing but OO, not being able to solve simple problems with checking on return values from functions because they are used to error objects and the like. OO is great, and makes a lot of things very nice, but I for one advocate the use of a structured language as a first programming experience.
I am an artist. I paint. I draw. I make a lot of "stuff" in general. I am also a programmer. Making a painting and making a program share more similarities than some may think. There is an algorithm. There is a starting point. When making a painting, the details don't get done first. The background, the rough outlines, the sketching and the study need to be done before the eyelashes of the subject. This is similar to the way software is written. The core of the code is usually done first. The backbones of the objects are written before they are enhanced or used in most cases. However, in my opinion, visual art and programming differ because I do them for different reasons. I may paint something to express an emotion. I code something for a more practical purpose...to get a job done or to make a customer's life easier. However, practicality and beauty cross paths quite often in real life, as well as in code. Would you rather have a plain white pitcher or one painted with stripes or floral patterns? Would you rather sleep on unbleached cotton sheets or your favorite plaid ones? Would you rather write and use code that simply gets the job done, or design an elegant system that performs efficiently, accurately, and is enjoyable to use?
In my not so humble opinion, a first programming class should be structured. I think the student ends up having a deeper understanding of what is going on behind the scenes when Java lets you import a hash table and populate it at will if you have written one in C, for example. I have also seen in my co-workers, who have done nothing but OO, not being able to solve simple problems with checking on return values from functions because they are used to error objects and the like. OO is great, and makes a lot of things very nice, but I for one advocate the use of a structured language as a first programming experience.
I am an artist. I paint. I draw. I make a lot of "stuff" in general. I am also a programmer. Making a painting and making a program share more similarities than some may think. There is an algorithm. There is a starting point. When making a painting, the details don't get done first. The background, the rough outlines, the sketching and the study need to be done before the eyelashes of the subject. This is similar to the way software is written. The core of the code is usually done first. The backbones of the objects are written before they are enhanced or used in most cases. However, in my opinion, visual art and programming differ because I do them for different reasons. I may paint something to express an emotion. I code something for a more practical purpose...to get a job done or to make a customer's life easier. However, practicality and beauty cross paths quite often in real life, as well as in code. Would you rather have a plain white pitcher or one painted with stripes or floral patterns? Would you rather sleep on unbleached cotton sheets or your favorite plaid ones? Would you rather write and use code that simply gets the job done, or design an elegant system that performs efficiently, accurately, and is enjoyable to use?