Introduction to the Art of Programming Using Scala
- Length: 936 pages
- Edition: 1
- Language: English
- Publisher: Chapman and Hall/CRC
- Publication Date: 2012-11-05
- ISBN-10: 1439896666
- ISBN-13: 9781439896662
- Sales Rank: #346094 (See Top 100 Books)
With its flexibility for programming both small and large projects, Scala is an ideal language for teaching beginning programming. Yet there are no textbooks on Scala currently available for the CS1/CS2 levels. Introduction to the Art of Programming Using Scala presents many concepts from CS1 and CS2 using a modern, JVM-based language that works well for both programming in the small and programming in the large.
The book progresses from true programming in the small to more significant projects later, leveraging the full benefits of object orientation. It first focuses on fundamental problem solving and programming in the small using the REPL and scripting environments. It covers basic logic and problem decomposition and explains how to use GUIs and graphics in programs. The text then illustrates the benefits of object-oriented design and presents a large collection of basic data structures showing different implementations of key ADTs along with more atypical data structures. It also introduces multithreading and networking to provide further motivating examples.
By using Scala as the language for both CS1 and CS2 topics, this textbook gives students an easy entry into programming small projects as well as a firm foundation for taking on larger-scale projects. Many student and instructor resources are available at www.programmingusingscala.net
Table of Contents
Part I: Introductory Concepts
Chapter 1. Basics of Computers, Computing, and Programming
Chapter 2. Getting to Know the Tools
Chapter 3. Scala Basics
Chapter 4. Conditionals
Chapter 5. Functions
Chapter 6. Recursion for Iteration
Chapter 7. Arrays and Lists in Scala
Chapter 8. Loops
Chapter 9. Text Files
Chapter 10. Case Classes
Chapter 11. GUIs
Chapter 12. Graphics
Chapter 13. Sorting and Searching
Chapter 14. XML
Chapter 15. Recursion
Part II: Object-Orientation, Abstraction, and Data Structures
Chapter 16. Object-Orientation
Chapter 17. Bigger Programs/New Tools
Chapter 18. A Project (Drawing Program)
Chapter 19. Abstraction and Polymorphism
Chapter 20. Other Collection Types
Chapter 21. Multithreading and Concurrency
Chapter 22. Stream I/O
Chapter 23. Networking
Chapter 24. Stacks and Queues
Chapter 25. Linked Lists
Chapter 26. Priority Queues
Chapter 27. Refactoring
Chapter 28. Recursion
Chapter 29. Trees
Chapter 30. Regular Expressions and Context-Free Parsers
Chapter 31. Spatial Trees
Chapter 32. Binary Heaps
Chapter 33. Direct Access Binary Files
Chapter 34. Actors
Chapter 35. Augmenting Trees
Chapter 36. Wrapping Up
Appendix A: Quick Preview of Java
Appendix B: Advanced Scala Concepts
Appendix C: Glossary