Content Information
First we learn a general methodology for solving problems. This methodology is going to be followed in solving problems, and in proving theorems throughout this course.
The next subject is logic. Logic subject matter is covered in Chapter 1 of the textbook. “Logic” is a language that captures the essence of our reasoning, and correct reasoning must follow the rules of this language. We start with logic of sentences called propositional logic, and study elements of logic, (logical) relationships between propositions, and reasoning. Then we learn a little more powerful logic called predicate logic. Predicate logic allows us to reason with statements involving variables among other statements.
In Chapter 1, we also study sets, relations between sets, and operations on sets. Sets are the basis of every theory in computer science and mathematics.
In Chapter 3, we learn recursive definitions and mathematical reasoning, in particular induction. There are sets, operations and functions that can be defined precisely by recursive definitions. Properties of those recursively defined objects can be established rigorously using proof by induction.
Then in Chapters 6 we study relations. Relations are one of the key concepts in the discussion of many subjects on computer and computation. For example, a database is viewed as a set of relations and database query languages are constructed based on operations on relations and sets. Graphs are also covered briefly here. Graphs are an example of discrete structures and they are one of the most useful models for computer scientists and engineers in solving problems. More in-depth coverage of graphs can be found in Chapter 7.
Finally, back in Chapter 1 again, we briefly study functions. Functions are a special type of relation and basically the same kind of concept as the ones we see in calculus. However, functions are one of the most important concepts in the discussion of many subjects on computer and computation, such as data structures, database, formal languages and automata, and analysis of algorithms, which is briefly covered in Chapter 2.