Personal tools
  •  
You are here: Home Tutorials WORLDCOMP'12 Tutorial: Prof. Mark Lewis
Important Date
July 16-19, 2012
The WORLDCOMP'12
22 joint conferences


« September 2015 »
Su Mo Tu We Th Fr Sa
12345
6789101112
13141516171819
20212223242526
27282930
Current Event
WORLDCOMP'15
Click Here

Past Events
WORLDCOMP'14
Click Here

WORLDCOMP'13
Click Here

WORLDCOMP'11
Click Here

WORLDCOMP'10
Click Here

WORLDCOMP'09
Click Here

WORLDCOMP'08
Click Here

WORLDCOMP'07 & '06
Click Here

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




 

WORLDCOMP'12 Tutorial: Prof. Mark Lewis

Last modified 2012-06-17 20:59


Using Scala in CS Education
Prof. Mark Lewis
Author of the first introductory text book on Scala
Associate Professor
Trinity University, Department of Computer Science
Texas, USA

Date: July 18, 2012
Time: 5:40pm
Location: Sterling Room


ABSTRACT

    The Scala programming language has grown dramatically in popularity in the three years since Twitter adopted it as the primary language for its back-end. It is now one of the primary languages for other well known companies such as LinkedIn, FourSquare, and Gardian.uk. The fact that it is a relatively young language means that it has had the ability to incorporate many of the recent lessons that have been learned about programming languages. This tutorial will look at how educators can take advantage of the Scala language and environment in teaching courses through a fairly large swath of the CS curriculum.


OBJECTIVES

    This tutorial will run through many of the basic concepts of the Scala programming language and demonstrate how they can be useful in the classroom. Scala is a hybrid paradigm languages. It is almost completely object-oriented, with all values being treated as objects, and operators being method invocations. It is also highly functional, with a compact syntax for function literals and higher-order methods. The function values are objects keeping the overall syntax of the language very uniform. Scala is also statically typed, with local type inferences. It compiles to JVM bytecode, and allows seamless calls to Java libraries as well as development in mixed Scala/Java environments.

    The use of Scala in the curriculum can begin with CS1, where the availability of a REPL and a scripting mode make it possible for students to start off programming in the small. There are a number of other languages that offer these features, however, they generally either do not have static type checking, don’t compile to JVM bytecode, or don’t allow seamless calls to a library as large as that supported by Java. That support for Java can be remarkably beneficial in the classroom as it is in industry, because instructor knowledge of Java APIs is not lost with the move to Scala.

    The designers of Scala had their eyes on the future when they built the language. Through the inclusion of functional programming and syntactic flexibility, Scala has great support for parallelism. In the classroom this means that you can begin to demonstrate parallelism early, and use a single language to demonstrate multiple approaches to parallelism. Parallel collections can be shown early and work as a data-parallel mechanism that has more power built in than basic OpenMP pragmas. Scala also has full support for the actor model of parallelism both with a built-in library, and through the Akka library, which is designed to have low overhead so that it can scale up easily. Of course, the seamless integration of Java libraries means that in a class on parallel computing, you can also go back to basic threads and java.util.concurrent.

    Scala can be helpful in higher level courses that teach applied text handling, grammars, or compilers. There is full access to the Java Regex libraries, but with a much easier to use wrapper so that they aren’t nearly as tedious. In addition, the combinatorial parser library makes it easy to convert a CF grammar into a working parser for testing student created languages.

    The fact that many of the companies using Scala are web based should make it clear that Scala can also be used for teaching web development courses as well. High level frameworks like Lift and Play appear in industry, but lower level tools like Scalatra expose HTTP calls and allow students to build up from the bottom without a lot of code hiding details from them.

    Being JVM based has some other advantages beyond the normal Java API in the classroom as well. Normally, new languages often lack support for many different things, especially in education where budgets are often tight and porting to a new language is often beyond the scope of projects. In the case of Scala though, if something works with Java, it can easily work with Scala as well. This is highlighted by the Finch teaching robot. The presenter suggested Scala support to them and it was implemented and released less than a week later. They already had Java support so there was almost no work at all required to include support for Scala. This type of thing applies to other hardware related issues as well, like GPGPU.

BIOGRAPHY OF INSTRUCTOR

    Mark Lewis is an Associate Professor of Computer Science at Trinity University where he has been teaching a broad spectrum of undergraduate CS courses for over a decade. He received his Ph.D. in Astrophysics and Planetary Science as well as a M.S. in Computer Science from the University of Colorado at Boulder. His publications focus primarily on numerical simulation of planetary and astrophysical systems and Computer Science education. He is the author of “Introduction to the Art of Programming Using Scala”, the first introductory textbook written for Scala, which will be published by CRC Press/Francis & Taylor Group in fall 2012.

Announcements
All tracks of WORLDCOMP have received high citations
Click Here for details

Condolences
Click Here for details

WORLDCOMP'12 Exhibition
Click Here for details


2012 Co-Sponsors
Bioinformatics & Computational Biology Program
George Mason University, USA

Biomedical Cybernetics Laboratory
HST of Harvard University & MIT, USA

Minnesota Supercomputing Institute
University of Minnesota, USA

Center for Cyber Defense, NCAT

Argonne's Leadership Computing Facility of Argonne National Laboratory
Illinois, USA

The Center for Advanced Studies in Identity Sciences
(CASIS: NC A&T;, Carnegie Mellon, Clemson, UNC Wilmington

Knowledge Management & Intelligent System Center (KMIS)
University of Siegen, Germany

Intelligent Cyberspace Engineering Lab., ICEL
Texas A&M; University, Texas, USA
UMIT, Institute of Bioinformatics and Translational Research
Austria

Hawkeye Radiology Informatics
Department of Radiology, College of Medicine, University of Iowa, USA

The International Council on Medical and Care Compunetics
US Chapter of World Academy of Science

Supercomputer Software Department (SSD)
Institute of Computational Mathematics & Mathematical Geophysics, Russian Academy of Sciences


International Society of Intelligent Biological Medicine

Medical Image HPC & Informatics Lab (MiHi Lab)
University of Iowa, USA

High Performance Computing for Nanotechnology (HPCNano)

Manx Telecom

Computer Science Research, Education, and Applications Press;

World Academy of Biomedical Sciences and Technologies




Super Micro Computer, Inc.,
San Jose, California, USA


Intel Corporation


Altera Corporation


Hodges Health

Leading Knowledge


Science Publication

 


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

If you can read this text, it means you are not experiencing the Plone design at its best. Plone makes heavy use of CSS, which means it is accessible to any internet browser, but the design needs a standards-compliant browser to look like we intended it. Just so you know ;)