PDA

View Full Version : Programming Classes - Tell us your horror stories



Note360
July 30th, 2007, 02:22 PM
Any way I figured I mine as well start this thread.

So, it was last year in my freshman year of highschool where i took an AOIT (Academy of Information Technology) 'Strategies for Success' course. The teacher was a great guy and we got along, and he used ubunut, but their where some problems with him. For one he couldnt control the class. I know IT is meant to be self learned more or less, but if you are going to run a class at least be able to stop them from running Flash Games. (this is what every one except me did all year). So we get to Java, he asks me for a free tutorial so i suggest Thinking Like a Computer Scientist in Java (defiantly suggest Python first, but he says it is a peice of **** that no one should use so i step down. Later I suggest Ruby and he wasnt so critical. Maybe he is just a hype follower). However, I was the only one who progressed past chapter 2 or 3. Most of the kids couldn't even figure out how to compile or use NetBeans. It was horrible... I learnt more on my own that year as I would come home and study what we where learning in class (eg for Databases I created a DB driven website). I dropped the course to open up a period for Music. Something I'd have trouble learning on my own.

LaRoza
July 30th, 2007, 02:29 PM
Any way I figured I mine as well start this thread.

So, it was last year in my freshman year of highschool where i took an AOIT (Academy of Information Technology) 'Strategies for Success' course. The teacher was a great guy and we got along, and he used ubunut, but their where some problems with him. For one he couldnt control the class. I know IT is meant to be self learned more or less, but if you are going to run a class at least be able to stop them from running Flash Games. (this is what every one except me did all year). So we get to Java, he asks me for a free tutorial so i suggest Thinking Like a Computer Scientist in Java (defiantly suggest Python first, but he says it is a peice of **** that no one should use so i step down. Later I suggest Ruby and he wasnt so critical. Maybe he is just a hype follower). However, I was the only one who progressed past chapter 2 or 3. Most of the kids couldn't even figure out how to compile or use NetBeans. It was horrible... I learnt more on my own that year as I would come home and study what we where learning in class (eg for Databases I created a DB driven website). I dropped the course to open up a period for Music. Something I'd have trouble learning on my own.

I am entirely self taught also. If a teacher would bash a language for no apparent reason, it must not be a good teacher. Although I am a fan of Python, I would never bash Perl, or Ruby even though I don't use them as much.

If you want to learn by yourself, my wiki has some helpful links for various free books and tutorials for many languages. Here (http://laroza.pbwiki.com) is the link, it is also in my sig.

As a side note, people who bash languages almost always know nothing about them. I have heard the most horrid things about assembly, lists of complaints, but they never even saw assembly code! (I am learning assembly, right now.)

Good luck learning, and have fun!

Note360
July 30th, 2007, 02:41 PM
ive already been learning for awhile. If I didnt explain that, but really programming is meant to be learnt on your own. Im not sure how it can be taught. It is a weird thing. It also helps you think logically better.

vexorian
July 30th, 2007, 02:49 PM
I admire your teacher.

LaRoza
July 30th, 2007, 02:49 PM
ive already been learning for awhile. If I didnt explain that, but really programming is meant to be learnt on your own. Im not sure how it can be taught. It is a weird thing. It also helps you think logically better.

I agree, no amount of classes will teach programming. Programming is both an art and a science.

pmasiar
July 30th, 2007, 06:04 PM
I agree, no amount of classes will teach programming. Programming is both an art and a science.

Let's not start flamewars, but programming is neither.

Science has exact rules, and experiments to prove or disprove disputes. Programming lacks those. (you can time different implementations, but you cannot *prove* that ie OOP is good/bad: only that for most people OOP seems facilitate solving problems).

Art is associated with in-born talent (and no amount of study can teach you that), while value of art is in the mind of the observer. Programming is teachable (if not all, to big part of the population) most often activity to solve real-world problem.

Programming most closely resembles craft: you learn it by doing it, and by observing the work of the master, and you can progress from beginner to apprentice to master, as skills in your craft increase. So, we programmers are craftsmen of new age! :-)

So, classes are helpful, but you cannot learn from classes alone, you will learn only by doing, by coding. Class, where you don't code, and your code is not analyzed by your guru, and point you possible improvements, is waste of time.

LaRoza
July 30th, 2007, 06:13 PM
Let's not start flamewars, but programming is neither.

Science has exact rules, and experiments to prove or disprove disputes. Programming lacks those. (you can time different implementations, but you cannot *prove* that ie OOP is good/bad: only that for most people OOP seems facilitate solving problems).

Art is associated with in-born talent (and no amount of study can teach you that), while value of art is in the mind of the observer. Programming is teachable (if not all, to big part of the population) most often activity to solve real-world problem.

Programming most closely resembles craft: you learn it by doing it, and by observing the work of the master, and you can progress from beginner to apprentice to master, as skills in your craft increase. So, we programmers are craftsmen of new age! :-)

So, classes are helpful, but you cannot learn from classes alone, you will learn only by doing, by coding. Class, where you don't code, and your code is not analyzed by your guru, and point you possible improvements, is waste of time.
I guess it is just semantics, but programming can be both.

As art is an "in-born" talent, so is Programming, ever notice how programmer's personalities are not in the same dispersement as the general population? There are statistics, but I am at school and don't have access to my books, so you'll have to have a little faith. :)

You can teach programming, true, but you cannot make someone a programmer.

Some would say a craft is an art, and perhaps your analogy is better than my statement, but I would still say the programming is and art and science.

Note360
July 30th, 2007, 07:39 PM
well....

my definition of art is different than yours

Art - The act of creating something with out the sole intent of marketing or selling it but for personal gain. It doesn't have to be inborn people can get better at art. Work is allways more important than talent. Art is well creating something with a deeper part of you. Expressing emotion and for many programming is an expression of emotion as is math and science. So really an art can be anything.


Also most people in programming classes dont understand what it is. They jsut thing oooh games are made by programmers sooo YAY PROGRAMMING WOOT WOOT.

brooksbp
July 30th, 2007, 11:28 PM
Well... all learning is learning on your own. You can take a class, have the teacher present material, but you still have to do the work to make yourself understand. Nobody is in control of your mind, you have to 'see' it for yourself. And... that's true for any learning.

With that stated, I also think that it's important to empasize that Computer Science != Software Engineering. Well... to a degree.

Anyways. The worst thing I hate to see is coders bash ****. Usually coders are pretty smart (hell, we like challenges, puzzles, code, etc... or why else would we be doing this?). So it sucks to see a lack of humbleness in coders. You should be smart enough to shut your mouth and absorb with an open mind.

Lord Illidan
July 30th, 2007, 11:36 PM
You'll not like what I had for my GCSE course..

We were learning pascal. The teacher's method of "teaching" us the language was to assign some homework, then the day after, write it all on the board.

Now, imagine a program full of GOTO statements, twice as large as it should be...(and we had already covered loops in the syllabus). Sometimes, I used to give the teacher my homework, and he'd copy it and write it on the board...what an embarassment.

Then, the "project". I had learned how to use Graph mode...something we should cover in O level...Needless to say, my classmates soon caught on the fact that they could get easy marks, and soon a battle was going over the LAN, with people copying and spreading code everywhere....what fun!

Note360
July 31st, 2007, 01:42 AM
guh thats what people did to me. I had a few kids try to steal my usb stick. Luckily I commented everything up so they got in trouble when they uploaded it.

My teacher would say somethign irrelivent like "read" then go in his littel room for the whole period, maybe coming out to have a discussion with me about how to set up servers (which he knows more than em about bc he is Cisco) he wasnt all that bad bc he did let me set up a linux server in the school, but the hardrive had some weird errors and it didnt work, soo.

xtacocorex
July 31st, 2007, 01:52 AM
Most of my programming class horror stories were mainly watching other people screw up and asking me to debug their FORTRAN codes.

Note360
July 31st, 2007, 01:54 AM
Most of my programming class horror stories were mainly watching other people screw up and asking me to debug their FORTRAN codes.

thats the fun part though. but i dont do debuging for others. Ill give suggestions but i wotn do it my self.

vexorian
July 31st, 2007, 03:28 AM
Most of my programming class horror stories were mainly watching other people screw up and asking me to debug their FORTRAN codes.

Most of my horror stories involve seeing other people not get vB or Java at all ... That's scary.

Sayers
July 31st, 2007, 03:36 AM
I'm taking drafting next yer which I'll more than likely regret. I also don't want to take VB next yer because the furtherset they get is OOP on the second year!!!!

bbzbryce
July 31st, 2007, 07:50 AM
Any way I figured I mine as well start this thread.

So, it was last year in my freshman year of highschool where i took an AOIT (Academy of Information Technology) 'Strategies for Success' course. The teacher was a great guy and we got along, and he used ubunut, but their where some problems with him. For one he couldnt control the class. I know IT is meant to be self learned more or less, but if you are going to run a class at least be able to stop them from running Flash Games. (this is what every one except me did all year). So we get to Java, he asks me for a free tutorial so i suggest Thinking Like a Computer Scientist in Java (defiantly suggest Python first, but he says it is a peice of **** that no one should use so i step down. Later I suggest Ruby and he wasnt so critical. Maybe he is just a hype follower). However, I was the only one who progressed past chapter 2 or 3. Most of the kids couldn't even figure out how to compile or use NetBeans. It was horrible... I learnt more on my own that year as I would come home and study what we where learning in class (eg for Databases I created a DB driven website). I dropped the course to open up a period for Music. Something I'd have trouble learning on my own.

That's just high school for you. Most of the kids don't care, and frankly if I could do it over again I'd care a bit less. Honestly don't expect much out of high school teachers, they know enough to teach their syllabus but most of the time they don't know much more, of course there are exceptions. If you're interested in Computer Science then stick with what you're doing, but you'll find the first few college courses you're required to take to be very slow. However, once you realize Computer Science isn't about Programming, and take more advanced courses you'll understand the need for instruction.

pofigster
July 31st, 2007, 07:58 AM
I took a course in SAS - it was entirely self taught. I did well enough on the final to get a job working for the Statistics dept (my degree) at my university doing other programming. In languages I'd never learned before. It's fun.

But I really don't like SAS. It doesn't flow, it doesn't feel like a language. And I know a fair amount about it. I'd rather use something else to accomplish the same end.

Note360
July 31st, 2007, 04:04 PM
That's just high school for you. Most of the kids don't care, and frankly if I could do it over again I'd care a bit less. Honestly don't expect much out of high school teachers, they know enough to teach their syllabus but most of the time they don't know much more, of course there are exceptions. If you're interested in Computer Science then stick with what you're doing, but you'll find the first few college courses you're required to take to be very slow. However, once you realize Computer Science isn't about Programming, and take more advanced courses you'll understand the need for instruction.


Yeah im looking to drop my lunch Senior or Juniour year to take a Computer Science course.

bbzbryce
July 31st, 2007, 04:09 PM
I'm taking drafting next yer which I'll more than likely regret. I also don't want to take VB next yer because the furtherset they get is OOP on the second year!!!!

Make sure the class you're looking to take will count for more than just college credit at the colleges you wish to attend. It's possible they'll just give you units but you'll still have to take their entry level courses which will be even more boring if you've already taken a similar course before.

[h2o]
July 31st, 2007, 06:25 PM
I agree, no amount of classes will teach programming. Programming is both an art and a science.
I beg to disagree. I have had enormously much help from having read a few programming courses at the university.
Now, they might have been a bit different since we were not struggling with syntax but instead going through Lisp, Ada and Java to get a feel for different types of programming.

Also, the course in Algorithms and Data structures and optimization has really helped me in my current summer work.

The programming courses I took before attending the university was kind of crap though, but I am not so arrogant to say they did not teach me anything. Because they most certainly did.

I don't see how programming is any different, learning-wise, than any other subject.

LaRoza
July 31st, 2007, 06:31 PM
;3111029']I beg to disagree. I have had enormously much help from having read a few programming courses at the university.
Now, they might have been a bit different since we were not struggling with syntax but instead going through Lisp, Ada and Java to get a feel for different types of programming.

Also, the course in Algorithms and Data structures and optimization has really helped me in my current summer work.

The programming courses I took before attending the university was kind of crap though, but I am not so arrogant to say they did not teach me anything. Because they most certainly did.

I don't see how programming is any different, learning-wise, than any other subject.

Did you want to learn? Would you have learned as much if you didn't want to?

I don't mean classes, books, and tutorials won't help; they most certainly do, but in the end, the individual must want to learn, and have the drive, like you, it seems.

I have seen people say they want to be programmers, but do not want to learn!

Learning-wise, programming is simple, learn the logic, then learn the syntax, then learn how to use it. But if this simple process is all there was too it, everybody who had the slightest interest would be programming.

Programming is more than writing source code and compiling; languages, editors and CPU's are just tools.

slavik
August 1st, 2007, 05:46 AM
I learned more about OS design and how some things in an OS work in my workstation programming class (hands on type approach) than in my OS class (theoretical, even though coding assignments should've been there).

gl0wst1ckn1nja
August 1st, 2007, 05:53 AM
ap comp sci

i knew more than the teacher so he got lazy and made me teach the class sometimes

[h2o]
August 1st, 2007, 08:24 AM
Did you want to learn? Would you have learned as much if you didn't want to?

I don't mean classes, books, and tutorials won't help; they most certainly do, but in the end, the individual must want to learn, and have the drive, like you, it seems.
Still, I think this is true for any subject. I fail to see where programming is different.


Learning-wise, programming is simple, learn the logic, then learn the syntax, then learn how to use it. But if this simple process is all there was too it, everybody who had the slightest interest would be programming. Yes, programming is quite easy, if you look at just the coding. Just like hammering a nail in a piece of wood is quite easy, but building a house is not. The hard part with programming is, in my opinion, the problem solving. What tools (algorithms, methods or whatever) should you use to solve the problem at hand.

That, and planning ahead, which is something I really should do more :)

CalculatorMuzZy
August 1st, 2007, 09:23 AM
My biggest horror in singular year of programming classes was a particular problem we had to solve. We had to write a program to generate a solution to the Towers of Hanoi puzzle. The actualy writing of the program wasn't all too complicated, but to this day. I still do not understand the code. We were writing it in C++.
here is the sample of code i found online that looks most similar to my program. (i don't know how to copy and paste out of my compiler.)

void solveHanoi (int n , char pegFrom = ''x'' , char temp = ''y'' , char pegTo = ''z'' );
int main()
{
char discs[2];
do
{
cout << "Enter the number of discs." << endl;
cin >> discs ;
}

while (!atoi(discs));
int number = atoi(discs);
solveHanoi(number);
getch();
return 0;
}
void solveHanoi(int n , char from , char temp, char to)
{
if (n==1)
cout << from << " > " << to << endl;
else
{
solveHanoi ((n-1), from, to, temp);
cout << from << " > " << to << endl;
solveHanoi ((n-1), temp, from, to);
}
return;
}

the line highlighted in RED is still vastly confusing to me. I understand recursion, but i do not understand how the computer is able to reach that line, or that lines functionality if it is sent back to the beginning by the first recursive call in the function.
I must admit that i got that oh so neccesary line of code from a friend after discussing the matter for days, but it still escapes me how it works in the program.
if someone could clear up how the function could be doubly recursive as shown in the example, i would be very happy. I finished the class over two months ago and still cant seem to figure it out.

lisati
August 1st, 2007, 09:29 AM
I took a course in SAS - it was entirely self taught. I did well enough on the final to get a job working for the Statistics dept (my degree) at my university doing other programming. In languages I'd never learned before. It's fun.

But I really don't like SAS. It doesn't flow, it doesn't feel like a language. And I know a fair amount about it. I'd rather use something else to accomplish the same end.

I did SAS back in the 1980s....went to a conference one time. The thing that sticks in my mind is that I got horribly drunk there.

LaRoza
August 1st, 2007, 12:33 PM
;3114538']
That, and planning ahead, which is something I really should do more :)
Me too...:)

slavik
August 1st, 2007, 04:02 PM
My biggest horror in singular year of programming classes was a particular problem we had to solve. We had to write a program to generate a solution to the Towers of Hanoi puzzle. The actualy writing of the program wasn't all too complicated, but to this day. I still do not understand the code. We were writing it in C++.
here is the sample of code i found online that looks most similar to my program. (i don't know how to copy and paste out of my compiler.)

void solveHanoi (int n , char pegFrom = ''x'' , char temp = ''y'' , char pegTo = ''z'' );
int main()
{
char discs[2];
do
{
cout << "Enter the number of discs." << endl;
cin >> discs ;
}

while (!atoi(discs));
int number = atoi(discs);
solveHanoi(number);
getch();
return 0;
}
void solveHanoi(int n , char from , char temp, char to)
{
if (n==1)
cout << from << " > " << to << endl;
else
{
solveHanoi ((n-1), from, to, temp);
cout << from << " > " << to << endl;
solveHanoi ((n-1), temp, from, to);
}
return;
}

the line highlighted in RED is still vastly confusing to me. I understand recursion, but i do not understand how the computer is able to reach that line, or that lines functionality if it is sent back to the beginning by the first recursive call in the function.
I must admit that i got that oh so neccesary line of code from a friend after discussing the matter for days, but it still escapes me how it works in the program.
if someone could clear up how the function could be doubly recursive as shown in the example, i would be very happy. I finished the class over two months ago and still cant seem to figure it out.

once in the recursion n is 1 (every time you call solveHanoi recursively, n is 1 less in the call than what you got, so it eventually returns, basically, you are building a tree :)

Lary Grant
August 1st, 2007, 04:45 PM
My first programming class was in BASIC on a TRS-80 (http://en.wikipedia.org/wiki/TRS-80) in high school. The school got the TRS-80 when I was in my sophomore year, and that 1 TRS-80 was supposed to serve the whole high school. You had to sign up for time on it on a little notebook. The only way to save your program was on a cassette tape, and it took about 5 minutes to save or load even the shortest BASIC program using the cassette. Most of the students had a hard time, but there were a handful who ran rings around the teacher (who was really a Math teacher, also learning programming, about 1 chapter ahead of the class) and were teaching themselves how to write games in assembly language, while the rest of the class was trying to grasp the FOR-NEXT loop in BASIC.

There was no text editor or IDE like you are used to today... you had to type in each line of the program, preceded by a line number and the screen just scrolled up as you did it (sort of like the Linux shell window). If you wanted to insert a line between 2 existing lines, you just made up a line number between the 2 existing lines, and the BASIC interpreter would execute it in the right order when you gave the RUN command.

lisati
August 2nd, 2007, 11:29 PM
Thanks to the people who mentioned the tower of hanoi problem - I must say that the code given looks a lot clearer with proper variable names than a Fortran version I came across many years ago.....

I'd wish to suggest that a change to the code is probably in order: instead of testing for a "count" ==1, maybe a test for "count" <=1. Otherwise, what would happen if some clown calls the function with a ridiculous value of 0? We could end up with a horror story about infinte loops or stack overflows or some such undesirable feature.

pmasiar
August 3rd, 2007, 12:22 AM
what would happen if some clown calls the function with a ridiculous value of 0?

What do you mean *if*? Of course someone *will* call it with wrong value, question is not *if* but *when*.

Programming is competition between programmers creating better (more foolproof) programs and universe creating better fools. So far universe is winning :-)