_images/scalalogo.png

Scala for Computer Science and Data Science Education

Authors

Konstantin Läufer
Professor of Computer Science, Loyola University Chicago

George K. Thiruvathukal
Professor of Computer Science and Chairperson, Loyola University Chicago
Visiting Computer Scientist, Argonne National Laboratory, Leadership Computing Facility

Abstract

This book is a tutorial on the Scala programming language, with a focus on its applications in computer science and data science. Scala is the language behind Apache Spark and one of the most powerful tools for scalable data analysis. This one-hour hands-on workshop, led by Dr. George K. Thiruvathukal and Dr. Konstantin Läufer, introduces beginners to Scala. Participants will explore basic Scala syntax and data structures while performing simple data transformations and summaries using the command line. The session will also introduce participants to working with data science libraries such as Smile, which offers functionality similar to Python’s Pandas for data manipulation in Scala. We will also provide an update on the overall state of data science in Scala, including current libraries, tooling, and community trends. Participants should bring laptops capable of running Scala at the command line. Windows users must use Windows 11 and are strongly encouraged to set up the Windows Subsystem for Linux (WSL). macOS and Linux users will be able to install the necessary tools directly, even during the session.

This tutorial–delivered as a Python Sphinx book that rebuilds on all changes to the text and underlying source code–is intended to accompany the workshop.

Acknowledgments

Mark Lewis
Senior Software Engineer, Amazon
Professor, Trinity University, Texas

Distribution

Build Status
GitHub Pages and Release PDF
Latest Version

v0.9.1

Repository

github.com/LoyolaChicagoBooks/scalaworkshop

Releases

The current book (v0.9.1) in PDF is available at GitHub Releases

You can also perform the following steps to pull the book with all examples contained in the examples subdirectory.

git clone --recurse-submodules https://github.com/LoyolaChicagoBooks/scalaworkshop
Example Source Code
Example Repositories

Description

URL

introcs-scala-examples

https://github.com/LoyolaChicagoBooks/introcs-scala-examples

introds-scala-examples

https://github.com/LoyolaChicagoBooks/introds-scala-examples

integration-scala

https://github.com/LoyolaChicagoCode/integration-scala

lcs-systolicarray

https://github.com/LoyolaChicagoCode/lcs-systolicarray-scala

hpjpc

https://github.com/LoyolaChicagoCode/hpjpc-source-java

numerical-explorations-scala

https://github.com/LoyolaChicagoCode/numerical-explorations-scala

Indices and tables

Note

AI Disclosure: This text contains a mix of original writing and programming with strategic use of Chat-GPT4 via intelligent/clever prompting. All examples will be available in our repository with an appropriate cmake build file and tests. We will also make our prompts and analysis available, similar to what we have done for our recent ongoing study of Chat-GPT4 and Systems Programming. See https://doi.org/10.6084/m9.figshare.22257274.