Skip to content
UoL CS Notes

Home

This website houses notes from my studies at the University of Liverpool. If you see any errors or issues, please do open an issue on this site's GitHub.

NFA to DFA Conversion (Determinisation)

COMP218 Lectures

An ($\epsilon$-)NFA can do everything a DFA can do and vice-versa. Every ($\epsilon$-)NFA can be converted into a DFA for the same language. Method Eliminate $\epsilon$-transitions ($\epsilon$-NFA to NFA). Convert NFA to DFA. NFA to DFA (Intuition) To do this you split out the possible states into sets of states....

Read More

E-mail, SMTP & IMAP

COMP211 Tutorials

There are three major components to e-mail: User Agents Such as outlook or geary. Mail servers Mailbox - contains incoming messages for user. Mesage Queue - of outgoing messages. SMTP Protocol - Between mail server to send email messages. The protocol: simple mail transfer protocol (SMTP) SMTP The standard for...

Read More

HTTP Messages

COMP211 Tutorials

HTTP There are two types of HTTP messages: request response HTTP messages are encoded in ASCII. Here is one now: GET / HTTP/1.1 Host: comp211.gairing.com User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:92.0) Gecko/20100101 Firefox/92.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Language: en-GB Accept-Encoding: gzip, deflate DNT: 1 Connection: keep-alive Upgrade-Insecure-Requests: 1 Only the GET and...

Read More

SQL Queries (Required Part)

COMP207 Lectures

SQL queries have the following form: SELECT [] FROM [] WHERE [] GROUP BY [] HAVING [] ORDER BY [] The first two parts are required to have a valid query. Basic Query For the following table: birthday first_name family_name 1990-11-10 Anne Smith 200-02-05 David Jones 1995-05-09 William Taylor SELECT...

Read More

Software Requirements

COMP201 Lectures

User Requirements These are statements in natural language plus diagrams of services the system provides and its operational constraints. This is written for customers. System Requirements A structured document setting out detailed descriptions of system services. This can be used as a written contract between client and contractor. Software Specification...

Read More

Set Theory, Kleene Star & DNF

COMP218 Tutorials

The questions for this tutorial are available here. Powersets The powerset is the set of all subsets. The number of elements in the powerset is: $2^n$. $\{\emptyset\}, \{a\}, \{b\},\{a,b\}$ $\{\emptyset\}, \{0\},$ $\{1\},\{2\},$ $\{0,1\},\{0,2\},$ $\{1,2\},\{0,1,2\}$ $\{\emptyset\}, \{z\}$ $\{\emptyset\}, \{1\},\{3\},\{1,3\}$ $\{\emptyset\}, \{0\},\{2\},\{0,2\}$ $\{\emptyset\}$ Kleene Star Operation This is all the different strings...

Read More

Nondeterministic Finite Automata (NFAs) & Epsilon-NFAs

COMP218 Lectures

Nondeterministic finite automatons allow us to make guesses. This can enable abilities such as look-ahead. They have the following properties: Each state can have zero, one, or more outgoing transitions labelled by the same symbol. The input is accepted if at least one computational path accepts. Example This is an...

Read More

Protocol Layers & Reference Models

COMP211 Lectures

Defining protocol layers helps in dealing with complex systems: Explicit structure allows identification, relationship of complex system’s pieces. Layered reference model for discussion. Modularisation eases maintenance, updating of system. Change in layer’s service implementation is transparent to rest of system. Internet Protocol Stack1 ISO/OSI Reference Model The OSI reference model...

Read More

History

COMP211 Lectures

1961-1972 - Early Packet-switching Principles 1961 - Kleinrock - Queuing theory shows effectiveness of packet switching. 1964 - Baran - Packet-switching in military nets. 1967 - ARPAnet conceived by Advanced Research Projects Agency. 1969 - First ARPAnet node operational. 1972 - ARPAnet public demo. NCP - Network control protocol is...

Read More

Security

COMP211 Lectures

The internet was not originally designed with security in mind. This means that current methods have been patched onto the existing layers of the internet. Denial of Service This method of network abuse uses several computers to send traffic to a server in order to overwhelm it. Packet Sniffing On...

Read More