This asynchronous elective module is a preview of CS334 (Mathematical Foundations of CS).
Broadly speaking, CS334 is about understanding what computers really are, in the most abstract form. It studies the following topics from a theoretical perspective:
- What can be computed? What does it really mean when we say something can be computed?
- What is a compiler (conceptually)? How do compilers work?
- We use regular expressions in Python and Java all the time. But how do regular expressions work under the hood?
As an EM in CS230, we are only going to scratch the surface of these deep topics. More specifically, we will see the concepts of formal languages and deterministic finite automata (DFA). Those are usually the first few things taught in CS334.
Concepts used in this EM:
- Sequences in Core Module 3: Math Tools
- Sets and Functions in Core Module 4: Sets, Functions, and Relations
- Recursive Definitions and Directed Graphs in Core Module 6: Graph Fundamentals Part I and Core Module 6: Graph Fundamentals Part II
To get credit for EMF:
- Complete individually EMF: Conceptual Quiz I (Formal Languages) and EMF: Conceptual Quiz II (DFA) after reading about the concepts.
- You should get all questions right (there are only a total of 4 of them!)
- As usual, you have unlimited tries.
- These conceptual quizzes are formally due on LDoC, but actually kept open until 5/1 11:59pm.
- Complete the JFLAP assignment (individually or in pairs).
- All submissions by LDoC will get one round of feedback.
- You can keep submitting until 5/1 11:59pm, but submissions after LDoC are not promised any feedback.