Instructor |
David Hovemeyer |

Office
/ Phone |
GH 118 /
717-815-6582 |

Office
Hours |
M/W 11 AM - 12 PM T/Th 2 - 3 PM F 9 - 10 AM or by arrangement |

Email |
dhovemey@ycp.edu |

Class
Location |
GH 123 |

Class Times | M/W 3:00-4:15 PM |

- The Final Exam will take place on Monday, December 17th at 3 PM in GH 123. The exam will be open book and open notes, no computers/electronics.
- Nov 26th: Assignment 6 posted, due Tuesday, December 11th by 11:59 PM.
- Nov 9th: Midterm 2 will take place in class on Monday, November 19th, and will cover material from Chapters 2-6. It will be open book and open notes, no computers/electronics.
- Nov 6th: Assignment 5 is available, due Friday, November 16th by 11:59 PM.
- Oct 29th: The description of Assignment 4 has been updated; due to a bug in the JUnit tests, you need to update a file (parserTest.bin) for the tests to work correctly. (See assignment description for details.) The due date has also been extended to Wednesday, October 31st.
- Assignment 4 is available, due Monday, Oct 29th by 11:59 PM.
- The first midterm exam will take place in class on Monday, October 8th. It will be open book and open notes, but no computers/electronics.
- Assignment 3 is available, due Wednesday, Oct 3rd by 11:59 PM.
- Assignment 2 is available, due Wednesday, Sept 26th by 11:59 PM.
- Fixed version of RegeXeX for Windows is available
- Due to troubles with RegeXeX, Assignment 1 is now due Monday, Sept 17th by 11:59 PM
- Assignment 1 has been posted, due Thursday Sept 13th by 11:59 PM

Exam 1 from Spring 2007, Solution

Exam 2 from Spring
2007, Solution

Final Exam from Spring 2007, Solution

Regular
expression article at Wikipedia

Slide presentation on regular languages by Andrew McCallum, University of Massachusetts. Slides 22-26 are a good overview of regular languages,

Lecture
1: Regular languages and Regular expressions **Revised
9/4**

Lecture 3: Equivalence of Regular Expressions, NFAs, and DFAs

Lecture 4: Context free languages and grammars

Lecture 5: Pushdown automata and Turing Machines

anbncn.jff - Turning
machine that recognizes the language a^{n}b^{n}c^{n}

Lecture 6: Decidability, The Halting Problem, Intro to Lambda Calculus

Lecture 7: Currying and Recursion in Lambda Calculus

RegeXeX regular expression tutor: fixed version for Windows

RegeXeX sourceforge page (Warning: Windows exe is broken, building from source should work)

JFLAP
(automata toolkit
- needs Java)

DrScheme
(very nice Scheme programming environment)

Ruby
Programming Language (we will be using Ruby as an example of
a pure
Object-Oriented language)

SWI
Prolog (implementation of the Prolog language)

tuProlog (Java-based implementation of Prolog)

Assignment | File(s) | Due |
---|---|---|

Assignment 1: Regular expressions and finite automata | n/a | Monday, Sept 17th by 11:59 PM |

Assignment 2: Lexical analysis using regular expressions | CS340_Assign2.zip | Wednesday, Sept 26th by 11:59 PM |

Assignment 3: Context-free languages and Turing Machines | n/a | Wednesday, Oct 3rd by 11:59 PM |

Assignment 4: Recursive descent parsing (Updated Oct 29th) | CS340_Assign4.zip | Wednesday, Oct 31st by 11:59 PM |

Assignment 5: Abstract Syntax Trees | CS340_Assign5.zip | Friday, Nov 23rd by 11:59 PM |

Assignment
6: Interpretation using Abstract Syntax Trees Updated Dec 10th |
CS340_Assign6.zip | Tuesday, Dec 11th by 11:59 PM |

Date | Lab | Instructions |
---|---|---|

Aug 29th |
Regular expressions |
Run RegeXeX using
the following
URL:
http://faculty.ycp.edu/~dhovemey/fall2007/cs340/labs/08292007 |

Sep 4th |
Finite automata |
Instructions
for lab 2 |

Sep 26th | Recursive descent parsing | ExpressionParserStart.zip, ExpressionParserSolution.zip |

Dec 10th | Prolog | TuProlog: 2p-2.1.zip |