Today (Friday) TMA returned this afternoon with 92! Very efficient tutor!
Lost the marks on the section about user interface design – it is more discursive and involves writing about affordance and visibility and how they may be achieved, rather than (like the other questions) specifications and writing Java code etc.
One more to go on M256 and then just the exam – it’s a pity this course has so little influence on my degree grade etc (just due to the way it’s worked out around the other courses and the fact that I’ve done it last) as I’ve found it quite straightforward and easy going! If only T307/M450 were going as well…
I had to ask for an extension on T307 TMA 04 as I’d got behind with the practical work for the project. The TMA is in 2 parts – a 60 mark essay question (choice of 2) then a 40 mark project write-up part. The TMAs seem to be due on a Friday for this course so for any of us who work the “standard” Monday-Friday it makes it quite difficult to complete, but I’d managed until a couple of other things went wrong this week!
Anyway, I think I may have just submitted a ‘pile of pants’ but at least it’s done! I thought that last time though and ended up with a mark of 93 somehow on TMA 03 putting a distinction back in the running (assuming the rest was OK) a possibility that’s likely gone now I’ve written something slightly coherent on “ways governments can influence the innovation process with renewable energy” and for the project progress.
Part of the project was to explore and give justification for how/why the product is economically viable (ie… likely to be profitable) and environmentally sustainable which I’d already done some work on. I don’t think I’ve done enough in the way of drawings etc either but mentioned that some details are still to be worked out in time to submit the final report.
Really I just want to be done with all these courses now and complete the Diploma in Design and Innovation – that’s it then other than the two level-1 courses (T175 and M150) for the degree which are a bit of a step down compared to the rest of it (no disrespect to anyone doing these courses it’s just that I’ve already had the difficult bits to contend with so this should be slightly more straightforward than those at least!) – then in less than a year have the degree finished and then that’s it! I don’t think I’ll want to go to another graduation ceremony though, nice to do once but you never know!
On the ‘StudentHome’ portal the OU have quite a good qualification planner that allows you to plan out courses for a degree and predict a classification. I’ve used this in the past and found it useful though the Computing and Design BSc is still so new (I assume) that it isn’t yet available on the qualification planner so I’ve had to work through manually (diddums!)
Anyway, I think I posted before about the route through the degree – in brief: 60 compulsory points at level 1 (the 2 ‘introductory’ computing/IT courses); 90 at level 2 (T211 design plus either Java or Visual Basic); 150 at level 3 (artificial intelligence M366, interaction design M364, innovation and design T307* and computing/IT project course M450*) plus to make it up to 360 points total for the degree, 60 of free choice from any undergraduate courses, with some in psychology/systems/computing being particularly recommended.
From the award regulations, we can count M256 (Software Development with Java) as long as M257 (Putting Java to Work) is also counted, these make up 60 points together thus completing the 60 points of ‘free choice’ with a computing emphasis. I also wanted to include M263 (Building Blocks of Software) as this contains the more abstract components of ‘computer science’ rather than ‘software engineering’: proof in the mathematical sense, logic, time complexity functions, etc. Not sure now what counts as a “specified” course, as the only courses specified as compulsory/optional that I haven’t already included above is Visual Basic (which I’ve not taken and don’t intend to!) seemingly ruling out M263. I’ve also got the Robotics short course (T184) counted towards it at the moment but think this will need to be unlinked.
So using the ‘Working out the class of honours’ document from the Student Policies site, the courses used to classify it will be the 150 points at Level 3 (M450, M366, M364, T307) and the remaining 90 (240 – 150) from the best grades on the others from the prescribed courses. So using the weightings specified T307 actually comes out as having the most influence since it’s not possible to make 60 points of Level 3 distinction any other way (given that M366, M364 each were a Pass 2 and in both cases I thought this was harsh as it was the first presentation and there were numerous confusions over the TMAs though I got over the 85 threshold in their exams, the OU do have some discretion to move grade boundaries but didn’t seem to have used it) so M450 doesn’t matter too much as long as it’s not awful.
Though I think M450 should be given more emphasis somehow (in the various Computing degrees not just this one) since it’s really working on an independent effort and project managing it etc that demonstrates skill and employability, rather than regurgitating course books into TMAs, as the degrees are supposed to be about employability, but oh well.
Strangely U101 (Design Thinking) isn’t specified for this degree, though it is for the BA/BSc hons in Design and Innovation (ie not ‘Computing with…’). It’s a 60 point course though so perhaps wouldn’t allow the Level 1 computing to be included then. I considered the Design and Innovation degree briefly but I think (for me personally at least) the strength is in breadth of area rather than specialisation, so Computing and Design is a much broader and more balanced degree (other than U101, there isn’t any additional “design” but is more in the business, systems and engineering type of courses).
I posted previously about requirements for a Distinction on one of the courses in order to still be in line for a First Class in the Computing and Design BSc, though it appears I made a mistake in the calculations and in fact need a distinction on T307 (Innovation, design and sustainability) not just “one of the project courses” in view of the 60 points quality assurance test for degree classification. (It was a ‘thinko’ and I was counting M450 as 60 points instead of the 30 it actually is!)
With that in mind I’ve been putting all the focus and effort into T307 though M450 is actually more work in terms of amount of time and knowledge needed (imo). Bit disappointed therefore to get 77 and 78 for the first TMAs of T307, though they are perfectly respectable marks in their own right, they are diverging further from a Distinction and normally I wouldn’t be too bothered (having learnt my lesson on M364 and M366 that not everything can be breezed through) except for the impact this has on the degree. All of the tutor’s comments were fair and constructive with the result that for TMA 03 by following his guidance I was surprised and pleased with a mark of 93! So a Distinction might just be possible again (the threshold is 85). There’s no substitution on this course – a policy I find rather strange and inconsistent given the policy on other courses, but it is what it is.
Anyway, having identified (I think) what is needed for this course and where I was going wrong before (rush job; not enough relevant detail and examples; reproducing rather than analysing information mostly due to doing a rush job rather than not being able to) so hopefully can do a bit better on the remaining TMAs: “only” TMA 04 (another 60-marks-essay-40-marks-project one), TMA 05 (essay I think and project report with a much heavier weighting) and the ECA.
I was concerned initially that in a course about ‘Innovation’ the thing I’m designing wouldn’t be innovative enough or contain any technical newness (especially given some of the comments made by other students on the course forum – their ideas are way more ‘out there’ than mine but I’m not sure if they are actually implementable in practice) but the key to it as pointed out by my tutor is to identify a unique selling point whether it’s technical newness, innovation as such, sustainability (‘eco’ design etc), aesthetics and so on and to make this clear. Also keeping a project log book with documented evidence of ‘journaling’ and sketching etc.
In a way we’re quite close to the end now especially as there’s no exam (ECA instead) allowing maximum time for preparation – normally I’m very much ‘wing it’ but I guess even for people like me some time spent planning and preparing can be useful, whether it’s thinking about how to critically analyse and present information, or just taking the time to detail out something in a log book rather than being vague and wooly!
The next TMA (03) for M450 is due around the end of the month, and is a ‘work in progress’ review, at this stage of the process it should be reasonably advanced and have some progress to show! Despite the carefully laid out project plan I haven’t worked on it in a sustained way week by week but instead have gone in phases of doing a lot and then none (I commented on this in TMA 02, that the project plan is necessarily idealised and things like paid work have a habit of getting in the way – if I was in fact working on the project ‘full time’ a Gantt type chart may be more reasonable!) – making some progress on it last weekend.
For my particular project I identified 3 main streams of activity. The main AI part (this is the primary one, as I have nominated M366 Natural and Artificial Intelligence to be the main focus of the project) involving conceptualising and implementing Genetic Algorithm functionality and suchlike; the design of the user interface for the system (with some interaction design techniques e.g. paper prototyping and successive refinement, possibly followed by application of some of the ID ‘heuristics’ (affordance, visibility etc) to the system as a kind of checklist – to show I’ve done some aspect of critical assessment) and finally the integration of these 2 streams to produce the final system.
The idea is that as per M256 and ‘good design’ the core Java classes used for the GA will be separate from the UI so that in theory any UI could be used, or the implementation of the core system could be changed without UI dependencies (as the public ‘behaviour’ of the core system should remain the same). As a consequence I’ve done this with the core Java classes, testing using the main() method and hard coding the tests (not good practice I know – should be using JUnit etc but that’s for later) and doing some GUI design work separately. Initially with paper prototyping until I realised the GUI builder in IDEs such as NetBeans is actually pretty good for prototypes. (I refuse to use VB to ‘knock something up’!)
I hadn’t managed to do much on it for a few weeks, having hit a bit of a block between ‘concept’ and ‘implementation’ but of course found that once I got down to it and started coding ‘something’ that it was more straightforward than I thought. It did require quite a bit of rework as I moved methods and attributes between classes (according to M256 I should start out with a structural model and then go deeper into implementation but this is idealised of course – writing the spec once I’ve already written the methods is strangely reminiscent of Maths at school when I would ‘intuitively’ come up with the answer, then come up with the workings to fit. (Some people don’t work in a sequential left-brain way!))
So last weekend I had a bit of a blitz on it with the result that I now have an almost fully coded Genome class plus about half done on the specific music-oriented classes (for those not reading every post: the system I am developing is a genetic algorithm based system for music generation). I had to think quite hard on some of it, whether specific behaviour ‘belongs’ to a Genome or to a Chord, say. I think it’s mostly resolved though, any methods I haven’t yet implemented are due to not yet having seen the ‘obvious’ way of coding them (the programming equivalent of writer’s block) but I don’t think it’s serious. In short I have quite a bit of progress to report already in TMA 03.
It’s always a bit exciting (for geeks) to run this thing that you built and it actually works (especially when it works first time: let’s not mention the off-by-one error in the invert() method due to not reading the Javadoc for the API and how long this took me to spot… after trying all the less obvious debugging techniques!)
The one thing I did struggle with was whether it’s somehow less ‘authentic’ or ‘genuine’ to use a GUI builder (and any of the automated tools in the IDE such as automatic generation of setter and getter methods) as one of the decisions I had to make was to hand code the GUI or use the builder in NetBeans. Though I might as well agonise over whether the system should be implemented in Java or assembly language!
The second TMA was due for T307 and for a couple of reasons I’d had to ask for an extension from the tutor for this one, so I now have an extra week (I ‘only’ requested a couple of days but tutor was generous – I still want to get it done though rather than take up the whole week!)… if there is a genuine reason and it isn’t just an excuse then most tutors will generally be accommodating subject to a few rules.
Anyway, I’ve now managed to complete most of the TMA which is in 2 parts. The first part is a choice of 2 questions about the research and marketing process as it applies to product development – 1000-1300 words for whichever question is selected. The second part is the project proposal and account of research for that – this work was started in TMA 01 but we had the option to change to a different topic for 02 if required (though after that – if the project proposal is OK – the work will proceed along that one topic that was proposed). I am continuing the work from TMA 01 as I had a clear idea of what I want to develop.
My feedback from TMA 01 was broadly speaking that although I had a good grasp etc I could have been a bit more detailed and explicit with some of it, giving more examples (or any!) and going more into specifics sometimes than just general statements. I agree with all of this as attention to detail can be one of my weaknesses (I’m much more into the big ideas) particularly as I have had similar feedback on the M450 computing project! So this is something I really need to be careful of in future with both of these projects (and more broadly in life but let’s not go there!). It was a bit odd as when I first read the tutor’s comments I parsed it as that the idea wasn’t very good but upon re-reading it, it was actually that the idea is OK but I hadn’t developed it enough in TMA 01. In particular I tend to assume that if I know something then everyone does, so I realise now I had some ideas that I hadn’t actually put down in the TMA which were quite clear in my mind which may have appeared fuzzy.
I ended up with a score of 77 on TMA 01 which is reasonable but not brilliant as ideally I am aiming for a distinction in this course since it’s the most important determiner (in my circumstances) of the classification of Computing and Design degree. I don’t think there is any substitution available or T307 though, so have to ‘pull my socks up’ now and make up the “missing” 8 marks (85 – 77) across the other TMAs in excess of a distinction grade (85) to be sure of a distinction which I think may be unlikely. The course is quite intensively project based so a lot of the weighting is around the project and the write-up and reflective process etc.
In general I’m struggling yet again to get motivated with these courses but it’s a case of just deciding to do it and then sit down and do just that (something I’m also not very good at – getting stuck in and completing-finishing things!) 02 is about 80% done now though with just needing to write up the rest (ie I already have the ideas and know what I want to put, so just need to pin it down) and then will be able to submit it. Not a very good way to spend Bank Holiday but then of course it’s wet and cold so beach opportunities were limited anyway
I received the first TMA back for M450 (computing project) with a respectable 85 and other than the fact that there were some details I hadn’t pinned down and should have, the tutor seemed happy with the choice of topic and there isn’t really much I need to specifically change with the intended plan, just be more detailed with some of it (no surprise there!)
So I am now officially doing as my project: genetic algorithms and music generation. More specifically the project will be a Java program (I have said that the deliverable for the project is meant to be the completed program, but we’ll see!) which is used to generate chords, rhythm and melody etc based on parameters set by the user and using a Genetic Algorithm approach to test fitness and refine what is being produced.
It’s a worthwhile subject for this project I think as there is already some information available in research literature but the area isn’t completely ‘resolved’ research-wise already, ties together a lot of my interests and multidisciplinary academic background, and as it is something I’m genuinely interested in, should provide some motivation to actually get on with it! The funny thing though is that ultimately I don’t believe artificial creativity (of which GA/AI music generation is a part) is actually possible in any great measure since fundamentally I think that anything ‘creative’ whether it’s art, music, design, invention or anything else ‘innovative’ comes from the intersection of logical processes and intuitive insights and that whilst ‘logic’ is possible with computers, intuition or whatever you want to call it (eureka, insight, creative act, etc) isn’t, as it’s not (as I used to think) just a logical process with a close-enough-to-infinity number of factors that it’s effectively impossible to replicate, but is actually qualitatively different.
That’s how I came to realise that AI is basically doomed if people expect it to be able to replace or expand on human intelligence! So I certainly don’t expect to be able to produce an artificial ‘music genius’ or anything like that, there’s still a role for actual composers for a while at least
Anyway, I’ve done a bit more work on it since getting the TMA submitted and returned, and whilst I haven’t followed the project plan exactly (project plans seem to be just a formalised version of a process, rather than the process being the execution of the project plan – for individuals at least) I have broadly which is at least an improvement. In parallel I am meant to be working on the user interface and the AI part, with the intention of ‘integrating’ them towards the end (ie making the GUI actually power the AI algorithms) so 2 separate streams of work effectively. The primary focus of the project is M366 – artificial intelligence – though also some aspects of M364 – interaction design (now, if only I could remember where I put the books for that..).
I’m reasonably confident with the progress I’ve made so far and the project plan that it is achievable and realistic (not least because I wrote the project plan around what I already thought was feasible, rather than the other way round – as I’ve seen it happen unfortunately a bit too many times!) though struggled a bit so far when it comes to the AI ‘algorithm’ vs how this should actually be in terms of classes and methods in Java.
The Java programming itself is fine in terms of method implementation etc but conceptually I need to work a bit more on what objects should be interacting and what should be a subclass of what etc… Obviously the GUI and the AI ‘genomes’ are a totally separate thing and should be linked through a separate class that coordinates them but beyond this when it comes to generating the genomes etc I need to think a bit more. Some of what I’m not sure about is how far it is good or feasible to deviate from a ‘vanilla’ GA, e.g. by setting constraints on the sort of genomes that can be generated or mutated into. Essentially I came to the conclusion that if something works and can be justified logically it is probably OK. ‘Vanilla’ implementations are fine as a framework but can be optimised (see also: naive sort algorithms!).
Anyway, as it’s Bank Holiday weekend and therefore contractually obliged to be cold and wet I should be able to make some progress on it this weekend and have more to show for it by next week. Good thing as TMA 02 is due on the 13th April and should be a write-up of progress made so far. At this rate for something tangible it would be fairly short but I can turn this around quickly as, contrary to the project plan, progress and development almost always comes in waves rather than a sustained small effort.
Well under way with M256, having just submitted part 2 of the first TMA (part 1 I submitted and received back a couple of weeks ago – the first TMA is done in two parts, presumably to make sure we have access to eTMA and have some idea of what we are meant to be doing, without the risk of messing up on a whole TMA of which there are only 3 on the course) – part 1 in general was OK other than a lack of clarity on my part between the ‘real world’ and the interactions of objects in a system. I understand the difference between a conceptual diagram and the real life objects it represents but obviously didn’t make that clear in my answer. I may have done the same thing in part 2 though, so expecting to lose a couple more marks over it! My tutor seems pretty efficient though so hopefully it won’t be too long before I receive it back – part 1 was back in a few days as I recall.
M256 seems the easiest of the 3 courses I’m doing due to a combination of ‘only’ being level 2, being most familiar with the subject matter and approach, and generally finding conceptual/abstract stuff such as designs for a system relatively straightforward. It remains to be seen with the other two TMAs though from a look through the rest of the course books, they are likely to be in the same vein. The course broadly follows the ‘cycle’ of software development ie requirements analysis, conceptual design, implementation, testing, maintenance… using Java as a framework but not specifically to teach Java. As a result of all of this M256 is by far the one I’m spending least time per unit and TMA on and is almost a relief compared to the other two! Of course this is relative and I daresay I’d find something less academic more of a relief but just want to get through and be done with the degree now!
After having a blitz on it this weekend I’ve pretty much completed the M450 TMA 01 – as it needs to be submitted on Tuesday at latest I will probably hang onto it another day and see if I think of anything else to amend (which seems unlikely) and then send it tomorrow. From only having a nebulous idea of a project a couple of weeks ago it seems to have taken shape quite quickly albeit in a very structured way with the schedule, tasks and subtasks etc we were asked to detail.
Some of the TMA is about ‘personal reflection’ and how we feel it is going so far, any problems and any particular feedback needed etc. This is always one of the most difficult parts for me as I just want to develop the program and test it – not reflect on how I feel about it and all touchy-feely things like that but I guess it’s all part of the overall teaching/learning objectives of ‘critical evaluation’, ‘self-reflection’ and so forth.
Having constructed a ‘Gantt’ type chart showing all the tasks, sub-tasks, sub-sub-tasks etc… it’s clear how much work there is to actually complete on this and although 9 months course duration seems quite long, it obviously isn’t intended to be 9 months full-time as if it was a job (the course is 30 credit points which should equate to around 300 hours of study, so discounting say 50 hours for project management, writing, general software problems etc… then perhaps the equivalent of 1.5 man-months if it was a full-time job. An ambitious development schedule when you consider the timescale of most software development (but then, developing software “full-time” doesn’t allow time for ideas to develop in the subconscious which is actually where a large amount of the development process happens, so no wonder IT projects are always over budget and deadline) though one of the points the tutor will provide feedback on is whether the work seems achievable in the given time.
My project contains 2 components: an AI-based component that is the main part, and a GUI ‘front end’ for the AI functionality which is where the user will actually carry out their tasks using the software. Accordingly the AI part has a much greater ‘shaded’ bit in the schedule as many more hours are allocated to that – the GUI, seeing as the project is AI rather than interaction design orientated, is more incidental and is “simply” a case of creating an interface that will allow the user to actually use the program. To assign the AI functionality to the GUI I’ve a section for ‘integration’ which is perhaps rather ambitiously scheduled but by that stage it should be relatively straightforward to put the 2 together.
The schedule is an ideal at best and I’m sure in the history of project management no project has ever mapped exactly onto its neatly drawn out Gantt chart but it might be instructive to see “how the other half live” and go by a more rigorous checklist approach rather than my normal method of using intuition and ‘feel’ to know what has to be done and when in a project (and it hasn’t failed me yet: a pity less structured approaches seem to be valued less in projects such as this, but one of the implicit learning outcomes is to be able to follow a ‘conventional’ project management approach…) so I’ll do my best to stick to a realistic schedule and may be able to avoid some of the last-minute rush. In retrospect I think it may have been a mistake not to allow any weeks “off” for holiday or to work the TMAs for the other courses into the schedule but they will have to fit around it as they should be quite easy in comparison – “only” involving writing the answers to questions, instead of writing the questions as well as the answers…
Having pretty much decided that I want to do the named degree in Computing and Design (BSc(Hons)) I’ve been taking courses generally geared towards the study plan for that, though primarily focused on what I was interested in and then finding that they generally fitted the degree profile.
The schema (not necessarily in this study order) for the Computing and Design degree is broadly as follows:
Level 1 – M150 (introduction to computing) and T175 (introduction to “ICT”)
Level 2 – T211 (design and designing) and either MT264 (Visual Basic) or M255 (Java)
Level 3 – T307 (design and innovation), M364 (interaction design), M366 (natural and artificial intelligence), M450 (computing project)
60 points of “free choice” recommended to be from a related subject area such as psychology or systems but do not have to be
Out of these I’ve done or am doing all except the Level 1 courses by now (more on ‘going back’ to Level 1 in a future post). That means in theory only the ‘easy’ bit is left, if I can get through this year that is! As I have a Pass 2 on both M364 and M366 I need at least one distinction on the project courses this year in order to still be in line for a ‘First Class’ degree with this profile, though a 2:1 is also fine at this stage (it’s more of a case of choosing a suitable degree to take in all the courses, having already done a degree and Masters!), I’m not sure yet if any Distinctions are in the offing but at least there are no exams on the courses to unexpectedly do badly! (though I am one of the rare ones who seem to do better in exams than on the TMAs!)
Hopefully by seeing how far I am through it and how only a ‘relatively’ small amount is involved this year I will be able to muster up some energy and enthusiasm for the courses – not made too good a start so far by missing the tutorial I had intended to go to today!
Comments enabled (but moderated due to spam) Email: irrisorie @ gamebox . net
About the site
This blog is about my studies with the Open University, i.e. about the personal experiences of one student. (No relation to the OU and certainly not the official line.) Any opinions here are entirely my own unless expressly stated otherwise (e.g. a quote from an OU website).
Some of the information stated here (e.g. number of TMAs, format of exams) may have changed since I took the course.
Please do not make any decisions relating to the OU or your studies based only on what I have written here.
Unfortunately a few searches to the site seem to be for TMA answers and exam papers. You will not find these on this site for copyright/plagiarism reasons and morally because it isn't fair to take a ready-made answer when other people are having to come up with theirs from scratch, and expect to be marked equally on it!
However you are very welcome to browse around for general information and hopefully get an idea of my experiences of 8+ years of studying with the OU. If you would like to chat about any of the courses or any of the subjects I bring up here, please add a comment or contact me privately.
If you are having problems with your course, please contact your tutor or course conference (if there is one) for 'official' help.
My OU history
Current:
M450 - The Computing Project
T307 - Innovation: designing for a sustainable future
M256 - Software Development with Java
Past:
2009:
M257 - Putting Java to Work
T211 - Design and Designing
2007/8:
M366 - Natural and artificial intelligence
2006/7:
M255 - Object Oriented Programming with Java
2005/6:
M364 - Fundamentals of Interaction Design
M263 - Building Blocks of Software
2004:
DT840 - Introduction to Research: basic skills and survey methods
D853 - Identity in Question
D820 - The Challenge of the Social Sciences
ED840 - Child Development in Families, Schools and Society
2003:
A319 - Literature in the Modern World
A103 - An Introduction to the Humanities
T182 - Law, the Internet and Society
T184 - Robotics and the meaning of life: things that think
2002:
E300 - English Language and Literacy
A210 - Approaching Literature
2001:
A211 - Philosophy and the Human Situation
U210 - The English Language: past, present and future