Posts Tagged ‘Masters Degree in Software Engineering’

By Mike Hubbartt, © Copyright 2011, All Rights Reserved.

I just started my second year of graduate school at the University of St. Thomas (UST) in St. Paul, MN, and I am working on a MS in Software Engineering degree. In my first year of classes, I enrolled in 2 classes per semester which is a heavy load when working full time. I felt I progressed so much after one year, that I would continue with the same workload, even though it left me with little time for things beyond work and school.

I enrolled in two classes for the Fall: Object Oriented Analysis and Design (OOA/D) and Data Warehousing (DW). Before classes started I re-read The Object Oriented Thought Process and Code Complete to prep for the OOA/D class. I also ordered both required textbooks from Amazon.com at a substantially reduced price compared to the new text prices in the bookstore. For the DW class, I didn’t know what other books would help, so I ordered all three text books listed in the course syllabus. The DW books, also from Amazon.com, were also at a reduced price compared to new books at the bookstore.

I had classes on Tuesday and Wednesday evenings, so I dedicated the other 5 days to studying and project work. The Fall really flew by this year. So much to learn, so many interesting and new concepts, and a few new tools to learn too.

Tools

For OOA/D, we had to use MagicDraw to create UML drawings and I found it to be a fairly intuitive tool to use yet still quite powerful. Our OOA/D professor arranged for MagicDraw licenses, so I obtained one, downloaded and installed the software, and ran through a few tutorials that were quite helpful. Having an MSDN account for students to download Microsoft tools is a real blessing, and UST does provide accounts to those that need tools for their classes. My DW class required the MS SQL Server 2008 Management tools, so I used my UST MSDN account to download the software and installed it on a laptop running Windows 7.

Projects

Our OOA/D class had two person team projects, and our DW class had three person team projects. For OOA/D, each team decided what it wanted to do and then proposed it for approval to the professor. We did a website with Struts and Hibernate frameworks – very cool. For DW, the professor gave a five stage project, where he provided clean, valid data at the start of steps 2 – 4, so any mistakes made early in the project did not affect our ability to learn the material and do well on the assignment. This was the first time I’ve had known clean data in a multistage class assignment and I really liked it. At the start of stages 3 and 4, we were able to look back at to what we did and see how we did right and wrong in the earlier stage. This is one approach I really liked and I hope I see more assignments like it in the future.

Some tools that were useful in both projects we communications tools. Twitter and email absolutely rock, but they alone are not enough. In my OOA/D project, we used a free SVN repository hosted by ProjectLocker for keeping our source code in sync. For the DW project, we used Dropbox to do version control.

Tests and Homework

In both classes classes we had a mid-term and a final exam, and the exams were as challenging as last year. Both classes had multiple homework assignments. Not as much homework as I had in the Advanced Web Development course last Spring, but still more than enough, especially compared to undergrad course homework assignments.

Team Building

I worked with three different people on projects in both classes, and decided to be the driver of both projects. Both teams met at my house on different days to work on our projects, and one thing I did for team building was to fix lunch for the team. We all had different backgrounds and experiences, so a meal is a great way to relax and get to know other people. I like to cook (check out my food blog: mikeh2010.wordpress.com) and I like to try new recipes, so my team mates gamely tried the food. I didn’t duplicate the meals one time, and it seemed to work out well for both of us except perhaps one time. Once I served something very spicy (Korean BBQ) and it might have been too spicy for one of my team mates. He said it wasn’t, but he is a real trooper and may have just been polite. In any case, I appreciated the chance to cook and just talk with all three team mates and hope to partner with them again in other classes.

Conclusion

I enjoyed this semester. I learned a lot and enjoyed spending some time working on projects with my three classmates. I plan to generate another article or two on the topics we covered in both classes, as well as improve some of my existing articles. I know I still have another eight classes to complete my degree, but the education is worth the time and effort. Some people have no choice but attend online schools and that is fine – do what you can to improve yourself however you can. If you can attend class in person, it is well worth it. I missed a total of 1 class this semester, even though I had some health issues early in the semester, because I truly enjoyed being on campus.

I’m still excited to be in grad school, and I still believe it to be a good career choice for many professions besides software development. I’m taking a week off, then it is time to start reading again over the holiday break. I will take two classes in the Spring and look forward to what I learn in both courses I’ll take this Spring. Until then, keep on learning.

By Mike Hubbartt, © Copyright 2011, All Rights Reserved.

I graduated with an undergrad degree in Computer Science in the Spring of 2010, and I enjoyed it so much I decided to go on to graduate school and ended up enrolling at the University of St. Thomas (UST) in St. Paul, MN, and started on a MS in Software Engineering degree in the Fall of 2010.

When I enrolled at UST, I used my experience in under grad courses to determine who many classes to take each semester. Half time in grad school is 1 class, and a full time load is 2 classes, so I decided to take 2 classes per semester. That was a mistake, because graduate school classes take so much more time and effort than undergrad classes.

After taking 4 classes this past school year, I found we read and absorbed an average of 3 books per class, had at least 1 project per class, had 3 – 10 homework assignments per class, and had 2 exams (mid term and final) per class. The part that was most difficult was the classes require the students to learn a variety of tools to use during the course, and these tools are not simple and each one takes time to learn, which takes away time from the assignment needing that tool.

I’m not complaining. I probably learned more over the past year than any 5 year period working in the software industry. I’ll go into each of the classes so I can give the highlights from each course.

Software Engineering is one of the first required classes and our professor was very knowledgeable and did not hold back. When he assigned our team projects, he specified that we use repositories and Twitter to document what we did during the course of the project. I have used repositories, but had little experience with Twitter. I discovered how much Twitter can help quickly communicate short topics and so it has become part of my technical tool belt. I have an account and post from time to time. The textbook was absolutely worth keeping and it is now part of my library.

There are two web design/development classes at UST. The first is web design, which is focused on front end development. I really enjoyed the class because I’ve worked with the web since the mid 1990s and was comfortable working with it. I thought I might not learn a lot but that was not the case. The professor had current technology information and covered a ton of things I was unfamiliar with. We learned about commercial and open source web design applications, but did not have a textbook for the course so I kept the PPT slides for future reference.

Our database class required that we use PowerDesigner, which was my first exposure to that application. I count myself fortunate to have taken 2 database classes as an under grad student, and the professor (Shana) was excellent. The professor that taught our grad course taught more than theory – he taught the material in a way to clarify some concepts overlooked or skipped in under grad database classes. The textbook was one I’d used in the first under grad database course I took, but it was not as useful as the lectures. I would love to see that professor write his own textbook, because his lectures were great and the textbook just wasn’t as useful as the information we received in the classroom.

The second UST web course is web development, and to say it was challenging is a major understatement. This class is focused on server-side web development, and it is assumed you took and knew everything in the first class. Our first homework assignment was to use Python to write a web server, then create a web site that passes images and html content. Whoa! I used my Macbook, which already had Python installed, so I enjoyed the assignment. Apparently I was the only one in class that was not unhappy with the assignment. The homework only got more complicated, and we learned and used PHP, AJAX, MVC, Ruby on Rails (or ASP.NET), and MySQL to develop back end sites. I particularly enjoyed the homework assignment where we had to create a mashup, which was fun and my first exposure to them. I also enjoyed the assignment where we needed to create web content that was viewable via mobile devices, and found it so interesting that I am spending part of this summer trying to learn more about this. Mobile apps rock. We had a team project and the team I was on did an e-commerce application that we hosted on a Amazon EC2 Windows 2008 server instance with the Zend framework installed. Fun. Tough, but fun. We had 1 required book, which was good because it made many references to web content which had current information on the technologies covered in the book. We had a optional book on Ruby on Rails that I also purchased and found it good enough to keep to learn more about this language.

I had intended to go for a second under grad degree in English after completing my Computer Science degree, but now I am so glad I went on for a Masters Degree. The topics are deep, the professors expect a lot but they will go out of their way to help you if you ask for assistance. I won’t have any of the same professors this Fall, but wouldn’t hesitate to take another class with any of them.

I’m reading ahead this summer, but also am taking the experience from the first year and am digging into the tools needed for the topics covered in my fall classes. Yes, I’ve enrolled in 2 classes this Fall and expect I’ll take 2 in the Spring, which is a hard load but it lets me complete the program in 3 – 3.5 years, which is one of my goals. If it takes longer to complete the degree I won’t complain. It took me 3 years to complete my under grad degree and I can handle another 3 – 4 years for a Masters Degree. I’ve spent my career in development and know I will be far better at my job when I complete this program, and would encourage others that consider it to look into it. If it makes you better at your job and the cost and time are reasonable, it is worth the effort.