---------------------------------------------------------------------------- Mohamed G. Gouda CS 337 Fall 2008 Course Overview ---------------------------------------------------------------------------- The major theme of this course is the applications of theory in practical programming. We draw upon material ---both theoretical and practical--- which have been taught in prior courses: functions, relations (equivalence, partial order), data structures (particularly, trees and graphs), recursion and induction, logic, invariants, etc. ---------------------------------------------------------------------------- Textbook: Jayadev Misra, Theory in Programming Practice, Course Notes available from the UT copy center. ---------------------------------------------------------------------------- Grade: 12 Pop quizzes are worth 1 point each. 4 Programming projects are worth 7 points each. 3 Midterms are worth 20 points each. ---------------------------------------------------------------------------- Projects: 1. Data Compression: Sept. 15 - Sept. 29 2. RSA Encryption: Oct. 6 - Oct. 22 3. Finite State Machines: Oct. 27 - Nov. 10 4. Haskell, Database: Nov. 12 - Dec. 3 ---------------------------------------------------------------------------- Midterms: Will be conducted on Oct. 20, Nov. 12, and Dec. 3. ---------------------------------------------------------------------------- Instructor: Name: Mohamed G. Gouda Email: gouda@cs.utexas.edu Office: Taylor Hall 3.112B Office Hours: Monday 3:30-4:30 pm Office Phone: 512 - 471 - 9532 Home Phone: 512 - 345 - 6134 ---------------------------------------------------------------------------- Teaching Assistants: Name: Yan Li Email: yanli@cs.utexas.edu Section Hours: 55630 Tue 12:00 - 1:00PM; MEZ 2.118 55635 Tue 1:00 - 2:00PM; SZB 284 Name: Taehwan Choi Email: ctlight@cs.utexas.edu Section Hours: 55620 Tue 10:00 - 11:00AM; WAG 308 55625 Wed 11:00 - 12:00PM; PAI 5.38 ---------------------------------------------------------------------------- Course Topics: 1. Data Compression and Encoding: Huffman coding, Ziv-Lempel codes. 2. Error Detection and Correction. 3. Cryptography 4. Finite State Machines and Regular expressions. 5. Recursion and Induction 6. Relational Databases 7. String Matching ----------------------------------------------------------------------------