Pomona College

Spring 2016

**instructor:** Dave Kauchak

**e-mail:** David.last_name@pomona.edu

**office hours:** Edmunds 224

*Tue.* 2:30-4pm

*Wed.* 10:30-11:30am

*Thu.* 2:30-4pm

and by appointment

**class time: **T/Th 9:35-10:50pm

**class location: **Edmunds 114

**web page: **http://www.cs.pomona.edu/classes/cs52/

**Other information:**

There is no official book for this course (though we suggest many optional books, most of which we have available in the lab). The readings for the course will come from handouts:

- Intro SML: A Brief Introduction to SML
- CS41B: The CS41B Machine
- LWI: Logic, Words, and Integers
- IRO: Induction, Recursion, and O-notation
- NT: Some Facts from Number Theory
- MC: Models of Computation

Date | Topic | Reading | Assignment |
---|---|---|---|

1/19 | admin, sml basics | Intro SML, Part I | Assignment 0 (due: 1/22, 5pm) |

1/21 | SML data types | data types handout Intro SML, pgs. 10-17 | |

1/26 | list recursion | Intro SML, Part III | Assignment 1 (due: 1/29, 5pm) |

1/28 | advanced recursion | Intro SML, pgs. 34-43 | |

2/2 | more SML fun | Intro SML, pgs. 18-21, 43-52 | Assignment 2 (due: 2/5, 5pm) |

2/4 | math on big numbers | ||

2/9 | defining new types | Intro SML, pgs. 53-58 | Assignment 3 (due: 2/15, 11:59pm) |

2/11 | memory (ppt) | CS41B, pgs. 1-11 | |

2/16 | CS41B machine (ppt) | CS41B, pgs. 12-19, Appendices A-C | |

2/18 | Midterm 1 | Example problems | |

2/23 | CS41B recursion (ppt) | CS41B, pgs. 20-29 | Assignment 4 ()due: 2/29, 11:59pmcs41b.jar |

2/25 | circuits (ppt) | LWI, sections 1-3, 5-6, 10 | |

3/1 | python basics | Assignment 5 (due: 3/11, 5pm) | |

3/3 | gates in python induction (ppt) | IRO, pgs. 1-4 | |

3/8 | big-O (ppt) | IRO, pgs. 5-6 | |

3/10 | list induction (ppt) | IRO, pgs. 7-10 | Assignment 6 (due: 3/28, 11:59pm)assign6.tex |

3/15 | No class | ||

3/17 | No class | ||

3/22 | encryption (ppt) | NT, sections 1-2Optional: original RSA paper | |

3/24 | encryption in practice (ppt) | NT, sections 5-6 | |

3/29 | parsing | Intro SML, Section 17 | Assignment 7 (due: 4/8, 5pm) |

3/31 | Midterm 2 | Example problems | |

4/5 | more parsing | ||

4/7 | lazy evaluation | Intro SML, Section 16 | Assignment 8 (due: 4/15, 5pm) |

4/12 | lazy search | ||

4/14 | branch and bound 4 queens example (ppt) | Assignment 9 | |

4/19 | DFAs | MC, section 1 | Assignment 10 |

4/21 | regular languages | MC, sections 2-3 | |

4/26 | Turing machines | MC, sections 4-8 | |

4/28 | recursion | ||

5/3 | Senior finals No class for others |

Final exam Friday, May 13, 9am-12. Sample problems.

**Additional resources**

- SML resources
- SML software and various tutorials and resources.
- Harper, Programming in Standard ML
- Gilmore, Programming in Standard ML '97: An On-line Tutorial
- Pucella, Notes on Programming Standard ML of New Jersey
- Copies of the following books are available in the CS lab, Edmunds 227. Please do not remove them from the lab; they cannot be replaced if they disappear!
- Paulson, ML for the Working Programmer, second edition, Cambridge University Press, 1996.
- Ullman, Elements of ML Programming, ML 97 Edition, Prentice-Hall, 1998.
- Hansen and Rischel, Introduction to Programming using SML, Addison-Wesley, 1999.

- Unix and emacs resources
- Aquamacs (a common installation of Emacs on Mac)
- Some basic unix commands
- Harvey Mudd's UNIX: The Basics
- The Gnu Emacs Manual (probably more than you want to know). There is also an emacs quick reference guide.
- Python resources
- JFlap resources
- Main JFlap page, including a link to obtain a copy of the simulator
- JFlap tutorial