Observe These Course Conventions
 In CS 245, the Natural Numbers start at 0. You were likely told in MATH 135 that the Natural Numbers start at 1. Many mathematicians and computer scientists would argue in favour of either choice. In CS 245 we choose 0.
 Subset Notation:
 X ⊂ Y indicates that X is a proper subset of Y.
 X ⊆ Y indicates that X is a proper subset of Y, or that X is equal to Y.
 Unless otherwise stated, English "or" means inclusiveor.

English sentences of the form "if A then B" assert that, if A occurs, then B must also occur.
It is not clear what the sentence asserts in the case when A does not occur.
In formal logic, we will need to cover all possibilities, so we will assign a meaning to such a sentence, even in the case when A does not occur.
Full details about this will be explained soon.

Sometimes sentences of the form "if A then B" assert that A causes B.
It turns out that the notion of causation is messy and does not translate well into formal logic.
So we will not work with this type of causal sentence in CS 245.
Use the LEARN Site

Pay attention to the schedule. The schedule will indicate when you will need to submit things for the course.

Access the instructors' notes, which will cover the entire course.

Watch the linked videos which accompany the notes, for additional explanation.

Do the practice quizzes as they are posted, to get some early practice with the material.

Download the biweekly Crowdmark assignments on Wednesdays.
You will submit your assignment solutions the following Wednesday (in most weeks), on Crowdmark.
Refer to the schedule for any exceptions to this default timing.

Do the marked quizzes during the weeks where no Crowdmark assignment or MidTerm Assessment is due.

Download the tutorial notes after the synchronous tutorials.

Attend the synchronous sessions with the instructors.
Use the Piazza Site

Post appropriate questions to your classmates.

Post private questions to your instructors.

Use MathJax, MarkDown or the builtin symbol table to include mathematical symbols in your posts, to make them clearer.

Monitor the email that is connected to Piazza, so that you will receive instructor announcements sent via the site.

In accordance with university policies, please always be respectful and professional when posting to our course Piazza site.
If you need to give feedback about an aspect of the course which you do not like, then please do so in a constructive manner.
Use MS Teams

Attend the weekly tutorials.

Attend office hours with the course staff.
Make The Most Of Instructor Office Hours

The purpose of instructor office hours is to provide you with time to get your questions about the course material answered.

Often, but not always, these questions will be about the assignment for that week.

You will get the most out of the office hours if you arrive with a list of specific questions.

Office hours are not meant to replace yout time spent reading and understanding the course notes, and watching the lecture videos.

Attend office hours if there is anything about the course that you would like to discuss.
If the scheduled hours don't suit you, then email your instructor for an appointment at another time.
Form Good Study Habits

CS 245 is unique among your core CS courses, in that you will not write any code.
The goal of the course is to make you a better thinker about your coding.

You will have the opportunity to write many proofs during the course, using all the techniques you have learned in MATH 135.
This will give you practice at writing up your arguments carefully and thoroughly.

Often there will be multiple correct solutions to the questions you will work on.
Some solutions will be more elegant than others.
It will benefit you to understand the problems from several different angles.
Your instructors will include multiple model solutions where appropriate, presenting the most elegant one first.

Keep up with your course work, each week.
Do not let things pile up on you.

As with any mathematical course, we will continually build on everything we have already learned as we start on a new topic.
Make sure that you have a firm grasp on the definitions introduced already, as they will be ingredients in the new material you are about to learn.
Practise Your Abstract Thinking Skills

Dealing with things abstractly has the benefit that we ignore irrelevant details, and focus on the important features of some object.

This makes our analysis applicable in the maximum number of situations, which is desirable.

The cost is that our definitions must also be stated abstractly.
This can make definitions more challenging to understand.

This is a natural extension of the approach taken in MATH 135.
Recall the definition of a natural number, p > 1, being prime: every Natural number divisor, d, of p, either equals 1 or equals p.

This definition ranges over all the divisors of p, and it asserts that a statement (which is written using an English "or") holds for each of them.

This definitinon makes no attempt to explicitly list all prime numbers.
Indeed, this would be futile because there are infinitely many primes.

Instead the definition provides a test which can be applied to any natural number p > 1.
For some choices of p (e.g. p = 6), the test answers "no".
For some choices of p (e.g. p = 7), the test answers "yes".

We can think of this test for primeness as partitioning the set of Natural numbers into the primes and the nonprimes (i.e. 0, 1, and the composite Natural numbers).

Both the objects we will study, and the way we will study them, have been chosen to provide you with practice at logical thinking.

There will be many subtleties to grapple with throughout the course.
Your instructors will make every effort to point them out, and to illuminate all the relevant details about them.
Practise Writing Things Formally

The course emphasizes writing things formally, in particular,

studying the syntax of formulas separate from their semantic meanings, and

writing formal deduction proofs.

Get used to writing things up according to given formal rules, without reference to any semantic meaning.

We will use variables formally throughout the course.

Some of these variables will be used in the style of MATH 135, i.e. giving a short name to an object to provide a concise way to refer to it.

Some of the variables will be used in the setting of formal logic. We will explain this fully when we start into firstorder logic.

The instructors will follow the mathematical conventions from the text by Lu, as best we can.
The instructors will not require you to be as careful about following these conventions as we will be.
If Applicable, Typeset Your Mathematics Correctly
To enter symbols not on your keyboard, there are several methods.
 Cutandpaste: if you have the character on your screen already,
a normal cutandpaste will often work. (Formatting can
interfere, however.)

Keyboard "escapes": Most operating systems have a method of
entering characters by their number (often decimal). Use the number
in the table. (The precise method varies by OS; it often involves
the "alt" key.)

Character menus: An entry form (e.g., in Piazza) may allow access
to a table of "special characters" or "math symbols". If you can
find the one you want, great!

HTML entities: Some entry formats (Piazza posts, Learn quizzes,
etc.) allow entry of HTML codes, either named or numeric. All
such names and numerals contain only ASCII characters that you can
type directly on your keyboard. [For decimal numbers, enter
"&#⟨number⟩;"; for hex, enter
"&#x⟨number⟩;". Include the semicolons at the end!]
 Some sites, including Piazza (but not Learn), enable the
MathJax implementation of basic LaTeX. Conventions for using it
differ slightly; see the site docs (or simply try it and see what
happens). MathJax will normally produce better formatting than
the other methods—for one thing, it can load fonts when
required.
Use whichever one (or several) that you find easiest.
The table lists most of the nonalphabetic symbols we shall use in
the course.
To understand the types of symbol ("logical", etc.) see
the next section and also the whole of the course. Alphabetic
symbols (letters) and others that appear on a keyboard (e.g., '+') are are omitted, since they don't normally pose a
problem.
List of symbols, in Unicode, HTML, and LaTeX
Symbol 
Codepoint 
HTML name 
LaTeX name 
Description/meaning 
decimal  hex 

¬  172  U+00AC  ¬  \neg,
\lnot  not (negation) 
∧  8743  U+2227  ∧  \land  and (conjunction) 
∨  8744  U+2228  ∨  \lor  or (disjunction) 
→  8594  U+2192  →  \rightarrow  implies 
↔  8596  U+2194  ↔  \leftrightarrow  if
and only if 
∀  8704  U+2200  ∀ 
\forall  for all, for every, for each 
∃  8707  U+2203  ∃  \exists 
there exists, for some 
≈  8776  U+2248  ≈  \approx  equals [in Lu]


⇒  8658  U+21D2  ⇒  \Rightarrow  implies (material implication) 
⊢  8866  U+22A2  ⊢  \vdash  proves [in Formal Deduction] 
⊨  8872  U+22A8  ⊨  \vDash  (tauto)logically implies 
−  8722  U+2212  −  \ensuremath{}  [used in rule names] 
In addition to the above, we shall also use common keyboard
symbols, such as '+', '=', etc., with their usual meanings.
Symbols that can appear in formulas
Each type of formula (propositional, firstorder, etc.) has two kinds
of symbols specified for it.
 Logical symbols.
 These have a specific meaning, as defined by
the logic. Examples: connectives, quantifiers.
 "Nonlogical" symbols.
 Specified symbols, whose meaning is
specified separately. The specification is called a (truth) valuation.
Most of the symbols that you have encountered in formulas of university
mathemetics fall into the category of nonlogical symbols. For
example, while '
π' is often used to denote a particular ratio, in
other contexts it may denote something else entirely, such as a
permutation.
You will probably also have seen some of the logical symbols, such
as ∀, →, etc.; however, their usage is generally
informal outside of mathematical logic.
"Metasymbols" (which cannot appear in formulas)
In mathematical logic, the basic objects we study are formulas. In
order to use mathematics to discuss formulas, we of course use normal
mathematical symbolism. To minimize confusion, we distinguish between
the "symbols" that occur in formulas and the "symbols" that we use to
describe formula. The latter are called "metasymbols". (It can take a while to get used to the distinction, but thereafter it proves quite helpful.)
For example, the symbols '→' and '⇒' both appear in the
table above with the meaning "implies". They are distinct symbols, and may
not be interchanged. The oneline '→' is a formal symbol. Use
it in formulas. The twoline '⇒' is a metasymbol.
It may not appear in a formula, although it will
frequently occur between formulas.