Responses to 1998 Alumni Survey

Responses to question #1.

Which programming languages do you use most in your work?

 

Visual Basic, Power Builder, Visual C++

 

C, C++

 

IBM assembler, C

 

Visual C++, Visual Basic

 

C++, Delphi

 

C++, Visual Basic, HTML

 

C++, Visual Basic

 

Visual Basic, C++

 

C++, SQL, Oracle, Visual Basic

 

Java, C++, Tcl/Tk

 

 No programming

 

C++, Visual Basic

 

C

 

C++, Oracle, Various RAD languages

 

Java

 

Responses to question #2

Are object-oriented software design techniques important in your work now?

 

Yes

 

Yes

 

Not just yet, but they will be soon - probably about 2 years.

 

Yes - definitely

 

Yes, very important

 

Very important

 

Most definitely

 

Definitely - almost all the programming we do employs object-oriented design.

 

Yes

 

We designed and documented our entire infrastructure using the OMT methodology. Of course today, we'd choose UML, but we found it extremely useful for organizing and communicating our designs. With each new project or module, we turn to Rational Rose, our design tool, to help lay out the overall plan. However, we do not generate code from the model, or go to great pains to keep the model up-to-date as changes are made during the implementation. Mostly, we use the formal methodologies and notations to get an initial overall picture of how the system will work and to communicate ideas. In this role, I think they are very important.

 

No

 

Highly, however so is basic procedural/structured programming.

 

No

 

Yes. And becoming more so.

 

Very important.

 

Responses to question #3.

We have recently changed the base programming language for our program to C++ from C. Should our program place a lot of emphasis on object-oriented software design techniques?

 

Yes.

 

Yes.

 

I think so. But be sure not to forget about the core competency of programming.

 

Yes - absolutely

 

Yes, this is something they expect from you.

 

Yes you should.

 

Yes because it allows for reuse of business objects.

 

Yes!

 

Yes

 

As a high-level application/systems developer, I believe OO design and programming is a much more natural approach. I can't imagine going back to C programming. So yes, I think a lot of emphasis should be placed on object-orientation, especially in the introductory courses. I suppose the issue with this question and the next two is whether this material is really academic or just job training. My graduate department would look down its nose at these topics, taking the attitude that there is nothing worthy of academic study here. I couldn't disagree more and I cannot think of anything more relevant if a goal of the departmentis to prepare students for work outside of a university. I believe object-orientation has advanced the state of software design dramatically and should be taught. (On a related note, another tool that has taught me a lot about design is the "patterns" concept. In particular the Design Patterns book by Erich Gramma, etc. This work has greatly influenced our design.)

 

Doesn't apply.

 

Yes, also consider using O-O development tools like Rational Rose.

 

Yes.

 

Yes. But basic algorithms study is still important.

 

I think so.

 

Responses to question #4.

How much emphasis should our program place on object-oriented distributed programming (such as CORBA)?

 

I don't know.

 

In our work it's advisable to use it as much as possible. Since it improves application performance, I would recommend it to be high priority in your program.

 

It is not an issue where I work … yet.

 

That would be exactly what we are doing at _______ Corporation. However, I would suggest that you be careful of the tool you place emphasis on. Remember, speed and memory requirements will limit the use of objects on the servers. Clients should not be ignored for some processing and object containment. On the other hand object-oriented programming should be from the client to the deepest server. Clients and servers are going to be a reality. Object-oriented programming is also. It will have to be implemented on both client & server for clean design.

 

ActiveX, Java, CORBA is where everybody is going.

 

Have no experience in distributed programming.

 

Some emphasis on object-oriented and some on 4GLs and Java.

 

I know that ______ would be impressed with any student having experience with CORBA. We don't use it currently, but changes have been made to our server architecture that would make using it easier should we decide to do so. I think it would be a good experience -- I would like to have taken a class on it.

 

COM/DCOM, CORBA, NML

 

Our system is built on CORBA. We have found it to be incredibly useful for isolating the various components in the system behind a simple interface. Recently when we had to rewrite one of our servers we were able to do so without changing the IDL interface, leaving the client code untouched. CORBA buys us location and language independence as well, which is important because our client software is written in Java and must be widely distributed but our servers are C++. I suppose I'm saying that CORBA has been extremely useful in our work and is an excellent model for distributed communication. I think it would be very cool and very impressive for a student to come out of an undergraduate program with CORBA experience.

 

Doesn't apply.

 

Something like CORBA, DCOM, or COM plus will be a standard in a short time. With Microsoft's development of COM Plus, we may have no choice. If I am understanding exactly what COM Plus is. Last time I checked Microsoft wasn't entirely sure.

 

As a manager of a computer center I find that I do very little real programming in a proper language. Most of my work will involve writing job control batch files.

 

It's becoming more and more important in the software industry and will become dominant. The understanding of component based, distributed software architecture is more important than a particular implementing language. But projects using CORBA will certainly be helpful.

 

I think one pragmatic approach to realize object-oriented distributed programming is using Java. I've seen the engineers from IBM Britain working on this in JavaOne. Java is really a fantastic technique.

 

Responses to question #5.

How big a role should the study of database technology play in our program?

 

Students should at least have an understanding of how databases are organized and work.

 

Most of programming now involves some kind of database. Therefore, DB should play a major role in your program.

 

Where I work, database management/warehousing is our most important function. So I would think it is very important.

 

It certainly should play a fairly sizable role. We use databases & have to stay up on technology to give us an edge on making our product more responsive and more powerful.

 

There is a big market of database.

 

Currently, database technology is playing a big role in the software field. SQL, Oracle and Sybase are a few of them that you should offer.

 

Client-server database applications development is very useful in job placement.

 

I think one good course should be enough -- as long as it gives the student practice with SQL and covers techniques of good table design (normalization, etc.).

 

Relational technologies should be a player in the program.

 

From what I can tell, databases seem to be where it's at as far as businesses are concerned. I'm biased though in that I don't have a lot of interest in it. I know from even my limited job searching though that it is something that employers will definitely ask about. I shied away from the database course in my graduate program, and I occasionally experience pangs of regret, though so far it's been easy to snuff them out.

 

Doesn't apply (to me).

 

A good basic understanding of Codd's rules & SQL is an essential requirement of all developers in our shop.

 

Very large.

 

Theory of relational and object-oriented database should be part of the core while applications of database with certain commercial DBMS as practice projects should be available.

 

I think we need much more than we did in 1996.

Other comments

 

It might also be wise to look into teaching a course on COM. COM is used extensively in _____'s client/server architecture.

 

Would also recommend courses in Windows development (WIN API & GUI), a course in COM (or at least a couple sections). A basic understanding of IDispatch & QueryInterface is essential to our work.