The Faculty of Engineering (LTH) at Lund University is the first higher education institution in Sweden to make the programming language Scala the beginner language on the introductory course in programming, on the MSc programme in Computer Science and Engineering.
Assistant head of department Björn Regnell is responsible for the strategy for undergraduate education at the Department of Computer Science, and as the coordinator for the introductory course in programming for computer engineering students, he meets many first-year students who are interested in coding.
“I am very pleased that we in Lund are the first ones in Sweden to do this”, says Björn Regnell, noting that LTH is also among the first universities in the world to introduce Scala as a beginner language.
Scala is a so-called object-functional language that unites two paradigms within system development: object-oriented programming and functional programming. It is also based on open-source.
“LTH was among the first in the world when we introduced object-orientation back in 1990 with the help of the programming language Simula on our then introductory course in programming”.
According to Björn Regnell, this was a very controversial decision at the time.
“We were also among the first to introduce the programming language Java for beginners in 1997. Many were critical and thought that object-orientation and Java would never amount to anything, but as we know now, they were completely wrong”, he says.
Amelia Andersson, chair of the students’ council for the Computer Science and Engineering programme at LTH, is very pleased with the decision to use Scala in the introductory course.
“The students’ council has been advocating this change, and the vast majority of computer engineering students I have talked to are positive. Many of our new students have already learned Java in upper-secondary school or on their own, and some find Java a bit old-fashioned. Now we will have the coolest introductory programming course in Sweden”, says Amelia Andersson.
As a beginner language in computer science teaching, Scala has the advantage of being a language that is more consistent than Java, as well as more pure in its object orientation. The students can write short, simple sentences directly without having to be confronted with tricky special rules and keywords that are difficult to understand.
“Java is something of a lingua franca within computer science and will still be used in important ways in the introductory course to provide different syntax perspectives on the same underlying concept”, says professor Görel Hedin, who conducts research and teaching in programming language technology.
Java will remain part of several of the advanced courses at LTH, so computer engineers from Lund will continue to have in-depth knowledge of Java.
Scala is based on Java, but updates the technology radically by combining many advanced language research results with practical and viable programming tools.
Despite its young age, Scala has already had an impact on the software industry. Some forward-thinking companies – such as Netflix, LinkedIn and Twitter – were quick to embrace Scala.
Programming language researcher professor Görel Hedin is also pleased with the decision:
“This fits well with LTH’s strong tradition of research within object-oriented language technology.”
HISTORY: Beginner languages for computer engineering students at Lund University.
The Computer Science and Engineering programme at LTH was established in 1982. Beginner programming languages over time:
Scala is a programming language that combines functional programming with object orientation. The name stands for scalable language, in the sense that the language is designed to grow with the needs of its users. Professor Martin Odersky at the Institute of Technology in Lausanne, Switzerland initiated the development of Scala in 2001. Professor Odersky has developed large parts of the compiler for Java, which is in use worldwide. As a doctoral student his supervisor was professor Niklaus E. Wirth, who invented the programming language Pascal, among other things.