[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: OT?: essay: software engineering and uni's
- To: "Kohn Emil Dan" <emild(at-nospam)cs.Technion.AC.IL>, "guy keren" <choo(at-nospam)actcom.co.il>
- Subject: Re: OT?: essay: software engineering and uni's
- From: "Shahar Dag" <shahar_d(at-nospam)cs.Technion.AC.IL>
- Date: Mon, 14 May 2001 09:06:58 +0200
- Cc: <linux-il(at-nospam)iglu.org.il>, "Haifa linux club" <lin-club(at-nospam)vipe.technion.ac.il>
- Delivered-To: iglu.org.il-linux-il@iglu.org.il
- References: <Pine.GSO.3.95-heb-2.07.1010512121035.10597A-100000@csd>
- Sender: linux-il-bounce(at-nospam)cs.huji.ac.il
To my opinion the real problem is that many experienced programmers (&
project leads) do not know about software engineering themselves. Many
companies (when trying to speed up projects) neglect the software
engineering methods. As a result the projects are bad, the company gets poor
result & the new programmers learn almost nothing.
At the Technion we have a software yearly project that the students should
do in-groups of 4 (or more) during the entire academic year. It is true that
this is not a real life project, but it is closer to real life than any
other project that the students do.
Another problem is that today students start working for Hi-Tech companies
very early (5'th-6'th semester). This implies that they spend less time at
the university and more time at work. Since they do not learn at the
university & many companies can't teach them the correct methods the result
are programmers that know almost nothing about software development process
----- Original Message -----
From: "Kohn Emil Dan" <emild@cs.Technion.AC.IL>
To: "guy keren" <choo@actcom.co.il>
Cc: <linux-il@iglu.org.il>; <hackers-il@yahoogroups.com>; "Haifa linux club"
<lin-club@vipe.technion.ac.il>
Sent: Saturday, May 12, 2001 12:55 PM
Subject: Re: OT?: essay: software engineering and uni's
> Hi Guy and others,
>
> I have read the essay. It is really nice. I have encountered most of the
> problems you were talking about while checking homeworks at the MaTaM
> course. I will add some random thoughts that went through my head while
> reading your essay. Warning! Some material might be religious. If you feel
> a strong urge to flame, feel free to do so. I won't mind too much. Also
> you a minor spelling error in your essay: the comparative form for
> adjectives uses `than' (i.e. spelled with an 'a') and not `then'. So
> witout further ado, here they go:
>
>
> * Very few students do understand the importance of portability and
> conformance to the language standard. You see extremely often code that
> assumes that sizeof(int) == 4, calling fflush(stdin) because they did not
> correctly understand the behavior of scanf(), and many other similar
> constructs. Many students do not understand the severity of the term
> `undefined behavior'. Writing 100% portable code that does something real
> is virtually imposible because system specific mechanisms must be invoked.
> But in this case, it is a good idea to separate portable from non-portable
> code. Most students ignore this issue altogether.
>
> * Another issue, related to the first, is that students (and not only)
> fail to understand that UNIX, despite being originally designed a number
> of years ago, is a mature and modern operating system. Because of this
> they consider that for example make is a very outdated tool, and the `real
> thing' is their favorite development environment on a very known
> commercial operating system :-). They will often call that development
> environment `the compiler' without realizing that that environment
> consistes of various components such as an editor, a compiler, a linker, a
> debugger and so on. The problem is that instead of trying to understand
> the philosophy of UNIX and its tools, and how these tools solve specific
> problems on UNIX, they simply say: "UNIX is digusting. How can someone
> program on a system like this!? UNIX has such a lousy compiler!!" (since
> for them compiler == integrated development environment) and develop
> their code on the other platform. I know this is much easier than trying
> to learn and understand. Since they also fail to understand what is
> platform specific and what is not, often their code won't compile on UNIX
> or will not work correctly. Once again, instead of trying to understand
> what went wrong, they revert to the same saying: "UNIX is digusting. How
> can someone program on a system like this!?"
>
> * I think that in order to successfully develop software on a new
> platform, one should spend some time learning the tools for that platform
> and try to understand that the people that developed that platform and
> those tools weren't that stupid like marketoids sometimes say. They were
> probably very experienced programmers (definitely much more than most
> students) and most likely had their reasons. Unfortunantely the grading
> system at schools does not take into account the effort spent on learning
> the new platform tools. Students will learn only the absolute minimum
> usage of these tools, and develop the programs on their favorite platform.
> They do not realize that while this might work for their homework, it will
> definitely not work in a real life project which must be developed on
> different platform than their favorite one.
>
> * You talked in your essay about students not trusting their teachers, and
> proposed that experienced programmers should come and teach software
> engineering. Besides the problems you talked in you essay, I would like to
> add another one. Students will likely not trust even these experienced
> programmers due to the following reason. They will think: "Since the
> project was done several years ago, the developers did not have <the
> students' favorite development environment, marketed very aggressively and
> claiming that it will solve all the software engineering problems>. They
> did not use <yet another overhyped technology which claims to solve all
> the programming problems in no time, which by chance:-) works only with
> the environment developed by the same company>." In my opinion, experience
> is the only thing that can teach you that like Fred Brooks says, "there is
> no silver bullet".
>
>
> Regards,
>
> Emil
>
>
>
>
> On Sat, 12 May 2001, guy keren wrote:
>
> >
> > hi,
> >
> > i've recently written an essay on "Why Do Universities Fail Teaching
> > Software Engineering?", and today i've placed it on the LUPG (Little
unix
> > Programmers Group) site. comments are welcome.
> >
> >
http://www.actcom.co.il/~choo/lupg/essays/software-engineering-and-uni.html
> >
> > --
> > guy
> >
> > "For world domination - press 1,
> > or dial 0, and please hold, for the creator." -- nob o. dy
> >
> >
> >
>
>
=================================================================
To unsubscribe, send mail to linux-il-request@linux.org.il with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request@linux.org.il