Personal tools
You are here: Home Tutorials WORLDCOMP'14 Tutorial: Dr. Mark C. Lewis
Conference Proceedings
Get WORLDCOMP'13 & '14 Proceedings
Click Here

Photo Galleries

Call for Papers
Submission of

Click here for details

Important Dates
July 21-24, 2014
(including all affiliated conferences)

Featured Workshops
Doctoral Colloquium
Demos Sessions

Click here for details

« November 2015 »
Su Mo Tu We Th Fr Sa

WORLDCOMP'14 Tutorial: Dr. Mark C. Lewis

Last modified 2014-07-04 17:38

First Programming Language in CS Education – The Argument For Scala
Dr. Mark C. Lewis
Professor, Department of Computer Science
Trinity University, USA

Date: July 22, 2014 - 5:45pm
Location: Ballroom 3


    Java has held the position of the primary language of Computer Science education, especially for introductory courses, for well over a decade. In the last several years, many people have begun looking for alternatives. Python has been adopted by a number of schools because of the simplicity of the language, the fact that it runs on many platforms, and the availability of libraries. In this tutorial, I will introduce Scala and make the argument for why it should be considered for CS1 and CS2 courses. This will include running through the topics that are covered in those courses with Scala at Trinity University.


    The primary objective of this tutorial is to give educators a quick introduction to the Scala language, highlighting the ways in which it fits well into CS1 and CS2. To understand why you should even begin to consider Scala in this role, here is a brief introduction.

    The name Scala stands for Scalable Language. It is a purely objectoriented language with functional capabilities. The primary implementation compiles to JVM bytecode and allows seamless calls to Java libraries including the standard libraries. This can be a significant factor for educators who are already familiar with those libraries.

    There are many factors that differentiate Scala from Java, but one of the main ones is that Scala is good at programming in the small. Like Python, Scala has a REPL and allows scripting. The Scala version of Hello World is simply, 'println(“Hello World!”)', just like it would be in a scripting language. The REPL is equally significant, as it allows students to enter commands one at a time and see what they do. The pure objectoriented nature of Scala also helps to give it a consistent syntax. It does this while retaining the performance of modern HotSpot JITs for the JVM.

    While Scala allows scripting, isn't a scripting language. Scala has static type checking and can be programmed in a manner much like Java using separate files for different classes to organize larger projects. This allows Scala to grow with the students. It also means that using Scala doesn't mean skimping on instruction related to types and type systems. In fact, the type related feedback in the REPL makes it much easier to show students about types and for them to explore the meaning of types on their own.

    The functional aspects of Scala also give it the benefit of being very expressive. It is possible to get students to do more and do it earlier because they can say things at a higher level. This makes it possible to get them into examples that they find interesting much sooner.

    One of the great benefits that instructors found with Java was the ability to have students write GUIs and graphical applications. Unfortunately, doing this with standard libraries was hard and required students to understand inheritance and its syntax. The simple and coherent syntax of Scala also means that students can set up GUIs and even make panels that have custom drawings without having ever heard of inheritance and without ever using the extends keyword.

    The common knock on Scala is that it is too complex. This isn't actually the case. Scala is flexible and allows things many people aren't used to. People tend to think that new stuff is more complex and the flexibility means that the geewhiz examples you often find online are complex. Those are generally odd examples though. They aren't the norm, and they certainly aren't what you have to teach in your class. The reality is that the language spec for Scala is 1/3rd the length of that for Java (191 pages for Scala 2.10 compared to 730 for Java 8). Scala also has fewer keywords than any commonly used languages other than Python and Ruby.

    To see how all of this really plays out and could be used in your classroom, attend this tutorial. To get the most out of it, consider bringing a laptop and have the latest version of Scala installed. You can get it at www.scalalang. org. You can also get a plugin for Eclipse from

Intended Audience

    This tutorial is intended for anyone who teaches CS1 or CS2 or who helps with departmental decisions related to those courses.

Biography of Instructors

    Mark Lewis has been teaching Computer Science at Trinity University since 2001. His courses span from introductory to advanced and tend to focus on aspects related to programming/programming languages and simulation/scientific computing. He has been the lead author on over 20 papers spanning a range of topics from planetary ring dynamics in the journal Icarus to the SIGCSE annual conference proceedings. He is also the author of “Introduction to the Art of Programming Using Scala,” published by CRC Press.

Current Event
Click Here
Past Events
Click Here

Click Here

Click Here

Click Here

Click Here

Click Here

Click Here

Click Here

Join Our Mailing List
Sign up to receive email announcements and updates about conferences and future events


Administered by UCMSS
Universal Conference Management Systems & Support
San Diego, California, USA
Contact: Kaveh Arbtan