Blog Archive: Software Engineering

Why Study Software Engineering at MSOE?

About a year ago, a high school senior researching colleges wrote me to learn why I chose MSOE. I wrote the overview (novel?) below. I recently met this student at an MSOE function, and he said that what I’d written helped him to make his decision. Whether or not you decide to go to MSOE, I hope what I’ve written will be equally helpful for you.

A few caveats before I begin. I graduated from MSOE in May 2007, so some of what I’ve got to say may be slightly dated. Also, you’ll find that most of what I’ve written is fairly positive. This is not completely normal for me, as I tend to be a pessimist. Two reasons for this: One, I really feel that my experience at MSOE was valuable and, though it was a challenge, and required a lot of hard work, the benefits (from the perspective of two years out) outweigh the pain. Two, I’ve come to realize that when I recall memories, I tend to shed a more positive light on an experience than it appears while I actually experienced it.

Here we go …

There were several reasons I chose MSOE over other schools; I’ll go over those in a little detail, talk about some of my experiences, and then address specific questions I’ve been asked.

Private School vs. Public School

Before learning about MSOE and their software engineering program, I figured I would attend U of I in Champaign/Urbana, where many of my high school peers studied. I’d also heard that they have a good computer science department. There are positives and negatives to large schools; my personality and interests aligned more closely with the advantages of a small private school, so that’s the route I went. Some of the specific advantages of MSOE in this regard:

  • Small class sizes – The biggest classes I ever had at MSOE were physics classes, which had about 20 people in the laboratory component of the class, and combined with another section for lecture, for a total of about 40 students. Small class sizes mean you don’t get lost in the crowd, and your professor knows you by name and has the time to answer your questions either after class or during lecture. I understand that lectures at larger state schools often have 200-300 students.
  • Professor-led classes – All courses at MSOE are taught by professors who either have an M.S. or Ph.D. and real-world experience in a related field. Your instructors therefore are qualified and knowledgeable about the material. One professor, Dr. Durant, got his Master’s and Ph.D. right after graduating from MSOE with his B.S., and started teaching immediately. He, too, has real world experience; he spends his summers doing research. Other professors worked in the industry before joining the faculty at MSOE and also spend their summers doing something interesting in a related field. To compare, many courses at larger schools are taught by Teacher’s Assistants who are working on graduate school work and have little real-world experience.

Software Engineering vs. Computer Science

When I started looking at colleges, Software Engineering was a relatively new field. MSOE’s SE program wasn’t accredited until they graduated their class of 2003, which is the same year I graduated from high school. So, there weren’t a lot of schools for me to choose from if I wanted to go the Software Engineering route. MSOE was the closest school to home with a Software Engineering program, so that made my decision pretty easy. The only other school I applied to was Rose-Hulman Institute of Technology, which, at the time, had a computer science program with an emphasis in software engineering. I just took a quick look and it appears they now have an accredited SE program; the courses look very similar to those I had at MSOE.

Software Engineering shares a common foundation with Computer Science, but it goes beyond that, applying engineering practices to that discipline. In a Software Engineering program, you learn not just how to write code, but how to build software. You learn the processes: Gathering requirements (so that you build what the customer wants and needs), building a robust design that accounts for all the requirements and is sustainable and will support the needs of the client going forward, writing the code, and ensuring quality through testing. And, even more importantly in the business world, estimating accurately how long a project will take and how many defects it will have, and at which phases of the project. Now, I’ll admit, even though I graduated from MSOE’s Software Engineering program with a decent GPA, this last item, namely estimating effort for a project, is still a discipline, the surface of which I am only beginning to scratch. When I was in the program, we had a single course that discussed some specific estimating processes (PSP); but I think they’ve made improvements since then to use some of that methodology in subsequent courses to help students to better realize the value of these practices.

Professors

As with any school, MSOE has its share of good professors and bad professors. There’s a web site – ratemyprofessors.com – that can be helpful when it comes time to pick your classes.

As for specific professors … I’d like to highlight a few professors for you. I think a good professor takes pleasure in seeing his or her students learn and succeed. I would say that is abundantly true for each of these professors. This list is, by no means, exhaustive; there are several others who I could mention. Also, since I started at MSOE, there’s been some turnover among SE professors at MSOE.

  • Dr. Sebern is now the program director for the SE program. He’s spent a lot of time at Carnegie Mellon’s Software Engineering Institute. If I recall correctly, the Software Engineering discipline originated at Carnegie Mellon; Dr. Sebern’s close relationship with the people there ensures MSOE’s SE program is always on the cutting edge.
  • Dr. Taylor was my faculty advisor and was a real nice guy; I never had him for class but those who did said they really liked him as a professor.
  • Dr. Meier is one of the Electrical Engineering professors, but I had him for a few of the courses in the SE track. His classes were the most difficult I had at MSOE, partly because of the material, partly because of the way Dr. Meier quizzed us. But I liked the challenge and appreciated Dr. Meier’s humor and teaching style.

Other memorable / noteworthy professors in other disciplines include Dr. Yaz (Math), Dr. Korn (Physics), Dr. Jung (History/Social Sciences), Dr. Swiontek (Electrical Engineering), and Dr. Howell (English).

Real World Preparation and Hands-on Experience

MSOE’s approach to education, as a whole, includes all sorts of hands-on experience. The Software Engineering program, specifically, provides two venues especially geared toward this end:

  1. The Software Development Laboratory (SDL) begins during the winter trimester of junior year and lasts for three trimesters. In the SDL, you’re placed into a team of several students (4 or 5 when I was in it, but I understand the teams are a little bigger now – perhaps 6 or 7) and assigned an existing project. Your task is to pick up where the previous team left off; define goals, determine what tasks to complete during the quarter, divide up the work, monitor progress, and report on successes. Most projects have a stakeholder, usually external to the Software Engineering department, often someone from the industry.
  2. All engineering students at MSOE are required to complete a senior design project. Again, teams consisted of 4 or 5 students, often working together in a cross-discipline project. This time however, we were not given an existing project to complete but were given the opportunity to decide what we wanted to work on and complete the project from the ground up.

In both the SDL and Senior Design projects, teamwork plays a vital role to success. However, teamwork is not introduced for the first time in SDL. Rather, from square one, students work in teams. My freshman year I had at least two classes in which I remember working on teams. That being said, not all work is team-oriented; I felt like MSOE provided a good balance of team and individual projects.

In addition to real-world learning in the classroom, MSOE students have a variety of opportunities to gain real world experience through internships with companies in the Milwaukee area.

Job Placement

When it came time for me to find a job, my experiences at MSOE enabled me to answer the interviewers’ questions satisfactorily. It is common practice for companies to ask behavior-based questions. For example, “Tell me about a time a member of your team was not carrying his or her weight. How did you handle the situation?” Over and over again, I answered such questions by referring to specific experiences either in the SDL, my Senior Design project, or my internship. I received several job offers and was able to take my pick which company I worked for.

Obviously, right now, the economy isn’t doing as well as a year ago, so I’m not sure about current placement rates, but MSOE graduates have historically been a hot commodity. Software Engineering, specifically, has been one of the fastest growing career paths for a few years now, and I can speak from my brief experience in the “real world” that companies always looking for more qualified, skilled, software engineers to bring life to our projects. Now and then, hiring rates might slow, but given a little time, it picks back up again. Even in our current state, I’ve heard that companies are starting to hire again. Four years down the road, the market will be in a completely different place.

Social Atmosphere

My freshman year, my dad told me that the friends I’d make in college would be friends for life. I haven’t been out long, but so far that has proven to be true. My closest friends and I all live in the Milwaukee area now. We lived together after graduating until we each got married, we were in each others’ weddings, and we hang out fairly frequently.

There are two additional aspects of the social atmosphere at MSOE that you’ll want to keep in mind when making your decision:

  1. Male to Female Ratio – When I was looking at schools, my uncle made a comment to me that many people meet their spouse in college. MSOE’s male to female ratio is approximately 75% men and 25% women. In the software engineering program, the ratio is even lower. My class had 0 women; other classes before and after had 1 or 2. For some guys I’ve talked to, this is a deal breaker. For others, it’s not a problem. About half of the married couples I know from MSOE who my wife and I spend time with regularly both attended MSOE and met while in school. The other half of the guys (myself included) went to MSOE but married a graduate of a different university.
  2. Finding Students with Similar Interests – Non-engineer types often describe the majority of MSOE students, especially those in the Software Engineering program, as nerds. My freshman year a friend told me he didn’t really fit in while in high school and was pleased to find that many of his peers shared similar experiences. You’ll find that most of the guys in the SE program (yes, there are very, very few women in the SE program) share a common interest in video games. I’ve never enjoyed video games all that much; instead I found a common bond with other students in the InterVarsity Christian Fellowship (IVCF) organization on campus. We’d have Bible studies on a couple different floors, weekly meetings with the entire chapter, and even occasional meetings with IVCF groups at nearby schools such as Marquette, UWM, Alverno, Mount Mary, Caroll, Carthage, and UW-Parkside.

Dorm Life

Unless you’re from the Milwaukee area, you’re required to live on campus your first year or two. After these first two years, many students move out. I chose to stay in the dorms all four years. I felt like living in the dorms gave me a good opportunity to meet other students, spend time with friends, and participate in the Bible studies led by IVCF. One of the things I really miss about dorm life is the fact that I can’t just walk across the street to get together with a bunch of friends; we’ve all got to get on the phone, find a time when we’re all free, and drive to someone’s house.

MSOE has three dorm buildings: the two main buildings, RWJ and MLH, house two people in a room, 20 rooms and 2 bathrooms (2-3 sinks, showers, toilets) per floor. The third building, Regents, has more of a suite concept; each suite has up to 5 people.

I stayed in RWJ all four years. The rooms in RWJ and MLH are small, but you can do a lot with them. MSOE allows students to build their own lofts for their beds, so you’ll see people come up with all sorts of creative ways of maximizing space in their rooms. My freshman year, I bought a deck from someone else, which raised the floor by the windows up 22 inches and provided additional storage space. My dad built a folding loft, which allowed us to flip our beds up “into” the wall when we weren’t using them. You can bring your own TV, gaming console, decorations, etc., to make your dorm room feel as much like home as possible.

Graduation Rate

I don’t have any specific numbers, so I can just estimate from my experience. I think my class started with 40 or 50 students, and I graduated with about 20 others. So I guess that’s about 50%. Some dropped out because they played too many video games, some changed programs, and some decided MSOE wasn’t the school for them. Is MSOE’s Software Engineering program challenging? Yes, but not so hard that it’s impossible. The challenge is what makes it such a valuable experience. I think most students who drop out are fully capable of succeeding, but are unwilling to put forth the necessary effort to learn the material. Video games, partying, or other distractions draw them away from their school work. I wrote more about how to succeed in college in another post. I really want to emphasize the fact that though MSOE is difficult, you can do it. MSOE offers services to help: There is the TRIO program that helps those who have learning disabilities and a peer tutoring program, and professors are accessible and willing to (even enjoy to) spend time helping students.

Course Load

I don’t have a whole lot to say on the issue of course load other than that it’s fairly manageable. For each of the programs at MSOE, the program director and other faculty members have created a “track” of courses that students must complete to graduate from that program. There’s some room in the track for you to pick electives, and it goes at a very manageable pace. That being said, you still have to work hard. You can view the details of the current Software Engineering curriculum on MSOE‘s web site. If you click any of the courses listed there, you’ll see some details about that course: Required materials, what you’ll cover, etc.

A few recommendations:

  • You get started on major classes right off the bat, so it’s best to know what you want to do when you start at MSOE so as to not get behind. But, if you’re torn between similar majors, such as Computer Engineering and Software Engineering, and decide to switch sometime your freshman year, you can usually work out something that isn’t too painful.
  • If possible, take AP courses in high school and, if they go well, take the AP exams in attempt to pass out of a few courses once you get to MSOE. I was able to skip some calculus and a basic C++ class, which afforded me a little more flexibility in my schedule and gave me a lighter course load my senior year.
  • When possible, limit the number of lab classes you have in a given quarter. Lab classes, because they have more than just a lecture component, usually will consume more time than a lecture-only class. Most lecture classes have 2 – 3 exams and a final. Sometimes there will also be a paper or research-type assignment. It really depends mostly on the class.

Did I enjoy my time at MSOE?

Growing up, I was never one to enjoy school. My first year at MSOE was a bit rough; not because the course load was difficult (Freshman year was actually the easiest), but just being in a different environment, missing home, still in the process of establishing close friendships, etc. All that got better over time.

Looking back, I wouldn’t trade my experience at MSOE for anything. I felt MSOE prepared me very well for working and succeeding as a software engineering professional in the “real world.” I established friendships that I expect to last many years in the future, and have lots of fond memories to reflect upon.

Closing Thoughts

If you get a chance, go to an open house at MSOE! They have them every couple months, and it’s a great opportunity to learn more about the school, talk with a few alums of and some of the professors in the Software Engineering program. You might even get to meet me!

Please don’t hesitate to contact me with any other questions I can answer for you!