My Co-op Experience

By

Ryan Conover

Introduction

Experience, let me say that again, experience, makes a huge impact when graduating from college. I feel this is especially true when it comes to graduating with a Computer Science degree. The theories that you learn in the classroom are only the tip of the iceberg. The co-op experience not only gave me experience with CS related areas, but also how a corporate business functions. I looked at several companies in the Pittsburgh area, and took the co-op position at American Bridge Company. Being able to get an in-depth examination of the business side was very important when I was looking for a co-op position, because I am dual CS/Business major. One last factor in my decision was the size of the organization; I was interested in working for a small to mid-size organization. The size of an organization can make a huge difference. For example since American Bridge only has about two hundred employees, I got to get my hands dirty in more diversified issues.

American Bridge Company is a vertically integrated engineering, manufacturing and construction company who is the industry leader in technical capability, innovation, and profitability. The company specializes in technically and logistically complex projects of all sizes. It develops unique and innovative engineering methods for the erection and maintenance of cable supported, movable, and other complex bridges and structures. American Bridge is a high value added organization, that self performs the majority of the contracts it undertakes. Projects include bridges of all types, complex buildings and other facilities, structural steel erection for large or long-span buildings, and marine facilities. The company also manufactures a range of structural steel, pre-cast concrete products, and specialized erection equipment.

First Rotation May 00’-Aug. 00’

For me this did not even seem like a job. Coming from a working class family, I never had the experience with a professional job. I was used to the philosophy that if you were not sweating; it was not really work. It became a big change working in an office environment.

My main assignment for this rotation was to begin planning, developing, and implementing an intranet. I have had some experience with developing plain html based web sites, but nothing of this scale. Before I could start coding, I had to make a decision on what components to use. I had to first investigate what choices there were. I ended up using the following ensemble of technologies: PHP, IIS 5.0, Windows 2000 Server, MS SQL Server 7.0. This was not my first ensemble of technologies. I originally used an ensemble of PHP, Apache, Red Hat Linux, MS SQL Server 7.0. The main fault of this ensemble was getting the Linux box and the MS SQL server box to talk, so I ended up switching to the previous mentioned ensemble. This ensemble ended up working better than I thought; it has yet to crash.

I then set out and began the actual design of the site. The first aspect I focused on was the graphical aspect. I designed this with a combination of dhtml, css, html, php (dynamic portions), and flash to try to make it easy to use and also interesting in the graphical sense. I then began posting a corporate directory and other static information. Also, toward the end of my first rotation, I started the coding of some of the basic tools of the intranet.

During this rotation, I also began to learn a great deal about Windows 2000 based networks. During my first rotation, we began to role out Windows 2000 based machines. I got to learn about Microsoft networking subjects, anything from wins and dns servers to basic network topology.

Second Rotation Jan. 01’-May 01’

When I came back from school, I got immediatily involved in creating a dynamic web reporting tool for the marketing department. This would be the largest intranet based program I developed so far. The goal of the project was to create pdf-based reports on the fly. The user had to be able to select any number of criteria (or columns), and be able to select any number of records. This is where I finally realized the importance of Object-Oriented Programming. Previous to this project, all of my code was function-based. OOP became vital in its ability to abstract the information that was returned from the database and transform the information into a pdf-based report.

Let me give a little detail into what is involved when creating a pdf-based report with php. When creating pdf-based reports, you need to specify where every little element of the report will be located. This is easily accomplished when you have a standardized set of criteria to be displayed, but this was not the case. I had to develop a way to create a report not knowing what criteria, and what records would need to be displayed. OOP allowed me to add enough layers of abstraction to learn as much about the data before displaying it. Ever since, I have not written any code that has not been somewhat OO-based.

During this semester, I got a deeper understanding into how a WAN and LAN actually work. Over this semester, the company brought up and linked several offices and field offices (job sites) using VPN technology. I actually learned how to configure a Cisco pix firewall and a Cisco 2600 series router while assisting in setting up theses vpn connections. At the same time, I also continued to get a deeper understanding of Microsoft based networks.

About midway through the semester I was given the opportunity to come up with a way for our jobsites to be better connected to our headquarters. The main goal of this was to find a way to get our project managers their reports electronically from our AS/400 (iSeries). Please bear in mind that these reports range from hundreds to thousands of pages long.

I began to develop a java-based application using the IBM AS/400 Java Toolbox. This toolbox allows the programmer to access basically any feature of the AS/400 via certain objects and methods, as if I was choosing options on the good ole green screen. I eventually coded a solution that could be either implemented as an applet or application. This program allowed the user to view their reports, and do various printer control functions such as: putting a job on hold, spooling a file, moving their reports to a different printer, etc… To understand the importance of this type of program, you must understand that on these massive reports, managers only really care to see a few bits of information on them. By being able to view the reports without printing them allows the organization to save money. This program was eventually tested and was presented to management. Sadly, this program never was implemented, but the ideas it generated did not die.

Third Rotation Aug. 01’-Dec. 01’

This rotation had to be the most productive. I took classes over the summer leading up to this rotation. These were mainly business classes including the business school’s Introduction to Management Information Systems. Generally, this class was simple for a computer science major, but the real value of the class was to look at IT from a manager’s perspective. In the class, we discussed many types of systems such as: OLTP DB’s, OLAP DB’s, Data Warehousing, DSS, MIS, etc… This led me to my first project of the rotation.

I began to look at information on Data Warehousing and OLAP Databases. I first began to implement a data warehouse by trying to integrate are various systems. I set-up a massive database for our Manufacturing Sector, that pulled information from JDEdwards and Fabtrol. By integrating these two sources of information I then pulled them into an OLAP DB and experimented with how OLAP DB’s work. I found that OLAP DB’s are extremely powerful ways of analyzing information. I experimented with MS SQL Server OLAP Services and with IBM’s DB2 OLAP (Essbase). The one thing, I also learned from these experiments was that how a user keys information into an OLTP DB determines how useful that information can become.

After my experimenting with OLAP, I began to assist in the planning in upgrading our network. This involved bringing up a separate new Microsoft-based Windows 2000 network, including Domain Controllers (Active Directory), DNS, WINS, DHCP etc… This also includes the designing of how the routing of network traffic between different routers and switches would be configured, along with our new backup ISP pipe. The designs have been partially implemented, and should be completed sometime in the summer of 2003.

My main goal of the semester was to figure out a way to better connect our job sites, with the rest of our company. From learning various technologies that were available, I set out to accomplish what I originally planned in the java application I wrote in my last rotation, and much more. I suggested that we should push forward to develop an extranet. The idea of developing an extranet has been floating around since I began co-oping with American Bridge, but never came to fruition. I thought that an extranet would help in solving the largest inefficiency that the company had, a totally distributed corporation. American Bridge has five main offices across the US, but we also have field offices at each of our jobsites, which are spread all across the US, Canada, and The Bahamas. Now these jobsites can exist from six moths to four sometimes five years, so it is a challenge to constantly keep various jobsites connected to the main offices. This is where the extranet becomes huge. Using the extranet, any job site in the world will be able to access American Bridge’s various systems.

The three main goals that the extranet needed to provide to the job sites were ability to access e-mail, work in JDEdwards, and a distribution point for information and reports to jobsites. So I began to design the extranet by picking certain components that would satisfy our goals. The two main commercial components we used were a web-based emulation software and Microsoft Outlook Web Access. I then integrated these components into the extranet using several other technologies including: PHP, MS SQL Server 7.0, JavaScript, Java, SSL, other Security Mechanisms, and IBM’s Infoprint Server (currently in the planning stages of use). The extranet also was designed for the future by allowing it to be totally database driven and having the ability to give different users different abilities, for example a vendor cannot access our e-mail system. As of right now, the initial phases of the extranet have been implemented and are beginning to be used by various members of the organization. Hopefully, a majority of the organization will be able to see the value of an extranet and further build on the existing framework.

Conclusion

Co-oping provides the student with the ability to see how things work in the real world. This experience in the real world also helps in the classroom. I used to think the projects that we were assigned in my CS classes were so difficult, but now they seam like nothing to what you get assigned in industry. More importantly this experience gives you confidence in your abilities as a computer scientist.