0% found this document useful (0 votes)
17 views

Lecture 1 Introduction

This document provides an introduction to the CSC 320 course. It outlines the lecture times and format, instructor details, textbook, and course evaluation. Key topics that will be covered include regular expressions, pushdown automata, Turing machines, and the relationships between complexity classes P and NP.

Uploaded by

vbweuhvbw
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views

Lecture 1 Introduction

This document provides an introduction to the CSC 320 course. It outlines the lecture times and format, instructor details, textbook, and course evaluation. Key topics that will be covered include regular expressions, pushdown automata, Turing machines, and the relationships between complexity classes P and NP.

Uploaded by

vbweuhvbw
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 22

Lecture 1: Introduction

CSC 320: Foundations of Computer Science


Quinton Yong
quintonyong@ uvic.ca
Lectures and Tutorials
• Instructor: Quinton Yong
• Email: [email protected] (please use your UVic email)
• Office: ECS 621

• Lectures:
• Synchronous, in-person delivery
• A01, A02: 11:30 am – 12:50 pm on M, Th (HHB 105)

• Office Hours (ECS 621):


• M, Th: 1:00 pm – 2:30 pm
• By appointment
• Extra hours for assignments / exams

• Course Website:
• Brightspace: https://bright.uvic.ca/d2l/home/336697
• Course outline: https://heat.csc.uvic.ca/coview/course/2024011/CSC320
PowerPoint Passcode Game

Try and guess the 3-digit passcode:

• The game is “implemented” by having each button link to a different slide

• How many slides are needed?


PowerPoint Passcode Game
• Suppose we added an enter button to enter a passcode

• We want the passcode 0’s followed by an equal number of 1’s (e.g 000111)

• How can we create a DFA which accepts these passcodes?


Pushdown Automata
• Increase the computational power of a DFA by adding stack memory

• Pushdown Automata: Can push / pop symbols and read the top symbol

000111

• Using a pushdown automata, we can accept passcodes of form 0’s followed by


an equal number of 1’s
Pushdown Automata
• Pushdown automata for 0’s followed by an equal number of 1’s passcode
(we will learn this notation later in the course):

𝟎, 𝝐 → 𝟎 𝟏, 𝟎 → 𝝐

𝝐, 𝝐 → $ 𝝐, 𝝐 → 𝝐 𝝐, $ → 𝝐

• With pushdown automata, we can determine if a text file contains proper


syntax for code in a programming language

• There are still limits to what is computable


Turing Machines
• We give a state machine unlimited memory and unlimited read / write access

• Turing machine: infinite tape and can read / write symbols anywhere

• A Turing machine is an abstract computational model for a classical computer

• The computational limits of a Turing machine are the limits of classical computers

1 0 1 1 0 …

• There are problems that are unsolvable / undecidable on a classical computer


• The Halting Problem
• The Bugged Code Problem
P v.s NP
For problems which are solvable on a Turing machine:
• There are problems which can be solved efficiently
• There are also problems which we don’t know if there exist efficient solutions

P: Problems which have polynomial time solutions (multiplication, sorting, etc.)


NP: Problems which, given a potential solution, can be verified in polynomial time

NP

P
P v.s NP
• The P v.s NP problem: “Are the problems in P the same as the problems in NP?”
• In other words, if the solution to a problem is easy to check for correctness, must
the problem be easy to solve?

P = NP ?
CSC 320 Timeline

Regex’s PDA’s TM’s Reductions

DFA’s and Pumping CFG’s Undecidability NP Completeness


NFA’s Lemma
Textbook (Required)

• Introduction to the Theory of Computation, 3th Edition


Michael Sipster
Lectures
• All slides presented in class will be posted

• Lectures not recorded live


• A video covering lecture content will be posted later on
• Videos are meant for review if you miss a lecture and to supplement studying,
but not intended to replace attendance to lectures

• Please ask questions if you have them at any point


• If something is confusing, it is my fault for not explaining it clearly and I will
gladly explain again
• More than likely, other students have the exact same question

Tutorials
• Weekly tutorials going over practice questions which are similar to
assignment / midterm questions
Evaluation

• Assignments (30%)
• There will be 6 assignments worth 5% each
• You will be given around 2 weeks to complete them
• There are 2 assignments before each midterm for practice
• Assignments will be given and submitted through BrightSpace

• Midterms (40%)
• Midterm 1 (20%): in class on February 8th
• Midterm 2 (20%): in class on March 14th
• You are allowed one single sided handwritten cheatsheet of A4 (8.5’’ x 11’’) paper

• Final (30%)
• To be scheduled by the University
• You must pass the final exam to pass the course
Policy on Collaboration / Online Resources

Assignments:
• Students are encouraged to discuss assignments together
• All solutions must be individually written and no sharing of any solutions
• (Don’t look at any other student’s paper)
• You may use online resources to help you on your assignments, but your
submission must clearly display that you understand the solution

ChatGPT:
• You may use ChatGPT to help you on your assignments
• WARNING: ChatGPT is pretty bad at CSC320…
Countable and Uncountable
A set is countable if it is finite or countably infinite
• elements of a countable set can be counted one at a time without missing any
• every element is associated with a unique natural number

There exists a bijection between any countably infinite set and the set of natural
numbers ℕ

1
2
3
4
5

A set that is neither finite nor countably infinite is uncountable


Countable and Uncountable

Is the set of integers ℤ countable?

… -5 -4 -3 -2 -1 0 1 2 3 4 5 …

We can enumerate the elements of ℤ as follows:


0 1 -1 2 -2 3 -3 4 -4 5 -5 …
1 2 -3 4 - 5 6 …

The set of integers ℤ is countably infinite


Countable and Uncountable
Is the set of positive nonzero rational numbers ℚ+ \{0} countable?
1 1 1 1 1 1 1
1 2 3 4 5 6 7
2 2 2 2 2 2 2
• This method of counting lets us enumerate all
1 2 3 4 5 6 7 rational numbers
3 3 3 3 3 3 3 • No missing numbers or getting stuck in infinity
1 2 3 4 5 6 7

4 4 4 4 4 4 1
• Note: Counting row by row or column by
1 2 3 4 5 6 7 column would never reach all the numbers
5 5 5 5 5 5 5
1 2 3 4 5 6 7
6 6 6 6 6 6 6
1 2 3 4 5 6 7

ℝ is uncountable (Cantor’s Diagonalization)
Proof by contradiction: Assume that the real numbers ℝ is countable.

• If ℝ is countable, then we should be able to enumerate the real numbers just


between 0 and 1.
• Let the enumeration (𝒙𝟏 , 𝒙𝟐 , 𝒙𝟑 , …) be written as follows:
𝒙𝟏 = 0. 𝑑11 𝑑12 𝑑13 𝑑14 …
𝒙𝟐 = 0. 𝑑21 𝑑22 𝑑23 𝑑24 …
𝒙𝟑 = 0. 𝑑31 𝑑32 𝑑33 𝑑34 …
𝒙𝟒 = 0. 𝑑41 𝑑42 𝑑43 𝑑44 …


• 𝒙𝒏 = 0. 𝑑𝑛1 𝑑𝑛2 𝑑𝑛3 𝑑𝑛4 … is the 𝒏𝒕𝒉 real number in the enumeration

• 𝒙𝒏 has decimal digits 0. 𝑑𝑛1 𝑑𝑛2 𝑑𝑛3 𝑑𝑛4 (since we are enumerating real numbers
between 0 and 1)
ℝ is uncountable (Cantor’s Diagonalization)
• Consider the number 𝒄 = 0. 𝑐1 𝑐2 𝑐3 𝑐4 … where 𝑐𝑖 ≠ 𝑑𝑖𝑖 for each 𝑖

𝒙𝟏 = 0. 𝑑11 𝑑12 𝑑13 𝑑14 … 𝒄 ≠ 𝒙𝟏 since the 1𝑠𝑡 decimal digit is different (𝑐1 ≠ 𝑑11)
𝒙𝟐 = 0. 𝑑21 𝑑22 𝑑23 𝑑24 … 𝒄 ≠ 𝒙𝟐 since the 2𝑛𝑑 decimal digit is different (𝑐2 ≠ 𝑑22 )
𝒙𝟑 = 0. 𝑑31 𝑑32 𝑑33 𝑑34 … 𝒄 ≠ 𝒙𝟑 since the 3𝑟𝑑 decimal digit is different (𝑐3 ≠ 𝑑33 )
𝒙𝟒 = 0. 𝑑41 𝑑42 𝑑43 𝑑44 … 𝒄 ≠ 𝒙𝟒 since the 4𝑡ℎ decimal digit is different (𝑐4 ≠ 𝑑44 )

𝒙𝒏 = 0. 𝑑𝑛1 𝑑𝑛2 𝑑𝑛3 𝑑𝑛4 … 𝒄 ≠ 𝒙𝒏 since the 𝑛𝑡ℎ decimal digit is different (𝑐𝑛 ≠ 𝑑𝑛𝑛 )

• Since 𝒄 is a number between 0 and 1, it should be enumerated in this list


• However, since it differs from every element, it cannot be in this list
Clarification on 𝒄
• Consider the number 𝒄 = 0. 𝑐1 𝑐2 𝑐3 𝑐4 … where 𝑐𝑖 ≠ 𝑑𝑖𝑖 for each 𝑖
• For example, suppose the numbers (𝒙𝟏 , 𝒙𝟐 , 𝒙𝟑 , …) are as follows
𝒙𝟏 = 0. 𝟒031…
𝒙𝟐 = 0.1𝟖93…
𝒙𝟑 = 0.53𝟔7…


• We define 𝒄 = 0. 𝑐1 𝑐2 𝑐3 𝑐4 such that the digit 𝒄𝒊 is something different than the 𝒊𝒕𝒉
digit of 𝒙𝒊

• In the example enumeration above:


• 𝒄𝟏 can be any number other than 4
• 𝒄𝟐 can be any number other than 8
• 𝒄𝟑 can be any number other than 6
• So, 𝒄 could be something like 0.597…
Clarification on 𝒄
• You may be wondering, if we enumerate the real numbers between 0 and 1 like
𝒙𝟏 = 0.000 … 00
𝒙𝟐 = 0.000 … 01
𝒙𝟑 = 0.000 … 02


then 𝒄 must be in the list somewhere.

• Consider if 𝒄 appears in the list at position 𝒌, that is 𝒙𝒌 = 𝒄

• However, 𝒄 is defined such that digit 𝒄𝒌 is different than the 𝒌𝒕𝒉 decimal digit of 𝒙𝒌

• Thus, 𝒄 can’t possibly be in the list anywhere


ℝ is uncountable (Cantor’s Diagonalization)

• The enumerated list 𝒙𝟏 , 𝒙𝟐 , 𝒙𝟑 , … does not contain all real numbers between
0 and 1 since it cannot contain 𝒄

• So, we cannot enumerate all the elements in this subset of ℝ (real numbers
between 0 and 1)

• This is a contradiction since we assumed that ℝ is countable

• Therefore, ℝ is uncountable

You might also like