From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 109fba,1042f393323e22da X-Google-Attributes: gid109fba,public X-Google-Thread: 1014db,1042f393323e22da X-Google-Attributes: gid1014db,public X-Google-Thread: 103376,1042f393323e22da X-Google-Attributes: gid103376,public From: Roy Grimm Subject: Re: Any research putting c above ada? Date: 1997/05/01 Message-ID: <3368A6FE.41C6@cca.rockwell.com> X-Deja-AN: 238664971 References: <5ih6i9$oct$1@waldorf.csc.calpoly.edu> <5k60au$gig@bcrkh13.bnr.ca> <33674E4C.446B@cca.rockwell.com> <5k88b3$340@bcrkh13.bnr.ca> Organization: Rockwell Collins, Inc. Newsgroups: comp.lang.c++,comp.lang.c,comp.lang.ada Date: 1997-05-01T00:00:00+00:00 List-Id: Kaz Kylheku wrote: > >I was trained in the computer-science paradigm. When I arrived at > >Rockwell and started working on engineering projects, I was astounded to > >see the difference between how I had done things before and how I had to > >do them here. At my previous position, we cranked out code. Here, we > >design and build software. The focus here is on the design process and > >how we can build software to meet the design. At my former employer, we > >were simply asked to crank out some code that did the job. If it wasn't > >quite right, we'd throw some fixes into it and release it again, and > >again, and again until we either got it close enough or the buyer wanted > >something completely different. That kind of slip shod programming > >doesn't fly very far here. > > That is slip-shod, but it doesn't seem to relate to my own computer science > background and experiences. A common theme emerging from this tangent seems to be that every institution, and even every person does things differently. We all have different experiences. I had all theory in my classwork, but I did enough extra-curricular work (mostly in my job at the college computer center) that I was able to apply that theory to real world situations. Even though I had a "less than stellar" academic record, I think I came out of that place with much more usable knowledge than most of the people in my class. > What was the focus of your computer science training? Was it largely > theoretical, or did it involve a lot of ``hands on'' work? Mostly theoretical. I did take a directed study in Ada (it wasn't offered as a regular class at the time) which was my only collegiate experience with any kind of software engineering. We spent all of our time learning about data structures, algorithm analysis, operating system theory, etc. The curriculum didn't address the development of software as a whole. When it came to writing programs for class, we were thrown at the VAX, given the script file which ran the compiler and linker together, and given enough info about the 'edt' editor to get started. That's all the more instruction we got on the development process. Everything else we learned about that we found out from the upper-classmen. Fortunately, I wasn't satisfied with that. I went out and bought my own C compiler and started tinkering. I wrote several programs on my own that went way beyond the theory I was presented with. I was just too hungry to be placated with the contrived examples the professors gave to us. > However, over the years I've had the chance to talk to a few graduates from > other computer science programs and was surprised at the diversity of > experiences. One student complained that his whole undergraduate career was > ``all theory'' geared toward further studies. He never got to do any projects > involving real implementation. He claimed to have gained next to no > experience with things like networking, graphical interfaces or concurrent > programming. I was shocked when he revealed to me that he allegedly studied > at MIT! Why should that come as a suprise? Many people I know (even a friend from hight school) went to MIT so they could get into graduate school. It shouldn't come as a suprise that their curriculum is geard toward further study any more than many private boarding schools are geared toward college prep. I am suprised that there are so few institutions out there which really prep students for real world software development. I graduated with people who could recite operating system theory all day but couldn't figure out how to change working directories in their VMS accounts without a cheat sheet. > It's hard to say anything about the nature of computer science training, > since it seems to vary a great deal from institution to institution. If that isn't an incredible understatement... > >> Have you ever seen code written by engineers with no understanding of > >> computer science? :)) > > > >I have. Let me tell you, the code is atrocious. However, it is only > > I was only joking, and playing on the multiple meanings of ``engineer''. > It's clear that the discussion is about software engineers, not civil or > electrical engineers! :) These latter guys tend to write 500 line procedures > with repeated code that is not factored into subprograms. (This is just an > observation based on a limited sample, not meant to generalize to all > engineers. :) Tell me about it. I had the dubious distinction of porting a VMS based C program to a Sun workstation. I cracked it open to find that the entire 16 page program was one big "main" function. I just about cried. > How is that? Are you saying that the computer scientist had a very rigid > design, and hacked the code to fit that design rather than going through a more > iterative approach to find a more suitable or flexible design? Or perhaps the > fellow didn't spend enough time on the design, and ended up with something > having a narrow scope. Rather than indicating no training in software > engineering, that could simply indicate a training in old-style software > engineering, whereby a team is supposed to go through through requirements, > design, implementation and testing stages in one swoop, leaving behind a > massive paper trail of inconsistent documents and inflexible program text. I'm saying that the computer scientist and the electrical engineer both hack together some atrocious programs (i.e. a 16 page main function). However, the computer scientist will do slightly better than the electrical engineer because the computer scientist has studied algorithm theory enough to figure out which algorithm works better. It isn't until these people get into a disciplined development group that they actually learn how to design real software. I hadn't even heard of a peer code review until I got to Rockwell. The only peer reviewing I did in college was to help other people in my class find bugs when we were in the computer lab the night before the assignment was due. (I could relate the story of the 3 page assembly program with no spaces or comments that a guy asked me to fix. When I asked him what was wrong, he replied "it doesn't work"...) -- Voicing my own opinion, not speaking as a company representative... Roy A. Grimm Rockwell Collins Avionics Cedar Rapids, Iowa ragrimm@cca.rockwell.com