Allegro.cc - Online Community

Allegro.cc Forums » Off-Topic Ordeals » quality of education

This thread is locked; no one can reply to it. rss feed Print
 1   2 
quality of education
Neil Black
Member #7,867
October 2006
avatar

Dustin Dettmer said:

She told me I should start with the basics and work my way up, and that she would fail me if I did that.

My teacher let us do stuff like that. We had a project, near the middle of the year, and my group (with my knowledgeable guidance) made a text adventure that included a map. It even had a little "you are here" icon.

Later in the year, not for class but just on my own, I made a Simon game, just to prove to my teacher that you can use the mouse in QBASIC.

EDIT:
My main interest in programming is games, although I don't think I'll find a job in the game industry right out of college. I'm planning on getting a fairly good job for an inexperienced programmer who's just finished school, and keeping my eye out for the job I want.

HoHo
Member #4,534
April 2004
avatar

Quote:

One day the teacher argued back that if he thinks he can do better then he should teach the class... my friend was tempted to actually do so.

I actually did that. I tought my fellow classmates and my computer teacher for a couple of months in 12'th grade ;D

In general I agree, it is almost impossible to learn anything programming related at school. Only thing I learned was how to use QBasic built-in help, from there on I was way ahead of the class and in a couple of months I knew a lot more than my teachers. In university we had a C++ exam where you had to parse some XML-like file and do some DB like actions with it. You had 5 hours to code it, my program was done in 1h and I spent 1.5h commenting the thing because I thought there will be more tasks coming. When the professor finally saw my program he didn't even ask me to run it, he just sent me away without asking any questions and gave me an 'A'. Probably because I threw everything I knew about STL into that program ;D

__________
In theory, there is no difference between theory and practice. But, in practice, there is - Jan L.A. van de Snepscheut
MMORPG's...Many Men Online Role Playing Girls - Radagar
"Is Java REALLY slower? Does STL really bloat your exes? Find out with your friendly host, HoHo, and his benchmarking machine!" - Jakub Wasilewski

Neil Walker
Member #210
April 2000
avatar

Quote:

Those who can, do. Those who can't, teach. ^_^

Well, I wouldn't mind teaching at the Danish school where they having a stripping contest to get the best canteen seat.

http://blog.tv2.dk/blogzilla/entry94529.html

Neil.
MAME Cabinet Blog / AXL LIBRARY (a games framework) / AXL Documentation and Tutorial

wii:0356-1384-6687-2022, kart:3308-4806-6002. XBOX:chucklepie

Myrdos
Member #1,772
December 2001

Quote:

totally way better than that David McCallum guy you shouldn't hire instead of me.

A futile effort. No-one can resist the super Dave.*

*With the possible exception of all those companies I sent resumes to. But apart from them, NO ONE!

__________________________________________________

Johan Halmén
Member #1,550
September 2001

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Years of thorough research have revealed that the red "x" that closes a window, really isn't red, but white on red background.

Years of thorough research have revealed that what people find beautiful about the Mandelbrot set is not the set itself, but all the rest.

BAF
Member #2,981
December 2002
avatar

Most of the time, my C++ class is full of sheer boredom. I don't even care enough to correct the teacher anymore.

For example, today we were taught that this is the magic solution to header file problems:

#ifndef
#include <iostream>
#include "blah.h"
// etc
#endif

... Yes. That is what he wrote. No arguments to ifndef. Not to mention it should be in the header, not the source file. He did mention preprocessor, but called it magic. He also said it was relevant when you link with object files that already have the files included. I was too tired to try and comprehend the stupidity of that, so I just sat their doing other work.

It amazes me how ugly the coding style they push on us is. I lost half a letter grade on a programming assignment because I named my index variable 'i' instead of 'idx' or 'ind.' They take off points if you spell 'cur' instead of 'curr.' They thought I was crazy for taking two programming courses next semester to get them over with, they told me I would never be able to do both. ::)

Also, we wrote some type of List class as an introduction to lists. Want to know how we accessed the list? list.FirstPosition(); list.NextPosition(); until we get there/done iterating, then call list.Retrieve(); to get the value.

The course makes me die inside a little more every day I go to it. If there wasn't a mandatory attendance policy I would be skipping it.

And, every day I sit there, most of the people hate programming. People drop it all the time, one person even just dropped it (there is one more class before the final). If they can't handle this programming class, what kind of code are they going to write?

Just for kicks, here is the List class programming lab source (it's all framed out, it's just fill in the blanks. ::) also, the code I did fill in I had to conform to their esoteric coding style.):

1//Specification file: list.h
2 
3const int MAX_LENGTH = 100; //maximum # of slots in the list
4 
5typedef int ItemType; //type of value stored in the list
6 
7class ListClass
8{
9public:
10
11 ListClass(); //default constructor
12 //Purpose: Initializes a list object to an empty list
13 //Post: list's length is 0
14
15 bool IsFull() const;
16 //Purpose: Indicates whether or not the list is full
17 //Post: Returns true if list is full and false, otherwise
18
19 void Insert(ItemType item);
20 //Purpose: Inserts item into the list
21 //Pre: List is not full
22 //Post: item has been inserted at the end of the current list
23 
24 void Find(ItemType item, bool& inList);
25 //Purpose: Determines whether or not item is in the list
26 //Pre: item is assigned a value
27 //Post: If item is in the list then inList returns as true and currPos contains
28 // the index of the 1st occurence of item in the list, otherwise,
29 // inList is false and currPos is set at length
30 
31 void Delete();
32 //Purpose: Deletes an item from the list
33 //Pre: Method Find has been called to find the item to delete, and the
34 // that item is in the list
35 //Post: The 1st occurrence of item has been deleted from the list
36 
37 void FirstPosition();
38 //Purpose: Moves to the beginning of the list
39 //Post: currPos is 0
40 
41 void NextPosition();
42 //Purpose: Moves to the next element in the list
43 //Post: currPos has been incremented by 1
44 
45 bool EndOfList() const;
46 //Purpose: Determines if at the end of the list
47 //Post: Returns true if at the end of the list, and false, otherwise
48 
49 ItemType Retrieve() const;
50 //Purpose: Returns the current item in the list
51 //Pre: EndOfList is false
52 //Post: Returns the item at currPos
53 
54 ItemType Largest() const;
55 ItemType Smallest() const;
56 
57 // Note: Copy the private data members below and paste them AS
58 // A COMMENT at the top of the implementation file for your reference.
59 
60 
61private:
62 ItemType values[MAX_LENGTH]; //stores the items in the list
63 
64 int length; //# of values currently in the list
65
66 int currPos; //position of current element
67};

1#include "list.h"
2 
3ListClass::ListClass()
4{
5 length = 0;
6}
7 
8bool ListClass::IsFull() const
9{
10 return length >= MAX_LENGTH;
11}
12 
13void ListClass::Insert(ItemType item)
14{
15 values[length] = item;
16 
17 length++;
18}
19 
20void ListClass::Find(ItemType item, bool& inList)
21{
22 inList = false;
23 for(int idx = 0; idx < length && !inList; idx++)
24 if(values[idx] == item)
25 {
26 currPos = idx;
27 inList = true;
28 }
29}
30 
31void ListClass::Delete()
32{
33 values[currPos] = values[length - 1];
34 length--;
35}
36 
37void ListClass::FirstPosition()
38{
39 currPos = 0;
40}
41 
42void ListClass::NextPosition()
43{
44 currPos++;
45}
46 
47bool ListClass::EndOfList() const
48{
49 return (currPos == length);
50}
51 
52ItemType ListClass::Retrieve() const
53{
54 return values[currPos];
55}
56 
57ItemType ListClass::Largest() const
58{
59 ItemType largest = values[0];
60 
61 for(int idx = 1; idx < length; idx++)
62 if(values[idx] > largest)
63 largest = values[idx];
64 
65 return largest;
66}
67 
68ItemType ListClass::Smallest() const
69{
70 ItemType smallest = values[0];
71 
72 for(int idx = 1; idx < length; idx++)
73 if(values[idx] < smallest)
74 smallest = values[idx];
75 
76 return smallest;
77}

1#include "list.h"
2#include <iostream>
3#include <fstream>
4#include <cstdlib>
5 
6using namespace std;
7 
8void PrintList(ListClass list, char ch);
9 
10int main()
11{
12 ListClass listA, listB;
13 ItemType val1, val2, val3;
14 bool found;
15 ifstream din1, din2;
16 
17 din1.open("list.dat");
18 
19 // Insert code here to read the values from the file and insert them into listA
20 // Be sure to test for end of file and a full list
21 din1 >> val1;
22 while(din1 && !listA.IsFull())
23 {
24 listA.Insert(val1);
25 din1 >> val1;
26 }
27 
28 if(listA.IsFull())
29 cout << "list is full.\n";
30 
31 // Print values stored in listA by calling the client function PrintList
32 PrintList(listA,'A');
33 
34 din2.open("list2.dat");
35
36 // Insert code here to read the values from the file and insert them into listB
37 // Be sure to test for end of file and a full list
38 din2 >> val1;
39 while(din2 && !listB.IsFull())
40 {
41 listB.Insert(val1);
42 din2 >> val1;
43 }
44 
45 if(listB.IsFull())
46 cout << "list is full.\n";
47 
48 
49 // Print values stored in listB by calling the client function PrintList
50 PrintList(listB,'B');
51 
52 cout << "Enter a value to delete from listB: ";
53 cin >> val3;
54 
55 // Call member function Find to see if val3 is in listB
56 listB.Find(val3, found);
57 
58 // If val3 is in listB , then call member function Delete to delete it otherwise
59 // print an error message
60 if(found)
61 listB.Delete();
62 else
63 cout << val3 << " not found.\n";
64 
65 
66 // Print values stored in listB by calling the client function PrintList
67 PrintList(listB,'B');
68 
69 cout << "Enter a value to delete from listA: ";
70 cin >> val3;
71 
72 
73 // Fill in the code to delete ALL occurances of val3 from listA
74 listA.Find(val3, found);
75 while(found)
76 {
77 listA.Delete();
78 listA.Find(val3, found);
79 }
80 
81 
82
83 // Print values stored in listA by calling the client function PrintList
84 PrintList(listA,'A');
85 
86 // Find and print the largest and smallest values in listA
87 cout << "Largest in listA: " << listA.Largest() << endl;
88 cout << "Smallest in listA: " << listA.Smallest() << endl;
89 
90 
91 // Find and print the largest and smallest values in listB
92 cout << "Largest in listB: " << listB.Largest() << endl;
93 cout << "Smallest in listB: " << listB.Smallest() << endl;
94 
95 
96 return 0;
97}
98 
99void PrintList(ListClass list, char ch)
100{
101 // Prints the values currently stored in the list by traversing the list
102 // from beginning to end
103 ItemType val;
104 
105 cout << "List" << ch << endl;
106 
107 // Traverse and print the values stored in the list
108 list.FirstPosition();
109 
110 while(!list.EndOfList())
111 {
112 val = list.Retrieve();
113 
114 cout << val << endl;
115 
116 list.NextPosition();
117 }
118 
119 system("pause");
120 cout << endl;
121}

I usually try to fix the code up as much as I can get away with. Meh...

[edit]
Oh yeah, I get reprimanded for using "unfriendly not readable" code conventions such as "return length >= MAX_LENGTH;" or "blah += 3" - they say this is harder to read. :'(

Richard Phipps
Member #1,632
November 2001
avatar

Sometimes reading things like this makes me glad I never studied programming at university. :)

Trezker
Member #1,739
December 2001
avatar

Things like this makes me realize how awesome the schools I have attended are.
I can't recall ever having a sucky teacher in programming.

Matthew Leverton
Supreme Loser
January 1999
avatar

Maybe you were just a n00b? ;D

ReyBrujo
Moderator
January 2001
avatar

Don't tell me they also ask to buy evert's friend book?

--
RB
光子「あたしただ…奪う側に回ろうと思っただけよ」
Mitsuko's last words, Battle Royale

Myrdos
Member #1,772
December 2001

BAF: I feel for you. Years ago I took a course almost exactly like that one, except that I didn't know any C++ beforehand. It took me years to unlearn all the bad habits and misinformation. He even used the word magic when describing "using namespace std". We were told how to split the code into multiple files, but we didn't create proper classes. Oh no.

We had some crazy forward declarations and typedefs and structs, and if one file wants to access another file's functions, it does it with the friend keyword.

Quote:

If they can't handle this programming class, what kind of code are they going to write?

1int ReadDump(char *fl[], data_t *D, MODE mode, int off)
2{
3 static dump_t null;
4 FILE *f = 0;
5 double t = 0, tmax;
6 unsigned long i, ti, line, id = 0, lost;
7 char buf[0x1000], *p, *e, j, c;
8 int l = 0, h, m;
9 size_t num = 0;
10 void *tmp;
11 
12 if ((f = fopen(fl[1], "r")) == 0) {
13 fprintf(stderr, "error opening %s\n", fl[1]);
14 return 0;
15 }
16 
17 line = 0;
18 while (c = 0, line++, !feof(f) && !ferror(f)) {
19 if (!fgets(buf, sizeof buf, f) || feof(f) || ferror(f)) break;
20 if (*buf == '\n') continue;
21 
22 if (!(t = strtod(buf, &e)) && e == buf) { c = 1; goto e1; }
23 if (!(p = skips(buf, " id ", 1))) {
24 if (!(p = skips(buf, "frag ", 1))) { c = 1; goto e1; }
25 }
26 if (!(id = strtoul(p, &e, 10)) && e == p) { c = 1; goto e1; }
27 if (!(p = skips(buf, " udp ", 1)))
28 if (!(p = skips(buf, "UDP, length:", 1)))
29 if (!(p = skips(buf, "UDP, length", 1))) { c = 1; goto e1; }
30 if (!(l = strtoul(p, &e, 10)) && e == p) c = 1;
31 
32e1: if (c) {
33 fprintf(stderr, "malformed input (%s, %lu)\n", fl[1], line);
34 continue;
35 }

Thought I'd post some of the code I've been reading.* Most compsci students/graduates I know can't program worth beans. Some of them haven't done any programming in years. In fact, many of them hate programming and try to avoid it as much as possible. They don't take programming classes, or if they have to, they either don't do the assignments or cheat.

*Not my own code!!!

__________________________________________________

Rampage
Member #3,035
December 2002
avatar

Quote:

And, every day I sit there, most of the people hate programming. People drop it all the time, one person even just dropped it (there is one more class before the final). If they can't handle this programming class, what kind of code are they going to write?

I think it's better that they drop a bad programming class. A good teacher could have been able to get them interested, one who knows what programming is really about.

-R

Dustin Dettmer
Member #3,935
October 2003
avatar

Good programming teachers don't exist.

Rampage
Member #3,035
December 2002
avatar

Quote:

Good programming teachers don't exist.

They do. I've met at least two.

-R

Albin Engström
Member #8,110
December 2006
avatar

Dustin Dettmer said:

Good programming teachers don't exist.

I hope they do! i'm having my first programming class next week.. :-/

Edward Sheets
Member #4,734
June 2004
avatar

Have any of you taken online classes? I wonder if some of the online degree programs are any good. I haven't actully seen any computer science classes online but I've seen plenty of IT courses. (University of Phoenix, etc.)

Looking through some of the job postings over at gamedev, I've noticed that they don't always demand that you have a CS degree but that you be proficient in certain programming languages or be familiar with certain software. It would be interesting to know what percentage of professional game programmers (and professional programmers in general) have a relevant degree. It certainly couldn't hurt to have that degree to show off on the resume. It's sad to hear that so many people are experiencing programming classes where the teachers are clueless.

---

Note: carving a pentagram on the top of a container of spoiled yogurt does not summon a yogurt demon. -Kikaru

Arthur Kalliokoski
Second in Command
February 2005
avatar

Quote:

And, every day I sit there, most of the people hate programming. People drop it all the time, one person even just dropped it (there is one more class before the final). If they can't handle this programming class, what kind of code are they going to write?

I really hated math after several years of elementary school math classes taught by farm housewives. A few years later, after a couple of math classes taught by people with math doctorates, I did math problems for fun.

“Throughout history, poverty is the normal condition of man. Advances which permit this norm to be exceeded — here and there, now and then — are the work of an extremely small minority, frequently despised, often condemned, and almost always opposed by all right-thinking people. Whenever this tiny minority is kept from creating, or (as sometimes happens) is driven out of a society, the people then slip back into abject poverty. This is known as "bad luck.”

― Robert A. Heinlein

 1   2 


Go to: