Deterministic Finite Automata and Regular Expressions
Audience: high-schoolundergraduate
We introduce and explore deterministic finite automata (DFA) and regular expressions (regex), two tools that are usually taught early in a curriculum of theoretical computer science. We then prove that for every DFA there is a regex that describes exactly the same language. The main goals of the video are: - Build intuition for DFAs and regexes, by looking at many examples and exercises. - Understand the proof why every DFA can be translated into a regex. - Learn about two common proof strategies, namely generalization and induction, that are used commonly throughout mathematics. - Understand why the regular languages form a robust mathematical concept. No prior knowledge is required. The video should be suitable for undergraduates and high-school students.
Analytics
Comments
To much data
Great production quality with clear motivation and explanation. The presentation definitely fits this year’s theme very well. I love the smooth visualizations you have, and straight forward summaries after each section. I do think it can still be improved on the novelty aspect a little more.
Excellent work. It is not accessible to high-school students, contrary to what was stated in the description. As a specialized mathematician, I appreciated this work.
This is better taught than at my university, and it starts with a problem that is encountered in real life, what is regex and how computers check if a string matches a regex. The only thing that I consider could be improved is a good intuition of the formula for regex for all strings that take you from p to q with intermediate state from 1..m, so that the person who watches the video can implement after that a program that could convert a DFA to regex.
Damn, what a great vid! The topic for me was super interesting since I used DFA’s in my master dissertation without even knowing their computer science background and relation to regular expressions (math major here lol). Good presentation and visuals. The only thing that’s backing me from giving it a higher vote is the lack of second implication in theorem. Also the motivation was a bit lacking, objectively imo. I was motivated because I was interested in the topic beforehand, but apart from that I didn’t see much of a motivation there. Maybe showing some application of DFA’s (for example in maths? like Prouhet-Thue-Morse sequence?). Nonetheless excellent!
Hello, thanks for the video - after having to see regex in code - I have been wanting to learn regex, and after a few false starts in the past this video finally managed to motivate me to learn about regex.
Overall, I think it was a pretty good video. I was really impressed with the simple and clear manner the content was introduced with, and the ability to give a birds eye view of the subject by the discussion of connections to other regular languages and through giving a comparison of expressiveness of regex to other languages students might be familiar with (e.g. Lambda Calculus).
- I think there were some small things I wanted to touch on - for the proof of DFA to regex I would have potentially liked to have seen a mini conclusion of the key takeaways of the method immediately after the proof, or a follow up statement on how you might heuristically adapt this to quickly give you a sketch of what the DFA looks like in Regex (if that’s possible). In addition I thought there were some minor stylistic improvements which could be made e.g. at 0:33 for the discrenability of the a+b, but this had zero effect on changing my experience of the video.
For me as my first video to vote on for SoME 4 (or SoME in general) I have been pleasantly surprised by this videos quality, and I will be intrigued to see what content you produce in the future.
Sincerely, A Recent Mathematics Graduate.
This is a fantastic introduction to regular languages.
This was a nice introduction to regular languages and DFAs. I liked that you talked about them independently first and then explained the non-obvious nature of their equivalence.
The one direction of the proof made sense, which is impressive because that sort of proof is usually hard to understand. I think you could have disambiguated the word “inbetween” as “strictly in-between.” I appreciate that you actually did the work of filling out the whole table with particular examples; expressing that in a table helped.
I liked this video. Crystal clear explanations, good examples and great visuals. The proof is easy to follow and neatly feeds the big ideas to the viewer. The small pauses and questions are also a great plus.
The narrator has a soothing voice, which I like. No unnecessary shouting or fake drama.
The thing I was missing is a strong motivation. The best reason the video gives for watching it is the natural interestingness of DFAs and regexes. Perhaps that is all there is to it. I’m still glad I watched this video.
Initial Thoughts
Well done! The video and animations were very well put together, and I felt like most of the explanations were simple enough to reach the high-school audience you listed.
What Went Well
When I first learned about regular expressions, DFA’s were used to show what the computer is doing in the background, so I was familiar with the connection between the two, but it was interesting to see the proof that there has to be a regular expression for any DFA. I enjoyed your visual representation of how regular expressions work, splitting the regular expression strings into boxes until they matched the input string.
Ideas for Improvement
The start of the proof was a little tough for me to follow. I didn’t catch that p and q were the starting and ending states until you started filling in the table. Using some visual indications for p and q to draw attention to those may have made that easier to follow at the beginning. Also, the example close to the end where searching for a regular expression that does not have a certain string in it, the resulting regular expression from translating it into a DFA, switching the states, and translating it back to a regex looked quite long. That could be intimidating for people who are just learning about regexes for the first time and don’t know that there are simpler notations they can use to get the same effect. A deep dive into regex notation was beyond the scope of this video, and I think that was a good decision on your part, but I think a brief mention that some simplifying notation exists would have made regex seem more accessible to those just learning about them.
Overall, great job! Very well done.
Really interesting, I’ve heard about both automata and regex in connection to computational linguistics, but I didn’t know about this specific relationship between them.