This page lists the labs.

Labs are not graded, and you do not need to submit them. However, they are very important for learning the material, and if you don't finish a lab in class you should finish it on your own time outside of class.

Date Lab File
Tues, Sep 1st Lab 1: Regular expressions n/a
Thurs, Sep 3rd Lab 2: Finite Automata using JFLAP n/a
Tues, Sep 8th Lab 3: Eliminating Nondeterminism n/a
Tues, Sep 15th Lab 4: Recursive Descent Parsing RecursiveDescentJava.zip, RecursiveDescentSoln.zip (solution)
Thurs, Sep 17th Lab 5: Precedence Climbing PrecedenceClimbingJava.zip, PrecedenceClimbingSoln.zip (solution)
Tues, Sep 22nd Lab 6: Turing Machines n/a
Tues, Sep 29th Lab 7: Clojure Exercises I n/a
Tues, Oct 6th Lab 8: Clojure Exercises II n/a
Tues, Oct 13th Lab 9: Clojure data structures n/a
Thurs, Oct 15th Lab 10: Sieve of Eratosthenes n/a
Tues, Oct 27th Lab 11: MiniVM programming CS340_Lab11.zip
Thurs, Oct 29th Lab 12: Tail-recursive list merge in Erlang sort.erl
Tues, Nov 10th Lab 13: Clojure review clojure-review.zip
Thurs, Nov 12th Lab 14: Introduction to Ruby CS340_Lab14.zip
Tues, Nov 17th Lab 15: Clojure review 2 clojure-review2.zip
Thurs, Dec 3rd Lab 16: Tic Tac Toe in Scala tictactoe.scala
Tues, Dec 8th Lab 17: Functional programming exercises in Scala lab17.scala
Thurs, Dec 10th Lab 18: Mandelbrot set in Scala mandelbrot.scala