The 10th Teaching, Learning and Assessment of Databases (TLAD) workshop was held at the University of Hertfordshire on 9 July 2012. The University of Hertfordshire is one of those places that I have heard quite a lot about (from some friends and colleagues who have both visited and worked there), but until 9 July, I had never had the opportunity to visit.
Although databases isn't my core subject it is one that I do have interest in, having been a software developer for quite a few years before joining the university. Plus, the subject of databases (and their development) certainly crosses over with another big interest of mine, which is the psychology of computer programming. Enough about me and my interests, and onto a summary of the event.
An effective higher education academy
Karen Fraser, who works in academic development within the HEA kicked off the day. Karen once worked as a lecturer in computer science at the University of Ulster, before joining the HEA. Karen talked about the objectives of the HEA and its current areas of focus. These include the issue of employability amongst computing graduates and also supporting, promoting and developing teaching (and teacher) excellence.
Other areas of interest include flexible learning, understanding mobility centred learning (a term that I had not come across before), and sustainable development in the sector. Another area of focus includes supporting institutional strategy and change.
There were two other key parts to Karen's introduction: funding opportunities that the HEA can offer both individuals and academics, and mechanisms to accredit the teaching and skills of individuals. In terms of funding, there are the teaching development grants, individual grants, departmental bids, collaborative bids and strategic development bits. Anyone who is interested in finding out more should, of course, visit their website.
In terms of accrediting or recognising individuals the HEA runs what is called a fellowship scheme, where individuals can apply and submit evidence regarding their skills and practice. I didn't know this (or, I had forgotten), but there is also something called a senior fellow scheme too. Karen also mentioned the National Teaching Fellowship Scheme (NTFS) and the UK Professional Standards Framework (UKPSF).
On the subject of teaching quality, Karen drew our attention to a report entitled Dimensions of Quality by Professor Graham Gibbs. Apparently one of the main conclusions was that who performs the teaching was considered to be a more important measure of quality than the number of contact hours.
Towards the end of her talk, Karen briefly mentioned something called the HEA's 2016 strategic plan. The key points I noted were the aims to provide effective support to teachers and those involved in teaching and learning, to increase capacity and reward excellence, and offer influence to national policy.
Analyzing the influence of SQL teaching and learning methods and approaches
The first paper presentation of the day was by Huda Al-Shuaily from Glasgow University. Huda presented what was a small section of her doctoral research. Huda drew our attention to earlier research by Ogden who presented a three stage cognitive model of working with SQL. These included query formulation, query translation and query writing. Huda considered that an additional category named query comprehension was perhaps necessary.
For each of these stages, Huda considered different issues. For successful query formulation an understandable context is necessary (or set of appropriate examples or situations that are used to teach the concepts of databases) to help learners. For query translation, where students convert queries between English and SQL, the ambiguity of English can be a particular difficulty. For query writing, knowing something about the strategies that novices may adopt may be useful too; it was recommended that teachers emphasise the 'what' and 'how'. An important point was: it is perhaps a good idea to teach students to read SQL before teaching them to how to write SQL.
One of the most interesting parts of her presentation was when she began to talk about patterns and SQL. I have used generic programming patterns and had heard that they have been applied to other related areas such as usability, but never before databases. Huda mentioned something called a 'self-join' pattern, which is one of a number of patterns that could be taught to students.
The question and answer section immediately opened up a number of interesting debates. Regarding the subject of patterns there was some debate was to whether we ought to be teaching students general problem solving approaches rather than higher level abstractions such as patterns. Another debate related to the type of data that we have within our datasets that are used to teach the underlying concepts. Should we use real data (or, at least, real data that has been manipulated to avoid disclosure of sensitive records), or artificial made up data?
Temporal support in relational databases
Bernadette Marie Byrne from the University of Hertfordshire spoke about temporal support in relational databases whilst at the same time giving us some useful background information and presenting a case study. Temporal databases were described as databases that are capable of recording what data has changed and when. Apparently, there were debates were occurring in the SQL standards bodies about extending SQL to cater for temporal data when the focus of discussions changed due to the arrival of XML. Some database vendors such as Oracle, however, have implemented certain temporal extensions.
A case study that Bernadette describes centres on a motorcycle and cycle hire business. It is necessary to record when items are hired (and when they are returned), as well as knowing when items are available for hire. An added complication is that 'partial hires' can be performed: some bicycles can be hired for, say, two days, and then swapped for another to ensure that an original customer hire request is satisfied.
It was clear to me that such a scenario (which I understand was drawn from a real-life situation) was one that was pretty tough to implement and would clearly show the challenges of working with time-centric data. Another interesting consideration that sprung to my mind is the question of 'where do we write the code?' In some cases we should rely on the functions of the database to solve our problem, whereas on other occasions we might want to write more program logic to cater for all the different situations that we come across. Knowing where (and how) to write code is, of course, a part of the artistry of computer programming.
Roadmap for modernising database curricula
Jagdev Bhogal and Kathleen Maitland from Birmingham City University gave a very thought provoking presentation about we need to do, or could do to enhance the current database curricula. Kathleen argued that databases are ubiquitous. On one hand, you might be accessing a server hosted database through a call from a mobile app. On the other hand, your mobile app may contain its own database or data store of some kind.
One of the perceived problems is that databases are taught in bite size chunks in isolation from other modules. Kathleen also argued that ideally modules should be connected together in some way and emphasised the need for different members of faculty should talk to each other. Getting staff to work together has the potential to help students being able to create a portfolio of work (perhaps even functioning applications) that can be demonstrated to employers.
Employability is, of course, very important and curriculum design should directly address employability skills. One such skill is that the professional writing and communication. One approach to develop professional skills is to teach using substantial case studies such as those relating to the retail, banking, and government sectors. Using case studies opens up the possibility of making use of very large databases and understanding the contexts in which they are situated.
Some topics that may be included in modules can include data modelling, data acquisition, approaches for data storage (including different ways of using mass storage devices, as well as saving data to the cloud), data searching (of both structured and unstructured data), processing, performance and security (which can include addressing subjects such as authentication and defence through depth).
The final conclusions that I've noted are that employability skills are necessarily important and that it is also important to get employers involved. It is also important to consider how to improve the student experience by creating realistic scenarios. It also helps students to create assessment portfolios which can be used to demonstrate technical skills and abilities.
Research-informed and enterprise-motivated: Data mining and warehousing for final year undergraduates
Jung Lu from Southampton Solent University gave a presentation that focused on the teaching of data mining. Jung highlighted that students had to consider a number of advanced research topics include XQuery, Weka (data mining), databases in the cloud, Oracle Apex, distributing and replicating data, accessing and manipulating data programmatically, and PL/SQL (Wikipedia) (stored procedures).
I made a note of a key point that related to the importance of practice. It is necessary to ensure that students have sufficient time and resources to engage with practice activities and tasks before moving onto formally assessed activities. 'Screen time', as I call it, can give students confidence as well as experience that can stand them in good stead when it comes to the work place.
Subjects such as data warehousing and OLAP (Wikipedia) were said to be taught using a case study and a guest lecture (the importance of case studies being an issue that is featured later on within the workshop). Towards the end of the presentation, professional certifications were also mentioned. Finally, a connection to employability skills, particularly SFIA, Skills Foundation for the Internet Age, was mentioned. This framework may be able to offer some guidance about which skills may be particularly relevant or useful.
The teaching of relational on-line analytical processing (ROLAP) in advanced database courses
Bernadette Marie Byrne and Iftikhar Ansari both from the University of Hertfordshire talked about how to teach ROLAP, which is a database extension that I had never heard of before. They began by referring to a very large dataset which had just under a million rows. Other important considerations included that of performance.
As well as ROLAP being a new term to me, I was also introduced to a second one, which was 'star schema design'. I think my unfamiliarity with these terms more relates to my background of using small to medium sized databases, rather than large and extensive data sets. One point was very clear: having hands of practical experience was something that was considered to be both important and necessary for students.
Introducing NoSQL into the database curriculum
The first ever database systems I used were based around the XBase language; early PC based databases such as Dbase, Clipper and Foxpro (which was back in the very early nineties). From there I was introduced to the rigours of SQL, which is one of those languages that I've used off and on throughout my programming career.
Clare Stanier from the Staffordshire University introduced what was to me a set of new database developments and innovations that has passed me by, namely NoSQL (or, perhaps post-SQL) databases: systems that enable users to more readily store unstructured data, perhaps in the form of documents. Clare reminded us that that in the early days of databases there were many different types. Over time the SQL-based relational model approach became dominant. Clare argued that we're now living in a database environment which is increasingly diverse.
The relational approach requires us to clearly structure our data. Whilst on this can allow us to carry our complex queries, it can be difficult to create databases which can readily accommodate changing types of data. NoSQL databases (NoSQL.org) permit weaker concurrency models and (I guess) you might also argue that some of them are more weakly typed.
Clare introduced us to a number of different databases. Two notable ones include MongoDB which is apparently used to drive Craigslist, and CouchDB. Apparently these two database projects have similar underlying objectives but there is a healthy rivalry between the two groups (which is no bad thing).
Another database (again, one that I had not heard of before) is Cassandra. NoSQL databases have clearly made it into the mainstream. Amazon have developed a database called SimpleDB, which can be used as a part of their cloud services. Of course, cloud based databases have their own advantages and disadvantages, and developers always need to be mindful of these. Another aspect of NoSQL databases is that they have the potential to more readily (and perhaps easily) integrate with internet applications. With some systems it might be easy to issue queries over REST (Wikipedia), for instance.
Clare made a very good point, which was that the TLAD community and lecturers who are involved in teaching databases and related subjects need to have a debate about what is taught in the database curriculum and the extent to which NoSQL databases need to feature.
The distinctions between NoSQL and SQL databases remind me of a simplistic distinction between programming languages. On one hand there are strictly typed languages, such as Java which require you to define everything. On the other there are languages such as Perl which are weakly typed and allow developers to get into all kinds of muddles (whilst at the same time permitting certain categories of problems to be solved quickly and effectively, when such tools are placed in skilled hands). There are, of course, other languages (and language mechanisms) in between. I have little doubt that SQL and NoSQL databases may influence each other, but it remains a programmer and designers challenge to choose the most appropriate tool for the task in hand.
A ten-year review of workshops
David Nelson from University of Sunderland and Renuga Jayakumar from University of Wales Trinity Saint David presented an analysis of papers presented at TLAD over the last ten years. David also attempted to present his view of what we might have to teach in the future (whilst also accepting that predicting the future is always a dangerous thing to try and do!)
Some of the broad themes that are covered in the workshop have included database design methods, e-learning tools, curriculum research, student diversity and assessment methods. Some of the very early papers presented techniques for the automated assessment of database designs. Over the years, technologies such as OpenMark (Open University) have matured.
Since the inception of TLAD, a range of new technologies have emerged and have been increasingly applied in different situations, such as XML. With XML it is necessary to understand the fundamentals before fully appreciating its significance within the world of databases. Papers regarding e-learning have included presentations about games, class participation, recording of lectures and how to best facilitate 'out of hours' learning.
Looking towards the future, we might see curriculum changes to take further account of transaction processing, system and data recovery, security, cloud computing and physical aspects of system design. Mobility and non-relational databases as well as subjects such as data warehousing are considered to be significant subjects.
During the closing discussion, I also noted down the name of a resource that was new to me, namely, the Database Disciplinary Commons which is hosted by the University of Kent.
I think this is my second TLAD workshop, the previous one that I attended was held at the University of Greenwich. I enjoyed my first one and I enjoyed this one too. I remain of the opinion that databases is a tough subject to teach, but one that is fundamentally very important to computer science education. Lecturers need to convey fundamental concepts which, to some, may be significantly difficult to grasp. The challenge becomes even more acute when we move more advanced subjects where issues such as software and hardware architecture need to be considered. Security, of course, is another topic that is very important and there is a necessary connection between databases and the teaching of programming.
One point that I remember from my own database education (much of it acquired 'on the job' whilst working in industry), was that it became apparent that there were so many different ways to solve a problem. I remember being presented with different techniques and having to make a decision about how to apply them. Should I create a database abstraction layer for my application or use stored procedures, for example. In my programming career I've even seen the horror of SQL intertwined with HTML tags! Thankfully, the prevalence of design patterns, particularly MVC have gone a long way to emphasise the importance of separating out different aspects of an application.
All these ruminations suggest an important subject, which is how to most effectively convey best practice to our students. Understanding the most appropriate ways to design systems and databases comes after acquiring fundamental skills. This again connects to the view that teaching databases is a tough thing to do.
For me, there were two highlights of this TLAD. The first relates to being aware of more on-line resources relating to learning and teaching (and being introduced to new technical terms), and secondly, being introduced to the concept of NoSQL. My next challenge is to try to find some time to explore these new software technologies. I hope I will be able to find the time and opportunity to do this.
A few years after publishing this post, I was contacted by a reader, who mentioned that they had a website about the teaching of PL/SQL that contained a number of useful tutorials. If anyone is interested, here's a link to Ben Brumm's PL/SQL tutorials (Databasestar webite).