Deep thoughts from the Centre for Applied Computer Science @ The University of Bolton

Category: Software Engineering

Mind your language! – The programming languages we teach with and why we use them

Students often ask which programming languages we teach with at the University of Bolton and why we chose them.

On our Software Engineering and Computing degrees, we use a range of popular languages but the decision as to which to use is not as straightforward as you might think!

As a newcomer to the computing lecturing ranks at Bolton and straight out of 20 years in industry as a programmer, I thought I’d blog an answer to these questions…

At heart, the reason anyone programs a computer to do anything is to produce a solution to a problem. Thus, all programming languages are just tools, a means to an end. So that would mean lecturers should just teach with whatever language they prefer then, right? Wrong!

We currently teach with three main “general-purpose” languages: Java, Python and C# along with “web languages” such as JavaScript, PHP and Bash shell scripting and the ubiquitous SQL of the database world. But the rationale for this selection goes beyond that of being personal preference on the part of lecturers. Yes, the University is Teaching Intensive, Research Informed but it’s also concerned about and informed by the needs of industry.

Software Engineering graduates need to be adaptable, able and willing to pick up new programming languages or paradigms quickly and easily. Yes, you may graduate from University one year with strong skills in Java or C#, but the following year or so, who knows, your career may require you to learn something “classic” like C++ or COBOL (yes, it’s still used out there!) or another of the myriad other new languages that ebb and flow like the tide.

As someone who graduated in 1998, strong in C++ and JavaScript, I’ve ended up 2 decades later still using JavaScript but the demands of the jobs over those years led to C# supplanting C++ as my “go to” language of choice for general programming.

Although no University can ever prepare you for every language you’re likely to face in your professional careers, what it can do is help you master the principles of programming, expose you to several key languages and leave you confident and open to learning new ones throughout your life in so doing.

In the Centre for Applied Computer Science at the University of Bolton, I can proudly say we’re definitely all about doing that!

But it’s not just about your ability to adapt and change. Employers are also naturally interested in what programming skills you do have when you graduate.
While all the languages we use are industry-standard, platform independent and (mostly) open source, they are also widely used in industry and – more importantly for our students – they represent skills that are in demand with employers regionally.

It’s a no-brainer really that a majority of students studying at the University of Bolton will seek work within (or bordering) the Greater Manchester region once they graduate. So while global language popularity indices like The TIOBE index do inform our choices, we also look at statistics that are much closer to home.  It’s likewise also a no-brainer that students who study on courses which use a variety of languages that are already in demand by employers, should see their future employment prospects greatly enhanced by it.

I know this from personal experience in industry: the more skills that can be “ticked off” on your CV when it arrives on a desk in a company’s Human Resources department, the more likely it is you’ll be called for that all-important first round of interviews.

This is especially true of many SMEs who simply do not have the time, resources or budget to retrain graduates who have never so much as heard of the languages they use never mind actually know how to program in them.

The statistics produced by analysis of job postings by sites such as IT Jobs Watch produce some interesting and enlightening figures regionally.  At the time of writing (April 2019) a search on the site for programming roles in the Greater Manchester region shows that what we’re teaching with is indeed in demand locally:

All of the top 6 languages featured here are used in our teaching. This means that students studying at the University of Bolton can be confident in knowing that what they are learning are not just the solid fundamental principles and best practises that will set up them up well for careers in the software industry, but also important, valuable language skills in their own right that when placed on their CVs later, will make them immediately more attractive to potential employers.

Because this, fundamentally, is what University is all about for so many of our students. Absolutely and for sure University is a place to broaden your horizons: expand your knowledge, your skills and your mind. A place to challenge and debate and discover.

Most students will do that with the ultimate aim of seeking a rewarding and well-paid career after.

And that’s why we teach with the languages that we do.

Happy coding and studying!

Voice… The Final Frontier?

Talking to the computer
Do you feel awkward talking to the computer? How about in front of other people? Voice control is in its infancy really. Speech recognition is getting better. By utilising cloud-based services the big players are able to parse speech and recognise what is being said very well. Certainly your mobile can understand phrases like “navigate to work” or “call Aunt Jemima“. Well it can if you use Google Voice or Siri; Samsung’s Bixby assistant still can’t understand English.

Skills and vocabulary

What we say to dogs - the Far Side

Far Side Cartoon (c) Gary Larson


Sadly your digital assistant does not really understand you! It has a limited instruction set which you learn how to use. Your device has a vocabulary of keywords such as “call” and “install”, if you go beyond that limited range there’s no understanding. Sure the designers are clever, with the cute Easter eggs built into their systems. Try asking Siri “what’s your favourite colour?” or “what are you wearing?” and you get a clever canned response. The key word is canned, the system does not understand speech.
This shortcoming is the next step that the companies need to fix. The key is to recruit external developers. There are parallels with the iPhone. When it launched in 2007 you could only run the applications Apple shipped. The App Store was announced the following year and now hosts millions of apps.
Amazon are following a similar path with Alexa. Third party developers can create their own ‘skills’ for Alexa. As this Wired article states: they recently reached the milestone of 10,000 skills. This is an increase from 135 skills in 2015.
Skills are the element which can propel voice control from the limited state we have today to something truly useful. Accurate speech recognition plus the utility of skills will give us something that is a real breakthrough technology.

The Wired article quotes Amazon “We had this inspiration of the Star Trek computer,” says Steve Rabuchin, who heads up Alexa voice services and skills at Amazon. “What would it be like if we could create a voice assistant out of the cloud that you could just talk to naturally, that could control things around you, that could do things for you, that could get you information?”

Maybe Star Trek is the future after all.

© 2022 UoB Computing

Theme by Anders NorenUp ↑