22C:34
Discrete Mathematics
Summer 2001
 
 

Contact/class information

Instructor: Dr. David Stewart
Phone: 335-3832
Email: dstewart@math.uiowa.edu
WWW URL: http://www.math.uiowa.edu/~dstewart/
Office: MLH 325B
Office hours: TuWTh 2:00-3:00pm 
Class times: TuWTh 3:00-4:30pm
Class location: 113 McLean Hall (MLH)
Grader/Assistant: Samir Jain
Jain's office hours: MTuWThF 10:30-11:30am

You can see me outside the office hours provided it is mutually convenient. You can use email to set up an appointment time.

Grades

Your grades are available here - this includes your score on the final exam and your overall score for the homework.

Homework exercises

Hand in the exercises listed in red!

Description






This course is about the mathematics you will use to design and understand algorithms and other issues in Computer Science. In particular, we will learn about

The syllabus below has more details.
 
 

Textbook










Discrete Mathematics , 5th edition by Richard Johnsonbaugh (2001). You can get this book from either the IMU Bookstore or from Iowa Book and Supply. There may be a few second hand copies for sale.
 
 

Syllabus

1.
Chapter 1: Logic and Proofs. We will define logical propositions are and use truth tables to help determine if a statement is logically (always) true. Then we will talk about how to prove logical propositions, and throw in quantifiers (``for every x, ...'' and ``there is a ...''). Finally, we will use mathematical induction to prove things that would otherwise be impossible to show.
2.
Chapter 2: Sets and relations. A set is a collection of elements. A sequence is an ordered list of elements, and a relation says if two elements are related in a particular way, like ``is bigger than'' or ``is the uncle of''. Many relations have special properties. If it has the properties that you would expect of ``equals,'' then we have an equivalence relation; equivalence relations are particularly useful. Also useful are ordering relations (``if a is bigger than b, and b is bigger than c, then a is bigger than c''). Functions are special kinds of relations that relate the input of the function to its output.
3.
Chapter 3: Algorithms. We will talk about alorithms, and how to describe them using pseudocode. We will look at some particular examples including the Euclidean algorithm (which is useful for understanding modular arithmetic). We will also talk about recursive algorithms and the complexity of algorithms (How long does it take?).
4.
Chapter 4: Counting methods. We all know how to count 1, 2, 3, .... But how do you count the number of rectangles you can find in a chess board? Or the number of ways of going between two intersections in Manhattan, New York? We need to use: permutations and combinations; binomial coefficients; and the ``pigeonhole principle'' to do this kind of counting.
5.
Chapter 5: Recurrence relations. These will also help us count how many ways to do something, as well as work out compund interest. Recurrence relations are where xn depends on xn-1, xn-2, etc. Often xn depends only on the previous value xn-1, or xn-1 and xn-2. We will see how to use recurrence relations to analyze algorithms and how to solve them. A famous recurrence relation is the one that generates the Fibonacci numbers 1, 1, 2, 3, 5, 8, 13, 21, ....
6.
Chapter 6: Graph theory. Graphs are made up with nodes (``dots'') that are joined by edges. We will look at questions like: Can we get from one node to any other? Can we visit all the nodes exactly once while traveling along the edges? Can we visit each edge exactly once? How can we find the shortest path from one node to another? When can we draw a graph without edges crossing?
7.
Chapter 7: Trees. Trees are graphs that have no loops. These are useful in many ways, and especially for algorithms. Trees can be used to describe knockout competitions (when a team loses, it is eliminated from the competition). They can also be used to efficiently code data, sort data, encode mathematical expressions, and analyze games like chess and tic-tac-toe.
Assessment










There will be weekly homework assignments, one mid-semester exam, and a final comprehensive exam. The homework will count for 30% of the final assessment, a mid-semester exam will count 20% of the final assessment, quizzes will count for 20%, and the final exam will count for the remaining 30% of the assessment. There will also be ungraded exercises to help you exercise your skills.

The homework is a vital part of the course. If you don't do it, you won't just miss out on 30% of the assessment, but you probably won't get the practice or learn what you need for doing the exams either.
 
 

Notes










The course plan may be modified during the semester. Such modifications will be announced in advance during class periods; the student has responsibility for keeping up with such changes.

You should also make a habit of reviewing the class web page:

http://www.math.uiowa.edu/~dstewart/classes/22c34/22c34.html

This page will have homework details and other information posted to it as the class progresses.

The Department of Computer Science offices are in 14 McLean Hall (MLH). You can contact the chair of the department through the Departmental Secretary at 14 MLH or by calling 335-0746.

Please let you instructor know if you have a disability that requires special arrangements. I need to hear from anyone who has a disability which may require some modification of seating, testing or other class requirements so that appropriate arrangements can be made. Please see me after class or during my office hours.

Be sure to read the section titled Student Complaints Concerning Faculty Actions on page 23 of the Schedule of Classes (Fall 1999).
 


David Stewart

4/25/2001