COMP-5361: Discrete Structures and Formal Languages
Assignment Submission Instructions
Theory assignments: You are expected to submit your solutions as PDF. Other formats will not be graded. There will be a grade associated with how neat, readable, and organized your assignment is, hence I recommend against submitting a handwritten solution. I suggest using LaTeX and submitting the PDF. If you are not familiar with LaTeX, this is a good opportunity for you to caught up with it, since sooner or later you will have to use it. Here is a good tutorial for it. The other option would be using Microsoft Word, and submitting the PDF.
Programming assignments: You are expected to submit the following, using Google Colab:
- An ipython notebook: This file should contain all your code and explanations. Be sure that you are using Python 3 not Python 2. Assignments done in Python 2 will not be graded. You can find an example of how your ipython notebook should look like here (Colab) and here (Github).
- A PDF file: This file is the PDF of the ipython notebook. It is very easy to create the PDF version. Search it online and if you could not find any solutions, you can ask me during the tutorials.
Tutorial Slides
Lecture 1
This lecture covers the basics of python programming language. Note that you are required to submit your programming assignments as an ipython notebook by using Google Colab.
Lecture 2
This lecture covers Propositional Equivalences, Predicates, and Quantifiers.
Lecture 3
This lecture covers Nested Quantifiers and Rules of Inference.
Lecture 4
This lecture covers an Introduction to Proofs and Proof Methods and Strategies.
Lecture 5
This lecture covers an Introduction to Set Theory and Set Operations.
Lecture 6
This lecture covers an Introduction to Functions.
Lecture 7
This lecture covers the Relations and Their Properties, Closures of Relations, Equivalence Relations, and Partial Orderings.
Lecture 8
This lecture covers an introduction to Regular Languages and Deterministic Finite Automata (DFA).
Lecture 9
This lecture covers an introduction to Nondeterministic Finite Automata (NFA) and the equivalence of NFA and DFA.
Lecture 10
This lecture covers Epsilon-NFA, Epsilon-Closure, conversion of Epsilon-NFA to DFA, Regular Expressions, Generalized NFA, and conversions between Automata and Regular Expressions.