Saturday, June 29, 2013

First semester of Software Engineering

First year of software Engineering at Newcastle university

So first semester is over, finally. And here are my unsolicted thoughts on each of the courses that make up first semester of Software Engineering (except for Math1110, I needed to do the foundational Math1002 first)

Elec1070
Lectures:
Generally excellent, the material was explained in detail by the lecturer, and the course seemed relevant.
Tutorials:
Largely covered the theory shown in the lectures. These were slightly less excellent, though still good.
Assignments: Well thought out and challenging, but not in a unachievable manner if you kept up with the course. The final assignment is unlike anything I've ever done before, and quite rewarding when it works.
Exam:
Also challenging but fair.
Overall: 9/10.
This was easily the best course of the semester. Despite being a somewhat challenging topic, the course notes were excellent, and was kept afloat by the commited and knowledgable lecturer. The only way to possible improve the course would be to perhaps slightly reduce its scope so the topics can be covered in more detail, for example, covering assembly language I thought is largely unimportant given the purposes of the course.

Math1002:
Lectures:
The lectures started off being complete rubbish. The lecturer would seemingly babble on to himself while completing several apparently unrelated mathematical problems, frequently getting the wrong answer. After he requested student feedback on his teaching, he lectures dramatically improved. While the lectures still weren't particularly good, the fact that he was willing to listen to feedback and actively work on his lecturing is a point to be proud of, and something that you wont often find.
Tutorials:
The style of these was to break up into groups and as a group work on task sheet. This was an ok format, but working in a group allows some students to slack off. This was followed by a quiz at the end of each tutorial. The quizes were always well thought out and of appropriate difficulty for the course material.
The course coordinator also went out of his way to record talking PDF formats where he went through and demonstrated the solutions, which was an incredibly useful thing to have when you had difficulty with a topic
Assignments:
There were two longer answer assignments. These were also well thought out for the difficulty level of the course
Exam:
Was largely multiple choice with a longer answer in the back. I was somewhat disappointed that despite my effort in the course, someone could potentially get lucky and achieve a similar mark by guessing.
Overall: 8/10:
The early lectures let down the course somewhat, but the dramatic improvement along with the other excellent aspects of the course mean it was overall worthwhile to undertake

Geng1803
Lectures:
These were at 8am on a monday. Taking into account that this entire course is basically foisted upon students in order for the degrees to satisfy Engineers Australia's requirements, they were ok. The course however is seemingly irrelevant to Software Engineering.
Tutorials:
These were problematic. We had a tutor who despite his age and experience, seemingly embodied the "I'm here to get paid." mentality, often providing unhelpful answers for our questions and assignment feedback. Our group assignments were also always marked in increments of 25%, despite the possible assignment marks not being out of 4, which indicates he offered minimal scrutiny to the work before marking it.
Assignments:
This course is famous for the much hated groupwork. The fact is, groupwork is easier for the lecturer because its less to mark and organise. He further insulted us by constantly telling us that it was for building teamwork skills and other things that have nothing to do with reality. If he was serious about building teamwork skills, then the groupwork would be limited to second year courses where the uncomitted students have dropped out - out of six, we had two students basically not do any work.
Exam:
A giant multiple choice test which asked irrelevant "spot the grammatical error" and "Calculate the net present value of this project from an alternate dimension where accountants dont exist and Engineers are actually responsible for carrying out the financial calculations of multi-million dollar projects" questions. Once again, i was disappointed with the amount of preparation I put into the course, only to be faced with a multiple choice answer.
Overall: 5/10
This course is well hated for its groupwork and the fact that it takes place at 8am on a monday. These aren't valid reasons to dislike the course - there will always be lectures early in the morning, and there will always be groupwork in your life. What are valid reasons to hate this course on the otherhand, is the fact that the groupwork has been used to allow the course to be incredibly lazy, despite being relatively expensive. These suspicions are further confirmed by the Tutor's teaching skillset being limited to basically putting in an appearance at the scheduled tutorial time and no more, and the exam being multiple choice so a machine can mark it. On top of this, the entire course almost didn't acknowledge the existence of the Software Engineering discipline, which made my cohort take it even less seriously.
To improve the course, I'm not sure what I would do. I honestly believe the course's very nature is flawed and should be a separate subject that is far more discipline specific, and in second year.

At work, I was talking to a guy who had taken Seng1110, introduction to programming, and had never programmed before. He had dropped out, citing that the lecture slides make no sense, and he couldn't even compile a simple program because nobody had shown him how, and the lecturer, nor the tutors had demonstrated it.
So now, we get to by far, the worse course of the entire semester, which is even more surprising even that the course was apparently revamped from last year.

Seng1110:
Lectures:
The apparently zero effort that went into the course is evident in the lecture slides. They are literally the teaching material from the prescribed textbook, with "university of Newcastle" watermarked on them. In .ppx format, the lecturer didn't even bother to convert them to PDF to make them easy to view on mobile devices, despite ostensibly being a programming expert. Furthermore, she failed to program a single line of code. That's right kids, the lecturer for this introduction to programming course, did not write a
single line of code for us, nor compile anything. Infact, it's quite possible she was several aardvarks stacked together in a human suit, because she demonstrated virtually no assumed skillset of a Software Engineer.
Tutorials:
These were also incredibly lazy. We were herded in groups of about 60 students into a single room with two tutors, and then told to basically, by ourselves read and follow a sheet of instructions. No wonder students who had never programmed before had such trouble, they were being asked to peform tasks that they had NEVER SEEN DONE.
Assignments:
The assessable items of this course were probably the worst part, and consisted of a mid semester and two programming assignments. A word to describe the assessable items of this course would be "thoughtless." The midsemester exam yielded an average mark of 64%, which she seemed really please about. Considering there were many people like myself who could already program all achieved marks of around 90%, this means that other students who were at her mercy to learn how to program from scratch probably received marks of 40%. The fact that she told us that this was a good mark demonstrates how out of touch with reality this lectuer is.
Furthermore the programming assignments were atrocious. For example, both assignments said "It's up to you to determine what information is missing and find out". That's right, she actually wanted us to go on the forums and ask about an assignment that it was her job to set up. She then uploaded a bunch of forum question and answers, which contained NEW AND KEY INFORMATION ABOUT THE ASSIGNMENT. My suspicions that the assignments were thought up by her in a single night just before bedtime were strengthened when, after programming them, the assignments turned out to be way, way beyond the scope of the material we had covered, and were easily more work than all the other assignments from the other subjects COMBINED. I'm pretty sure it's against the university policy to hand us incomplete assignment specs. And to add insult to injury, when we received our marks back, the marking criteria actually contained criterion that were not in the original marking criteria. Awesome.
Exam:
Once again, thoughtless. There were spelling mistakes in the exam, and she gave us code examples in some questions that actually answered later questions unintentionally. How stupid is that? Also, there were certain questions that did not even appear to be in english, and lower mark questions that turned out to be much more work that questions worth more marks!
Overall: 2/10
The fact that this course is supposed to be important and foundational to Software Engineering, Computer Engineering and Computer Science, and has potentially left many potential programmers with a very bad taste in their mouth makes me even more contemptuous of this course. I can't even recommend any way to improve the course, because in its current form its unsalvagable. Removing the lecturer and completely dumping the course and its content is the only way to go.

Overall, I enjoyed my first year of software Engineering, with the unfortunate exception of Seng1110. Next semester I get to enjoy Math1110, Math1510, Comp1050 and Seng1120.

No comments:

Post a Comment