Skip to content
jasonbaldridge edited this page Dec 20, 2012 · 22 revisions

Books

  • Natural Language Processing
    • Jurafsky and Martin, Speech and Language Processing
    • Manning and Schuetze, Foundations of Statistical Natural Language Processing
    • NLTK
  • Machine Learning
    • Bishop, Pattern Recognition and Machine Learning
    • Murphy, Machine Learning
  • Scala
    • Horstmann's Scala for the Impatient. (Free PDF of the first nine chapters is available for free from Typesafe!)
    • Odersky et al's Programming in Scala (2nd edition) is excellent, though assumes one knows Java already. (Odersky is the creator of the Scala language.)
    • Wampler and Payne's Programming Scala is available for free online.
    • Pollack's Beginning Scala might be more introductory, though it is currently two years old and perhaps a bit out of date by now.
    • For other options, see this list of books for learning Scala.
  • Other
    • White, Hadoop: The Definitive Guide
    • Manning et al, Introduction to Information Retrieval

Scala tutorials

  • My Scala tutorials Scala. They are oriented toward first time programmers, but contain much that is useful for experienced programmers getting familiar with Scala.
    1. The Scala REPL, expressions, variables, basic types, simple functions, saving and running programs, comments
    2. Tuples, Lists, methods on Lists and Strings Part 3: Conditional execution with if-else blocks and matching Part 4: Iterating, mapping, filtering and counting Part 5: Regular expressions and matching with them Part 6: Regular expression matching and substitution with the Regex API Part 7: Maps, Sets, groupBy, Options, flatten, flatMap Part 8: Word counting, scala.io.Source, file access, flatMap, mutable Maps Part 9: Objects, classes, inheritance, traits, Lists with multiple related types, apply Part 10: Scripting, compiling, main methods, return values of functions Part 11: SBT, scalabha, packages, build systems Part 12: Code blocks, coding style, closures, Scala documentation project. Variations for computing results from sequences in Scala Student questions about Scala, Part 1 Student questions about Scala, Part 2 Incorporating and using OpenNLP in Scalabha’s SBT build system Basic XML processing with Scala Processing JSON in Scala using Jerkson
    • SimpleScala: tutorial and online REPL for beginning programmers
    • Kojo: a learning environment that includes an interactive Scala tutorial (which was adapted from SimplyScala)
    • Scala School: Resources created by Twitter for training programmers new to Scala.
    • Stackoverflow Scala Tutorial: organized links to answers on Stackoverflow that cover many questions in Scala.

Applications and Toolkits

  • Natural language processing and machine learning
    • OpenNLP
    • Mallet
    • Junto

Programming

Beginners guide to programming.
Unix
    Teaching Unix Tutorial
    Unix Tutorial for Beginners
    Cygwin Walkthrough and Beginners Guide
Editors for writing your Scala code
    JEdit - Multiplatform, easy to use editor.
    Kate - Easy to use editor with built-in Scala support, but only works (easily) on Linux.
    ScalaEdit - An editor designed with Scala in mind. It looks to have been started as a project fairly recently, so I'm not sure how robust it is -- but it could be well worth a try.
    Emacs - my editor of choice, but probably not ideal for most students in the class
Integrated Development Environments - more powerful programming environments. Unnecessary for this class, but worth mentioning.
    Eclipse - excellent support for Scala (it's what I use for my own Scala development)
    IntelliJ IDEA - apparently works well with Scala out of the box
Clone this wiki locally