Subject: Teaching the Technion

From: Shlomi Fish <[email-masked]>
Date: Mon, 10 Dec 2001 17:38:58 +0200 (IST)

I borrowed this concept from a "Star Trek: The Next Generation", but I
think they borrowed it from somewhere else. I feel that I have more to
teach the Technion that the Technion has to teach me.

I came to the Technion for the purpose of learning Electrical Engineering.
To a large extent I fullfilled this purpose. I believe I can now start to
work in VHDL and digital chip design, become proficient in signal processing
, and be able to analyze network protocols better than I did before. (with
some help from my co-workers, that is). To a lesser extent It is possible
that I may be able to work in designing analog circuits, but that's not
too much what I'm aiming for anyways.

However, as eventually became aware of, many people in the industry don't
care about what I know as much as they care about my diploma. And the
diploma does not motivate me much, because I know that it is more a test
of how much abuse the graduate is willing to take, rather than an
indication of his knowledge and proficiency.

I worked in the industry for two years before I came to the Technion, so I
was able to contrast my positive experiences there with what I experienced
here. After I came to the Technion I discovered an institute that teaches
C-Shell in the advanced programming course of both the EE and CS
faculties. I discovered a university that teaches compilation and data
structures and algorithms with computer exercises in C, despite the fact
that Perl (or Python or Ruby - let's not start a language war here) is
much more suitable. (in the CS' faculty's "Computer Graphics" course they
write C programs to generate VRML code - %-)) I saw courses where the
staff cares more about the distribution of the grades, instead of whether
students who worked hard and mastered the material well will be rewarded
with good grades.

As a result of all this, I became more frustrated and less eager to take
any more of this as time went by. Like I said, I decided to take the path
of least obstacles, simply because this is the path in which I have the
biggest chance of being rewarded.

I'm not saying the Technion is a bad place to study in, simply because I
did not compare it with other places. Most of lecturers I encountered were
good, and an even larger percentage of the T.A.s were good. People listen
to what you have to say, and answer your questions. But somewhere in
between, I sensed that I was becoming less fond of the insititute as time
went by.

I wish I could quit now and say to workplaces: Look, I have four years in
the Technion but no diploma. Take it or leave it. But I'm not sure that it
will work. And I'm not a very good orator to start giving them this
speech. And naturally, there is the nostalgy factor in which people say:
"what are you talking about? The Technion is a great place! When I
studied in it..." And people just think that an engineer is defined as
someone who has a first degree. (I don't)

I wish I could have stayed in the Technion and try to change it from
within. But I don't have time to finish a second degree, get a Ph.D.
become an associate professor, become a professor, and then hope I become
the dean of the EE or CS faculties. And even then, I don't know how much I
can do.

When I worked in the industry, people appreciated my talent (and back then
I was much less proficient than I am today), my hard-work and my
knowledge. The Technion as a whole does not seem to appreciate it. Some of
my grades are way below my expectations. (sometimes the opposite is the
case, but I don't mind making them lower in exchange for better grades in
the courses in which I was negatively mis-graded). Yes, most of my grades
are pretty good. I don't expect to be a perfect "A" student. But I want
justice, and I don't seem to get it.

Maybe I should take the Moed Beith or take the course again and try to
improve my grade. In some courses, it would be useless, at least in EE.
And in any case it contradicts the Path of Least Obstacles<tm> methodology.
And will cost me dearly in even more frustration and feelings of
injustice.

Somebody recently asked me whether he should study EE in the Technion and
I told him that he should not study anything at all. Naturally, he'd like
to get a diploma so he could earn more as an IT worker. While a high
salary is nice, I'm not sure if it is worth the constant frustration I am
feeling.

Regards,

	Shlomi Fish

BTW, the reason I am a much better programmer now than I was when I
started studying in the Technion has little to do with the Technion. It
was my self-discipline to explore new languages, and learn new
methodologies and programming philosophies. Most of it I've done on
vacations or while procrastinating. The Technion gave me some
enlightenment, but not much as I expected when I started studying here.

There is no IGLU Cabal!
Writing this sentence followed by an explanation has been patented by Omer
Zak in US patent No. 10943307*2^66452-1. Commenting on Omer's comment has
been patented by Shlomi Fish in US patent No. e^(i*pi). The sentence
itself is a trademark of Moshe Zadka.
The existence of these patents is the only explanation one needs for this
sentence.

----------------------------------------------------------------------
Shlomi Fish        [email-masked]
Home Page:         http://t2.technion.ac.il/~shlomif/
Home E-mail:       [email-masked]

"Let's suppose you have a table with 2^n cups..."
"Wait a second - is n a natural number?"

---

From: Arik Baratz <[email-masked]>
Date: Tue, 11 Dec 2001 13:27:32 +0200

> > Who f***ing cares which language you use? So what if language X is
perfect
> > for course Y. Hey, my AI course teacher made us study LISP. A language
is a
> > language is a language. They're all Turing-complete.
> Let's teach AI in Intercal! You know - it is Turing-complete too. You
> should teach a course in a language that is suitable for this course. And
> Perl is much more suitable for most courses that require computer
> exercises. Muli can testify that he today wrote in Perl in 5
> minutes something that would have taken him an hour to code in C. And I
> can testify for many cases where I successfully used Perl as an aid in the
> coursework we were given.
> 
> Teaching in C because the students learned it as a first programming
> language, is like looking for a coin you lost in the darkness, in the
> light of a street-light.

You are disregarding what I say. Your liking or disliking of a language
should not be an obstacle for learning the actual course material. You can
grouch about it, but the fact remains that the course was tought and you are
a better man now.

> > Stop bothering yourself with minuscules and look at the bigger picture.
And
> > the bigger picture is that you get the concept of an interpreted
language
> > while you learn C-Shell, you learn data structures because you're
supposed
> > to learn some concepts of data structures and not to polish your C
skills.
> > Well, I admit that using C for VRML is pretty lame, but it doesn't
offset my
> > argument: concentrate on computer graphics and NOT on the language. The
end
> > and not the means.
> C-Shell is a broken shell. Period. It should not be taught. The fact that
> the Technion still uses it shows how lame and conservative it is. And the
> fact that it assumes that everything can be effectively taught with C is
> much more so.

And again you ignore what I said. So what if it's broken? Use it for what
it's worth, and get on with your life.

> > What, you became frustrated because they wouldn't let you use Perl in
data
> > structure course? I heard there's some good medical treatment for this.
Try
> > looking for an SSRI brand. Make sure you understand the side effects...
> That was an annoyance, not a cause for frustration. What really made me
> frustrated was the injustice I felt for being mis-graded. And as my
> experience with Anat told me, sometimes I can only improve my situation by
> a very small margin.

That was cynicism on my part.

> I define an engineer as somebody who performs engineering tasks,
> regardless of whether he is a graduate or not. During my first work as a
> programmer, my boss (a very good man whom I respect and admire) showed a
> visitor around our room and said: "here we have two software engineers and
> one hardware engineers.". I was one of the software engineers in question.
> At that time I thought it was a funny way to put it (I still like to think
> of myself as a programmer). But now I'm proud that he said that.

I checked www.m-w.com and I agree with your definition and stand corrected.

> > You're right. Some grades don't reflect your knowledge and skill. So?
You
> > can look at it two ways: You can be a perfectionist, and redo it just to
> > prove the point, and you can realize that just like in real life, the
other
> > guys can only appreciate you based on what you say, do, write, etc. And
> > sometimes it's not at par with what you think is fair. That's life.
> That's not life. That's life in the EE faculty of the Technion.

Oh, that's life.

> If I won't become a professor just because I don't know the political BS,
> then the Technion is definitely not a place to be.

Whatever suits you. But politics is an important skill. You'll see.

> > * Doing things right will lead to frustration
> > * Doing things wrong will lead to frustration
> > * Demanding justice and getting it will lead to frustration
> > * Accepting whatever comes your way leads to frustration
> > * Getting rewarded for what you slaved for will lead to a temporary
relief
> > from frustration.
> I totally disagree with you. I felt very happy working as a software
> engineer, and felt very happy working on my open-source software, my
> stories, etc. Furthermore, I felt good about myself working on my home
> assignments and managing to solve them. When I passed a course on 57 or
> 58 when I deserved to pass it on more, I felt good knowing that I deserved
> a better grade. When not in the Technion, very few things make me
> frustrated.

I was, again, cynical.

---

From: Omer Musaev <[email-masked]>
Date: Tue, 11 Dec 2001 16:22:11 +0200

> -----Original Message-----
> From: mulix [mailto:[email-masked]]
> Sent: Tuesday, December 11, 2001 3:14 PM
> To: [email-masked]'
> Subject: RE: [hackers-il] RE: Teaching the Technion
> 
> 
> On Tue, 11 Dec 2001, Omer Musaev wrote:
> 
> > Well, I do not know perl. But I know C++ instead:) Can we do
> > solve the problem in C++ in 5 minutes?
> 
> i am ashamed to say i did not even consider c++ for the task at hand,
> even though my c++ is far better than my perl, and c++ is one of my
> favorite languages.
> 
> why, you ponder? i sincerely do not now. upon analyzing my mindset at
> the time of the lecture, trying to figure out why i did not 
> implement it
> i c++, i came to the following conclusions:
> 
> 1. shell is easily translated to perl. my mind decided to 
> take the path
> of least resistance.
> 

This is interesting point. sh does not translate to C++ in no way.
However, uniq, sort and tr do translate themself into modern, 
iterator based c++ programming style.

> 2. a hash table was crucial for the task at hand. while i make sure to
> make use of the stl wherever i can, i still do not "feel" it is an
> integral part of c++, the same way hashes are integral to perl.

That is interesting too. For me STL is one of greatest advantages of 
C++ over many other tools. Moreover, I find generic programming 
very effective. 
However, beyond many technical reasons not to use STL that I know,
I see people that do not consider C++ as a generic language. 
I have yet to understand that:)

> 3. i've been writing too much perl lately, and not enough 
> c++. i think i
> shall ban perl for the near future and concentrate my free time
> hacking on my favorite c++ project - syscalltrack's parser and
> configuration utility.

oh, syscalltrack.... It seems that I will never manage to join 
the development...:((

> omer, thank you for showing me how close i came to ruin, succumbing
> to the temptation that is perl!

You"re welcome:) 

> 
> > Of course we can!!
> >
> > 5 minutes and here you go:
> >
> > --
> > #include <iostream>
> > #include <string>
> > #include <set>
> > #include <iterator>
> >
> > using namespace std ;
> > int main ( int argc, char *argv[] )
> > {
> >     set< string > finals ;
> >     string curr ;
> >     while ( cin >> curr ) {
> >         for( int i = 0 ; i < curr.size () ; ++i )
> >              curr[ i ] = tolower ( curr[ i ] ) ;
> >         finals.insert( curr ) ;
> >     }
> >     copy( finals.begin (), finals.end (), ostream_iterator< 
> string >(
> > std::cout, "\n" ) ) ;
> > }
> 
> doesnt do exactly what the shell pipline does, btw, but 
> neither did the
> perl script.
> 
> anyone up to writing it in other *interesting* languages? alon, didn't
> you work on either intercal or sheakspeare, or both?

well, awk ( I mean sysV awk, not /usr/bin/awk found on solaris )
implementaion will closely fit ++<C> (sic!) one, so maybe it should 
not be considered....
 
> -- 
> mulix
> 
> http://www.pointer.co.il/~mulix/
> http://syscalltrack.sf.net/
> 

-- 
Omer Mussaev
Software Developer
Mercury Interactive / Topaz Prism R&D
Application Team