---------------------------------------------------------------------------- Mohamed G. Gouda CS 337 Fall 2007 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. 19 - Oct. 3 2. RSA Encryption: Oct. 8 - Oct. 22 3. Finite State Machines: Oct. 24 - Nov. 7 4. Haskell, Database: Nov. 12 - Dec. 3 ---------------------------------------------------------------------------- Midterms: Will be conducted on Oct. 10, Nov. 7 and Dec. 5. ---------------------------------------------------------------------------- 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: Badri Narayanan Champakesan Email: cbadrin@cs.utexas.edu Section Hours: 56565, 12-1 pm in MEZ 2.118 56570, 1-2 pm in BEN 1.126 Name: Sonal Gupta Email: sonaluta@cs.utexas.edu Section Hours: 56555, 10-11 am in WAG 308 56560, 11-12 am in RAS 211A ---------------------------------------------------------------------------- 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 ----------------------------------------------------------------------------