Jun 17, 2018

Software Engineering and Management program - The breakdown

It's finally here! The moment I've all been waiting for: The Summer Holiday!

The only bad thing is that I have to work during the whole thing...

Anyhow, this means that I made the first year of university after all! It wasn't as difficult as I had feared when I first started, but also it wasn't always as great as I had hoped (at least course wise).

A classmate reminded me about a post I had written around half a year into the program, about how I liked it and thought I had picked the right program, well, turns out those feelings wouldn't last forever.

Just a few weeks after our official one year at the program I started to desperately try to find any way I could out of it, but it was too late. I am stuck here, and that's ok, I suppose, BUT if I could go back and change my decision to enter this program, I would.

So because I want to let other students know what they are getting themselves into when applying for this program (Software Engineering and Management at Göteborgs universitet / Gothenburg university) I thought I would do a bit of a breakdown of its courses and how it's structured, and tell you about the courses I've had so far, and how I feel about them.
Let's get started!
----------------------------------------------

----------------------------------------------
Year 1 courses (each are 7.5hp, they always go 2 in parallel):

Mathematical Foundations for Software Engineering
Rating: Bad
This course had some fun parts, since we covered a lot of different topics in math, but it was way too crammed, with a new math subject every week. I studied like crazy for this exam, like I've never studied before, yet I still barely passed, because there were just too many things we needed to know in a very short time.
The supplies we got from the teachers (mainly explanatory videos) were really bad, and didn't help at all, so I had to find other videos on youtube to actually help me.

Object-Oriented Programming (Java)
Rating: Good
This course was great, great teachers and layout and such. I learned a lot even though I had already studied a bit of Java and knew most of what we did in the course.

Requirements and User Experience
Rating: Good
This course was boring, and I didn't really see the point of it at first, but the teacher was good (a bit cranky though), and the course layout was very well made and it felt very organized. It contained no programming, which was sad.

Mini Project: Team Programming
Rating: Bad
In a group of about 5 to 7 people we were supposed to build kind of a "library system" for borrowing and lending books. We were pretty much given free hands as to how to go about doing this. Thing is, we were supposed to be using SCRUM etc, and learn how to manage a project, but they didn't teach us anything about management beforehand, so it just felt super disorganized and I just got the feeling that we weren't learning as much as we would have if they had given us a course in management and project work before throwing us into this.

Data Structures and Algorithms
Rating: Bad
This course was a giant mess and the teacher shouldn't be a teacher at all, because they were too fragile and I worried for their mental health at times. What I learned from this course was from youtube videos and google searches, because there was simply nothing good being provided at lectures, and the teacher barely knew what they were talking about at times.

Data Management
Rating: Good
Another well structured, well organized course with good content. We got to learn SQL and a bit of NoSQL, etc.

Software Analysis and Design
Rating: Bad
This is kind of like the continuation of the "Requirements and User Experience" course, and was all about how to design software using different models. Again, I think it's boring, but I can see why it's important to developing well-structured and modular software. Sadly this course was not as good as its predecessor. It was messy, the teachers didn't seem to care about us and never answered our emails, and there were barely any lectures. After extensive complaints from students they started to try to fix it at the end of the course, but it was a bit too late at that point.
Also the exam was crazy big, with no time to finish all parts without hurrying like crazy, and even the people that usually always get a VG felt like they had been screwed over by this exam.  

Mini Project: Systems Development
Rating: Bad
Another projec course! Like the first one we had to be in teams of around 5-7 people, but this time we didn't get to choose our own teams... !
This course was a big, vague mess for weeks and weeks, and made me suffer a lot.
We were supposed to program a robot car to autonomously parallel park itself using Arduino, and later they also added that we had to use a Raspberry Pi for something too. My group used the Pi with a PiCamera to try to make the car detect traffic lights.
----------------------------------------------

----------------------------------------------
Final verdict:
So, there you have them, our courses for year 1!
As you can see, most of them are bad, and it's not just my opinion reflected up there, but almost all my classmates opinions as well, because every day before class you know there's going to be trash talking about a course going on, if that course happens to suck.

Main problems:
Unorganized courses
Many of the courses we had were badly structured and very unorganized, and courses like the "Mini projects" take up way too much time, time which I would've liked to also spend on the other course as well.

Project courses
Working in such big groups, where some people don't work at all and you have to pick up their slack sucks. These courses are mostly just about googling, because you don't know anything you're supposed to know. They don't bring anything to the table that you couldn't learn in a better way if the course was restructured. 

Problem based learning
Also the mini projects do not teach us enough, because they are built on some random idea of "Problem based learning" where you don't teach the student anything, you just give them a problem and tell them to figure it out on their own. Trust me, it sucks and is a bad way of teaching anything.
What if a piano teacher just gave a total newbie a piece of sheet music and told them to play it? The student wouldn't know what to do, and would have to spend hours and hours google searching something the teacher could've just told them straight up right then and there.
That's basically how it was for us during these 2 mini project courses.

Not enough programming
Another thing that bothered me A LOT is that we have only had 1 single programming course this year (I don't count SQL here, but maybe other people would). And one of the biggest reasons that I applied for this program was that I thought there would be a lot of programming!
Before I applied I even emailed the people responsible for this course and asked them what programming languages we would learn, and they listed around 7 different languages! So of course I felt really good about it.
Turns out software engineering is not mostly programming though, but really it's about making models. That's why we have a lot more architecture courses than programming courses.

Management
Maybe I am stupid but I thought that the management part of "Software Engineering and Management" was about managning software, not projects. Turns out I was wrong. Which would have been ok if they had actually thaught us any good management skills, but they haven't.

Missing courses for masters
When you finish this program there are not a lot of options for masters programmes you can apply to, unlesss you like me in some roundabout way find a way to study extra math courses during year 2.
In year 3 we have half a year to study whatever courses we want, and in an ideal world this would be where we could study all those math courses we need for masters, but it's not. The math courses I need aren't even available as stand alone university courses in Göteborg. So I have to apply for internet university courses in these math subjects, and hope that I get a spot, and hope that they do not get cancelled, because if they do, I will not be eligible for the masters I want.
----------------------------------------------

----------------------------------------------
What's to come:

Year 2 courses:

Fundamentals of Software Architecture
The continuation of Software Analysis and Design, with the same teachers...

Mobile and Web Development
(Finally some more programming)

Software Development Methodologies

Mini Project
(Ugh!)

Cyber Physical Systems and Systems of Systems: Development of Embedded and Real-Time Systems

Software Quality and Testing

Project: Cyber Physical Systems and Systems of Systems, 15hp
(Double ugh! A project course that is twice as long...!)
----------------------------------------------

----------------------------------------------
Year 3 courses:

30hp - Elective courses (I will be adding a lot of programming and more math here)

Software Engineering Research and Practice: Startups and Industrial Software Product Management 

Research methods in Software Engineering

Bachelor Thesis in Software Engineering and Management, 15hp
----------------------------------------------

----------------------------------------------
Okay, this has gone on long enough. All I can say is that I think that year 2 is going to be quite difficult for me, with it's 22.5 hp of project courses (which are my least favourite of all the courses)! Year 2 is basically the reason I didn't want to continue this program, along with just the general awfulness of a bunch of other courses.
But like I said, I have to continue, it's too late for my to apply for other programs now...
And if I can just get through this second year, I will have a great 3rd year (I think), because there are no mini projects the 3rd year and I have found a bunch of nice courses I want to apply to.
But that's just me. This is an international program after all, and most of the students are not Swedish, and some of them don't speak a lot of Swedish, or for some other reason cannot apply for different courses outside of this program.

So, here's why you shouldn't apply for this program if you are not Swedish, and don't have a certificate saying that you are eligible to apply for courses thaught in Swedish:
You will not be eligible for almost any computer/programming related masters, and during your 3rd year you will most likely not be able to pick any course you want, because only a few of them are available in English in Gothenburg.
So if this is you, you most likely wont be able to apply for those 3 math courses you need to be applicable for most masters in fields like computer science etc, and a lot of doors will be closed to you. You also wont be able to apply for any courses outside of software engineering for your 3rd year, which also sucks.

 Before applying for this program I read posts on different forums online about people talking about the problems about this course, and those problems still persist to this day. I didn't listen to them, I thought maybe they were outliers, but now I know that they were right.
It's too late for me to change programs now, and I've come to terms with that (pretty much), but it's not too late for you! So if you are considering applying to this program, really think it over, try to find as much information about it as you can to see if it really is for you. Talk to students and talk to the people in charge of the program, because knowing what you are getting yourself into can save you a lot of pain.
Honestly the only reason I am still at this program is because of the awesome people and friends in my class, that brighten up the dark times, haha.

Ok, sorry. Rant is over now, time to enjoy my Sunday! :D
 

No comments:

Post a Comment