Skip to content The Open University

Student and tutor module reviews

Algorithms, data structures and computability

see module description

  • Points: 30
  • Code: M269
  • Level: 2
On this page

Student reviews

I thoroughly enjoyed this module, and felt that it did a good job covering a wide variety of subject matter.
We learnt about different algorithms and data structures through structured English, pseudocode and diagrams, some of which are interactive. We then also looked at how to implement different algorithms using the python programming language.

The online module resources are extensive very well-made, especially the interactive diagrams explaining certain algorithms, which really help you understand the concepts behind them before looking at pseudocode. The module also includes a physical textbook, which though thorough, was a bit difficult to understand in places, particularly as it is not OU produced so used some differing terminology. An online version of the textbook is also available, which I would recommend you make use of as the physical textbook is quite a tome, and it can be easier to find a specific topic in the online version.

The computability section of the module is touched on at the beginning, but focused on more toward the end. A second, smaller textbook is provided for this, which is OU made and covers topics such as formal notation and problem difficulty very well. I found this section of the course harder at first, but thankfully this excellent textbook, which includes exercises for you to complete, along with continued online resources, helped me understand it well in the end.

When I did the module, it was assessed via two tutor-marked assignments (TMAs) and a final exam. The TMAs require a wide variety of skills, including short answer questions, drawing diagrams, writing formal algorithms and data structure definitions, and some python programming. There is also some short report writing required about topics in the module, but this is not too onerous compared to some modules, so I wouldn't worry if you're not the biggest fan of report writing (like me!). As there are only two TMAs, it's a good idea to start early as each one is fairly large. Some questions might not require too much progress in the learning materials to make a start on, and I found the workload wasn't too bad when I was able to complete some questions early.

The exam is not dissimilar to the TMAs, though it does focus more on short answer questions so as not to take too long. Because of the nature of the topic, the exam is quite predictable, so it's definitely worth doing as many past papers as possible. The short questions tend to be similar, and the same topics in the course are covered every time.
There are also some more unpredictable longer questions in the exam, but the past papers are still good preparation, as well as a thorough understanding of the course materials. There is even a short report writing question, but don't worry it doesn't require too much writing, and you can pick up a few marks just for good structure.

Plenty of revision sessions were available for the exam, which were very helpful. Definitely try to make it to a few, as they helped take a lot of stress away from exam preparations for me, as I felt well-prepared afterwards.

Overall, this module covers a wide variety of topics in good detail, providing a good foundation if you wish to pursue programming during and after your studies (though programming only makes up a small part of the module). I found it made a very good companion with 'Object-oriented Java programming' (M250), and though it is not compulsory for the software development pathway, I imagine it would make a very good fit.

Jonathan Keable

Course starting: October 2020

Review posted: August 2021

I took the module as part of the Computer Science route of my Computing & IT and Statistics degree, having already completed Object-orientated Java Programming (M250) and having some knowledge of other programming languages but no real experience with Python. I found M269 to be a very satisfying and enjoyable module which gave a great theoretical backing to the rest of my studies.

While proficiency in Python wasn't really essential to do well in the course or the exam, I found that examining and understanding the code in the course library and in the textbook helped me get to grips with the underlying theory, so some extra time spent on Python early on is probably a good investment of time.

As well as the textbooks and online material we are provided with two further excellent documents, the Companion and the Summary, which were great as revision tools and to aid understanding during the course. I found it helpful to carry the Companion and the Miller & Ranum textbook around with me so I could dip into them whenever I had a spare moment.

The final two units, unit 7 in particular, introduce some challenging concepts which may take longer than the allocated time to understand fully. I found the module to be well structured throughout but it was helpful to work ahead of schedule on these units to allow time to step back a bit before taking a second approach at some ideas. The exam was challenging with plenty of time pressure, but a solid familiarity with and understanding of the trickier elements of the final units should alleviate those pressures somewhat and make it possible to achieve a good result.

Course starting: October 2018

Review posted: September 2019

By far I found this the most difficult module that I completed with the OU. There's a lot of serious logic that I cannot see me using it in my career such as the Big-O notation.

Only think about this course if you are confident with Python and you are thinking about a serious career in computer sciences.

Either way I passed it and got a very difficult 30 credits.

Course starting: October 2018

Review posted: July 2019

Quite a challenging module which focuses very much on the theoretical side of algorithms and computing. You will do some programming in Python but not much compared to other modules such as the Java courses.

The first unit introduces Python but in my opinion glosses over some required details. If you have experience of programming (in any language) you should get to grips with Python quite easily, but if you're completely new to coding you may struggle.

Most of the units discuss various algorithms for common tasks such as searching, sorting and storing data, and I found this quite interesting, extending my knowledge from previous modules.

The final unit was a complete change of pace, dealing with the limits of computation. There was a lot of reading involved and it took quite some time for me to understand the material.

I found it quite a challenging module overall and was pleasantly surprised to pass with a high grade.

Course starting: October 2014

Review posted: October 2015

I took this as a stand alone computing course as part of my Open degree, sandwiched between a couple of Arts courses. I was mostly interested in the theory of algorithms rather than coding and found it a satisfying course from that angle.

The main frustrating thing for me about the course was the coding. While the course does introduce Python, there is not really enough coding teaching and practice to enable a newcomer (I'd done a small amount of programming 30 years ago) to use the language easily.

This turned out not to matter when it came to the exam, which didn't require any skills in Python beyond being able to read it, but it meant that the in-course exercises and some of the TMAs took rather longer and were rather more frustrating than they needed to be. I was fortunate to have two programmers in the house who could help me out when I really got stuck on language issues but even so there was a lot of banging my head against the wall when I understood the algorithm perfectly but couldn't get the thing to run! Having said that, I got a distinction for the module despite never feeling that I'd got to grips with the Python!

The algorithm and data structure parts of the course were interesting throughout, although a lot of it didn't really come clear until revision. The final section on computability and Turing was fascinating but I felt could have been presented in a rather clearer fashion- again it was quite late in revision before it all fitted together.

I was pleased to have done the course and, coding aside, found it relatively straightforward to study, being fairly confident about everything by the time of the exam. I felt it wasn't a difficult course to do well on overall; most of the algorithms and principles were short and easily understood and the exam asked fair questions in line with the specimen papers that had been produced. The problems I had with Python meant that the hands on parts of the study took me rather longer than a 30-credit course would normally take, but the overall content was reasonable for a 30-credit course.

Louise Holden

Course starting: October 2013

Review posted: December 2014

The subject matter covered in the course is good and very interesting (and valuable). And Python is also an excellent language choice for use examining the topics.

Study is led directly from prepared pages within the modules website which take you through the content, and in turn referring you to issued books or elsewhere online as required for further reading.

Units 1-5 make use of a very interesting set text book (which also provides ample reading if you want do personal study beyond what is required). Units 6 and 7 make use of an OU published dedicated book.

This was the first presentation of the module, so there were some teething problems that required quite a few errata to be issued. Sadly the module text/course material on the website was not updated when problems were found, only errata issued which you needed to cross reference continually and remember when checking back.

Personally I think the material should be corrected in-situ when issues are found (with side notes added pointing out that a change has been made) - that should be one of the benefits of using electronic rather than printed materials!

Although, my main comment about the first presentation would be that I think the module was slightly overloaded with content and could have done with being every so slightly lightened.

Alternatively, if the quantity of content covered is to remain unchanged, then I think some of the material in Units 6 and 7 should be started earlier in the course. It is a lot more demanding that other bits earlier in the module.

The exam is sadly still written by hand, and you can easily be pushed for time. This is a pity as it means the difference between two students results could be how much they can physically write in the time available, rather than their knowledge. Either more time should be given, fewer questions asked, or even more multiple choice questions used (which do not require extensive written answers).

Course starting: October 2013

Review posted: October 2014

Please note

Each of the views expressed above is an individual's very particular response, largely unedited, and should be viewed with that in mind. Since modules are subject to regular updating, some of the issues identified may have already been addressed. In some instances the faculty may have provided a response to a comment. If you have a query about a particular module, please contact your Regional Centre.

Enter a module code to find a review

To send us reviews on modules you have studied with us, please click the sign in button below.