CSci 1302 Problem Solving and Algorithm Development II.

[Home] [Syllabus] [Assignments] [Resources]

Syllabus

The syllabus below is somewhat approximate. Dates, topics, assigned reading, and problem set due dates are subject to change. All changes in assigned reading and due dates will be announced in class (and occasionally by e-mail). While I will do my best to update the web site accordingly, it is a student's responsibility to keep track of the problem set due dates and reading assignments. If you are not sure about due dates, please don't hesitate to ask.

Both the midterm and the final exams are open book, open notes.

Note that the date for the midterm exam is set and will not change. If you have a conflict with this date, please let me know right away.

All reading is from Nimal Nissanke "Introductory Logic and Sets for Computer Scientists", unless specified otherwise.

Problem sets are due in the beginning of the class on the due date. If a problem set is submitted at (or before) the next class meeting after the due date, it is graded out of 3/4 credit. If it is submitted any time after the next meeting (until the last class meeting), then it is graded out of 1/2 credit.
Problem sets submitted more than 2 minutes after beginning of the class are considered late.

Working in groups

Working together with other students on problem sets helps you understand the material better. You may hand in group assignments (two or three students per group). Make sure you keep copies of all assignments yourselves and hand in one assignment from the entire group with names of all students on the first page. Groups are not set in stone for the entire semester, it's perfectly OK to change them or do some problem sets on your own, just make sure to let others know in advance about your plans.

Working in groups helps learning if all students in the group discuss all of the problems and participate equally. It doesn't help you learn if you divide problems among the group members (so that one person works on one problem and another works on another) or if one person does all the work, and the other just puts their name on it. If you feel that group participation is uneven, it's time to talk to your partner(s) and possibly to change your group or to start working individually.

In-class quizzes

There will be approximately 10-12 quizzes during the semester. A quiz will be about 15-20 minutes and will be based on recent material (including the material of the previous class meeting and the assigned reading). You may use your notes and the textbook on a quiz. Quiz dates will not be announced in advance.

Missed quizzes are counted as 0. The lowest quiz grade in the semester will be dropped (i.e. it will not contribute to overall grade).

Monday Wednesday Friday
Week 1: August 30 -- September 3
Introduction, course overview.
Logical systems, scientific theories, mathematical models.
Reading: Ch. 1, 2.
Propositions and propositional connectives. Propositions (continue).
Week 2: September 6 -- September 10
Labor Day Holiday -- no class Propositional logic as a language (grammar, semantics). Reading: Ch. 3.
Problem set 1: Propositions (due Wedn., September 15th)
Truth tables, logical equivalence, logical implications.
Week 3: September 13 -- September 17
Digital circuits.
Logical laws
Reading: Ch. 4.
Problem set 1 due
Problem set 2: formal language of propositional logic, truth tables, digital circuits (due Wedn., Sept. 22)
Transformational proofs and their applications.
Week 4: September 20 -- September 24
Transformational proofs and their applications (cont.). Introduction to deductive proofs. Validity, truth tables.
Reading: Ch. 5.
Problem set 2 due
Problem set 3: transformational proofs. (due Wedn., Sept. 29th)
Proving validity using deductive proofs, inference rules.
Week 5: September 27 -- October 1
Reasoning in theories; examples. Introduction to predicate logic, its relation to propositional logic.
Reading: Ch. 6.
Problem set 3 due
Problem set 4: Deductive proofs. (due Wedn., Oct. 6th)
Quanifiers, unary predicates.
Week 6: October 4 -- October 8
Predicates with higher arities, examples. Scope of quantifiers, bound and free variables.
Reading: Ch. 7.
Problem set 4 due
Problem set 5: Predicates and quantifiers. (due Wedn., Oct. 13th)
Comparison with variable usage in programming and mathematics.
Week 7: October 11 -- October 15
Interpretation of universal and existential quantifiers (finite model). Reading: Ch. 8.
Theorems in predicate logic.
Problem set 5 due
Formulae in propositional form. Reading: Ch. 9.
Problem set 6: Scope of quantifiers, interpretation of formulae. (due Mon., Oct. 25th)
Week 8: October 18 -- October 22
Fall break -- no class.
Review for the exam.
Midterm exam (includes material up to Friday, Oct. 15th.)
Week 9: October 25 -- October 29
Theorems and proofs in predicate logic.
Reading: Ch. 9, handout.
Problem set 6 due
Problem set 7: Proofs in predicate logic (due Wedn., Nov. 3rd)
More examples of proofs in predicate logic.
Introduction to loops in imperative programming languages.
Loop invariants.
Reading: TBA
Week 10: November 1 -- November 5
Mathematical induction (introduction).
Reading: Ch. 10.
More on mathematical induction.
Problem set 7 due.
Problem set 8: Mathematical induction. (due Wedn., Nov. 10th)
Big-Oh notation, etc.
Reading: handouts (given in class)
Week 11: November 8 -- November 12
Algorithm analysis.
Reading: handouts (given in class).
Algorithm analysis (cont.).
Problem set 8 due.
Problem set 9: Algorithm analysis. (due Wedn., Nov. 17th).
Algorithm analysis (cont.).
Week 12: November 15 -- November 20
Introduction to sets, basic concepts of set theory.
Subsets, power sets, etc.
Reading: Ch. 11.
Set operations.
Reading: Ch. 12
Problem set 9 due.
Problem set 10: sets, operations on sets (due Wedn., Nov. 24th)
Relations (introduction).
Reading: Ch. 13.
Week 13: November 22 -- November 26
More on relations, Relational databases.
Properties of binary relations; equivalence relations
Reading: Ch. 14 (up to 14.2), 15.
Problem set 10 due.
Problem set 11: Relations, relational closures, equivalence classes (due Wedn., Dec. 8)
Thanksgiving -- no class
Week 14: November 29 -- December 3
Equivalence classes, relational closures.
Relational closures (cont.) Introduction to graph theory.
Reading: handout (given in class)
Week 15: December 6 -- December 10
Search algorithms on graphs.
Reading: handout (given in class)
Functions as relations.
Reading: Ch. 16.
Problem set 11 due.
Problem set 12: Graphs, functions (due Wedn., Dec. 15th)
Function composition. Examples of use of functions. Functional programming (overview).
Week 16: December 13 -- December 15
Catch up and discussion.
Last day of classes
Review and wrap up.
Problem set 12 due.
Final exam: Friday, Dec. 17th, 11am-1pm