This is a free online course offered by the Saylor Foundation.

'The main purpose of this course is to bridge the gap between introductory mathematics courses in algebra, linear algebra, and calculus on one hand and advanced courses like mathematical analysis and abstract algebra, on the other hand, which typically require students to provide proofs of propositions and theorems. Another purpose is to pose interesting problems that require you to learn how to manipulate the fundamental objects of mathematics: sets, functions, sequences, and relations. The topics discussed in this course are the following: mathematical puzzles, propositional logic, predicate logic, elementary set theory, elementary number theory, and principles of counting. The most important aspect of this course is that you will learn what it means to prove a mathematical proposition. We accomplish this by putting you in an environment with mathematical objects whose structure is rich enough to have interesting propositions. The environments we use are propositions and predicates, finite sets and relations, integers, fractions and rational numbers, and infinite sets. Each topic in this course is standard except the first one, puzzles. There are several reasons for including puzzles. First and foremost, a challenging puzzle can be a microcosm of mathematical development. A great puzzle is like a laboratory for proving propositions. The puzzler initially feels the tension that comes from not knowing how to start just as the mathematician feels when first investigating a topic or trying to solve a problem. The mathematician“plays” with the topic or problem, developing conjectures which he/she then tests in some special cases. Similarly, the puzzler “plays” with the puzzle. Sometimes the conjectures turn out to be provable, but often they do not, and the mathematician goes back to playing. At some stage, the puzzler (mathematician) develops sufficient sense of the structure and only then can he begin to build the solution (prove the theorem). This multi-step process is perfectly mirrored in solving the KenKen problems this course presents. Some aspects of the solutions motivate ideas you will encounter later in the course. For example, modular congruence is a standard topic in number theory, and it is also useful in solving some KenKen problems. Another reason for including puzzles is to foster creativity.'