Learning Objectives -- Mat385
By the end of this course, students should be able to:
- Basic logic
- Apply formal methods of symbolic propositional and predicate logic.
- Describe how formal tools of symbolic logic are used to model algorithms and
real-life situations.
- Use formal logic proofs and logical reasoning to solve problems such as puzzles.
- Describe the importance and limitations of predicate logic.
- Sets
- explain basic aspects of sets (elements, subsets, etc.)
- develop the link between logic and set theory (abstracted in the
notion of a Boolean algebra)
- Proof techniques
- Outline the basic structure of and give examples of each proof technique described
in this unit.
- Discuss which type of proof is best for a given problem.
- Relate the ideas of mathematical induction to recursion and recursively defined
structures.
- Identify the differences among weak and strong induction and give
examples of the appropriate use of each.
- Basics of counting
- Understand different classes of numbers, and transfinite numbers
(infinities), as well as contexts for their usefulness
- Solve a variety of basic recurrence equations.
- Analyze a problem to create relevant recurrence equations or to identify important
counting questions.
- Graphs and trees
- Illustrate by example the basic terminology of graph theory, and some of the
properties and special cases of each.
- Demonstrate different traversal methods for trees and graphs.
- Model problems in computer science using graphs and trees.
- Relate graphs and trees to data structures, algorithms, and counting.
- Optimization
- Understand the importance of optimization -- the cost of sub-optimal
behavior, in different contexts (e.g. algorithms, graph traversal)
- Understand how an algorithm can be optimal in one context, whereas in
others it becomes sub-optimal.
- Practice optimization in the realm of finite-state machines
Website maintained by Andy Long.
Comments appreciated.