This page lists the labs.
In order to receive credit for completing a lab, you need to get a sign-off from your instructor in person. There are two options for this:
- For 100% of full credit: Get a sign-off by the end of the next class (i.e., the class that follows the one in which we work on the lab in class.)
- For 80% of full credit: Get a sign-off sometime before the next exam.
I strongly recommend that you work on the labs before you come to class, so that when you come to class, you have made a good start on it and are ready to ask questions about it.
Date |
Lab |
File |
Tues, Aug 29 |
Lab 1: Regular expressions |
n/a |
Thurs, Aug 31 |
Lab 2: Finite Automata using JFLAP |
n/a |
Tues, Sep 5 |
Lab 3: Eliminating nondeterminism |
n/a |
Thurs, Sep 7 |
Lab 4: Context-free grammars |
n/a |
Tues, Sep 12 |
Lab 5: Recursive Descent Parsing |
RecursiveDescentJava.zip |
Thurs, Sep 14 |
Lab 6: Precedence Climbing |
PrecedenceClimbingJava.zip |
Tues, Sep 19 |
Lab 7: Turing Machines |
n/a |
Thurs, Sep 21 |
Lab 8: Exam Review |
Practice Exam 1 |
Tues, Sep 26 |
No lab |
|
Thurs, Sep 28 |
Exam 1 |
|
Tues, Oct 3 |
Lab 9: Clojure Warm-up |
n/a |
Thurs, Oct 5 |
Lab 10: Can I take your order? |
n/a |
Tues, Oct 10 |
Lab 11: Clojure functions |
cs340-lab11.zip |
Thurs, Oct 12 |
Lab 12: Tic Tac Toe |
cs340-lab12.zip |
Tues, Oct 17 |
Fall break, no class |
|
Thurs, Oct 19 |
Lab 13: Recursion in Clojure |
n/a |
Tues, Oct 24 |
Lab 13.5: Merge sort in Clojure |
n/a |
Thurs, Oct 26 |
No lab |
|
Tues, Oct 31 |
Lab 14: Recursive List Processing in Prolog |
n/a |
Thurs, Nov 2 |
Lab 15: Clojure macros |
n/a |
Tues, Nov 7 |
Lab 16: Clojure Review 1 |
cs340-lab16.zip |
Thurs, Nov 9 |
Lab 17: Clojure Review 2 |
cs340-lab17.zip |
Tues, Nov 14 |
Lab 18: Clojure Review 3 |
cs340-lab18.zip |
Thurs, Nov 16 |
Exam 2 |
|
Tues, Nov 21 |
Lab 19: MiniVM programming |
CS340_Lab19.zip |
Thurs, Nov 23 |
Thanksgiving vacation, no class |
|
Tues, Nov 28th |
Lab 20: Tail-recursive list merge in Erlang |
sort.erl |