CS 337
Spring 2008
Unique numbers : 55605, 55610, 55615 and 55620
Theory In Programming Practice

Instructor J. Misra
office: TAY 3.102
email: misra@cs.utexas.edu
phone: 471-9550
office hours: MW 3:30-4:30P or by appointment
 
Teaching Assistants Jacob Schrum
email: schrum2@cs.utexas.edu
office hours: M 11:30-12:30 and W 12:30-1:30 in ENS 31NQ Desk #1

Balaji Villupuram
email: vvbalaji@cs.utexas.edu
office hours: M 10:30-11:30 and W 10:30-11:30 in ENS 31NQ Desk #4

Class MW 2:00-3:30P, Burdine 112
 
Class Webpage http://www.cs.utexas.edu/~schrum2/cs337/
 
The Subject Matter The major theme is applications of theory in practice; I will demonstrate that theory can help in practical programming. I will draw upon material ---both theoretical and practical--- which have been taught in the prior courses: functions, relations (equivalence, partial order), data structures (particularly, trees and graphs), recursion and induction, logic, invariants, etc.

Here is a tentative list of 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



The Reading Material 1.  Class Handouts: see here.

2.  (for reference) Haskell: The Craft of Functional Programming, by Simon Thompson, Publishers: Addison-Wesley-Longman, ISBN 0-201-40357-9.

3.  (for reference) Introduction to Algorithms by Thomas Cormen, Charles Leiserson, Ronald Rivest, Publishers: MIT Press or McGraw Hill.

4.  (for reference) Foundations of Computer Science, Chapter 10: Patterns, Automata and Regular Expressions Alfred V. Aho, Jeffrey D. Ullman, Publishers: W.H. Freeman, ISBN 0-7167-8284-7.

Discussion Sections The main purpose of discussion sections is for students to discuss and analyze the material presented in class. They are expected to take an active role. Home works will provide the framework for the material presented in class. Therefore, students should come to the discussion sections prepared to work on those problems. Discussion sections will also cover background material and questions about the programming assignments.

All discussions sections are held on Tuesdays. Times and locations of discussion sections are as follows:
Unique Number TA Time Location
55605 Jacob T 8:00A-9:00A RAS 211B
55610 Jacob T 10:00A-11:00A RLM 5.112
55615 Balaji T 2:00P-3:00P RAS 312
55620 Balaji T 3:00P-4:00P SZB 422


Homeworks, Programs Home works will be discussed in the class and in the discussion sections. There will be a week's lead time for each home work. There will be 5 medium--sized programming projects. Programs will have to be written in Java and run under Linux; one or two will use Haskell, which will be described in the class.

Newsgroup and Web Site Web sites will be put up for discussions and all handed-out material.

The Tests There will be several pop quizzes during the term to make sure you are keeping up with the class. Three tests will be given; the first two will be in-class tests on 2/20/08 (Wednesday) and 4/2/08 (Wednesday). The final test will be on May 12 in CMA A2.320 (9am - 12 noon). All quizzes and tests are open-book and open-notes.

Grading Policy The programming projects will count for 25% and pop quizzes for 10% of the final grade. Your best test counts for 30%, the second best for 20% and the worst for 15%. Even though no points are assigned for the home works, it is essential that you do them, because the questions in the tests will be similar to the home work problems.

Student code of conduct This web site states the departmental policy on student (and instructor) code of conduct.