ATLAS

Automata Theory Learning and Simulation

or
Forgot password?
Enter the code of the class you teach to claim it.
or

Check your email

We sent you a verification link. Click it to activate your account, then come back here to sign in.

Reset password

Enter your email and we'll send you a link to reset your password.

Check your email

If an account exists with that email, we sent a password reset link.

© 2026 Kiumbura N. Githinji. All rights reserved.

ATLAS
Support
CLASS CODE
TH305F
Share this code with your students to join
Profile Settings Keyboard Shortcuts
Sign Out

No Topics Yet

Join a class to see topics and start learning.

Topics

  • DFA Deterministic Finite Automata
    0/0
  • NFA Nondeterministic Finite Automata
    0/0
  • .*
    Regex Regular Expressions
    0/0
  • PDA Pushdown Automata
    0/4
  • CFG Context-Free Grammars
    0/3
  • Proofs Proof by Induction
    0/5
  • TM Turing Machines
    0/4
  • P
    P vs NP Computational Complexity
    0/3

Quick Actions

Workspace

Problem Description

Select a problem from the Problems tab to get started, or build your own automaton using the toolbar above.

Click anywhere to add a state, or use the toolbar above
Formal Notation

Syntax Guide:

states: q0, q1, q2
alphabet: a, b
initial: q0
accepting: q2
transitions:
  q0 -a-> q1
  q0 -b-> q0
  q1 -ε-> q2  (epsilon)

Context-Free Grammars — Interactive Guide

1 / 6

Grammar Definition

Syntax Guide

Use -> for productions. Separate alternatives with |.

Use epsilon for the empty string ε.

Uppercase = non-terminals. Lowercase / digits = terminals.

First rule's LHS is the start symbol.

S -> a S b | epsilon
E -> T + E | T
T -> F * T | F
F -> ( E ) | i

How to Use

1. Type grammar rules above

2. Click Apply

3. Enter a string in the Test Strings panel (right side) and click Run

Avoid left recursion (e.g. E -> E + T). Use right recursion instead (E -> T + E).

Parse Tree

Define a grammar and enter an input string to generate a parse tree

Leftmost Derivation

Pushdown Automata — Interactive Guide

1 / 7

PDA Transitions

Notation

state, input, stack_top -> new_state, push_string

Use epsilon or ε for empty read / empty push (pop).

$ is the bottom-of-stack marker.

Transition Types

Push q0, a, $ -> q0, a$ — pushes a then $
Pop q1, b, a -> q1, ε — pops a
No-op q, a, X -> p, X — stack unchanged
Multi q, a, X -> p, ABC — replaces X with ABC (A on top)

Execution

State
—
Input Tape
Stack
$
Transition Log
Build a PDA and enter a string to trace execution

Test Strings

Step-by-Step Execution

Speed
Ready States: 0 | Transitions: 0
Press ? for keyboard shortcuts

No Problems Yet

Join a class to see problems assigned by your instructor.

Assigned Problems

No Progress to Show

Join a class to start tracking your progress on problems and topics.

Your Progress

0
Problems Completed
0%
Success Rate
0
Avg. Attempts
--
Class Standing

Progress by Topic

Activity Over Time

No Grades Yet

Join a class and take a quiz from the Game view to see your grades here.

My Quiz Grades

Scores update live when your instructor adjusts them. Click a score to review the question breakdown when your instructor releases answers.

0
Quizzes Taken
--
Avg. Best Score
0
Answers Released
Topic Status Attempt 1 Attempt 2 Attempt 3 Best
Loading grades...

My Classes

Join a Class

Enter the class code provided by your instructor.

No classes yet

Click "Join Class" and enter a code from your instructor to get started.

Course Materials Unavailable

Join a class to access course modules, lessons, and study tools.

Course Center

Course Modules

  • Course Overview 100%
  • Mathematical Foundations 0%
  • Deterministic Finite Automata 0%
  • Nondeterministic Finite Automata 0%
  • .* Regular Expressions 0%
  • CFG & Pushdown Automata 0%
  • Turing Machines 0%
  • Decidability & Computability 0%
  • P P vs NP & Complexity 0%

Study Tools

  • Flashcards
  • Practice Quiz
  • Glossary

Course Overview

CS 305 01 - Advanced Computing

Welcome to CS 305 01!

This course explores the theoretical foundations of computer science. You'll learn about the fundamental limits of computation, what problems computers can and cannot solve, and the mathematical models that describe computation.

Learning Objectives

  • Understand finite automata (DFA, NFA) and their applications
  • Master regular expressions and their equivalence to finite automata
  • Learn context-free grammars and pushdown automata
  • Understand Turing machines and the Church-Turing thesis
  • Explore decidability and undecidable problems
  • Comprehend computational complexity (P, NP, NP-Complete)
  • Apply proof techniques including mathematical induction

Course Roadmap

1
Mathematical Foundations

Sets, proofs, induction, languages

2
Finite Automata

DFA, NFA, equivalence, minimization

3
Regular Languages

Regular expressions, pumping lemma

4
Context-Free Languages

CFG, PDA, parsing algorithms

5
Turing Machines

TM variants, Church-Turing thesis

6
Decidability

Decidable languages, halting problem

7
Complexity Theory

P, NP, NP-completeness, reductions

0% Complete

Mathematical Foundations

Essential mathematical concepts for automata theory

1

Sets and Set Operations

Union, intersection, complement, power sets, and Cartesian products

15 min Not Started
2

Strings and Languages

Alphabets, strings, concatenation, Kleene star, and formal languages

20 min Not Started
3

Proof Techniques

Direct proofs, proof by contradiction, and proof by contrapositive

25 min Not Started
4

Mathematical Induction

Weak induction, strong induction, and structural induction

30 min Not Started
Q

Module Quiz: Mathematical Foundations

Test your understanding of sets, languages, and proof techniques

10 questions Locked
0% Complete

Deterministic Finite Automata (DFA)

The simplest model of computation with finite memory

1

Introduction to DFA

What is a DFA? States, transitions, alphabet, and acceptance

20 min Not Started
2

Formal Definition

The 5-tuple definition: (Q, Σ, δ, q₀, F)

25 min Not Started
3

Designing DFAs

Step-by-step approach to constructing DFAs from language descriptions

35 min Not Started
4

DFA Operations

Complement, union, intersection, and concatenation of DFAs

30 min Not Started
5

DFA Minimization

Table-filling algorithm and Myhill-Nerode theorem

40 min Not Started
P

Interactive Practice: Build DFAs

Hands-on exercises in the Workspace

5 exercises Not Started
Q

Module Quiz: DFA

Test your understanding of deterministic finite automata

15 questions Locked
0% Complete

Nondeterministic Finite Automata (NFA)

The power of nondeterminism and its equivalence to DFA

1

Introduction to NFA

What is nondeterminism? How NFAs process input strings

20 min Not Started
2

Epsilon Transitions

ε-transitions, ε-closure, and ε-NFA

25 min Not Started
3

NFA to DFA Conversion

Subset construction algorithm (powerset construction)

35 min Not Started
4

NFA-DFA Equivalence

Proving that NFAs and DFAs recognize the same languages

25 min Not Started
Q

Module Quiz: NFA

Test your understanding of nondeterministic finite automata

12 questions Locked
0% Complete

Regular Expressions

A powerful notation for describing regular languages

1

Regular Expression Basics

Syntax: union, concatenation, Kleene star

25 min Not Started
2

Regex to NFA Conversion

Thompson's construction algorithm

30 min Not Started
3

DFA to Regex Conversion

State elimination method

35 min Not Started
4

Pumping Lemma for Regular Languages

Proving languages are NOT regular

40 min Not Started
Q

Module Quiz: Regular Expressions

Test your understanding of regular expressions and the pumping lemma

15 questions Locked
0% Complete

Context-Free Grammars & Pushdown Automata

Beyond regular languages: the power of a stack

1

Context-Free Grammars

Productions, derivations, and parse trees

30 min Not Started
2

Designing CFGs

Creating grammars for various languages

25 min Not Started
3

Pushdown Automata

Finite automata with a stack

35 min Not Started
4

CFG-PDA Equivalence

Converting between CFGs and PDAs

30 min Not Started
5

Chomsky Normal Form

Converting CFGs to CNF and the CYK algorithm

35 min Not Started
Q

Module Quiz: CFG & PDA

Test your understanding of context-free languages

15 questions Locked
0% Complete

Turing Machines

The universal model of computation

1

Introduction to Turing Machines

Tape, head, states, and transitions

30 min Not Started
2

Formal Definition

The 7-tuple and configurations

25 min Not Started
3

TM Variants

Multi-tape, nondeterministic, and universal TMs

35 min Not Started
4

Church-Turing Thesis

What does it mean to compute?

25 min Not Started
Q

Module Quiz: Turing Machines

Test your understanding of Turing machines

12 questions Locked
0% Complete

Decidability & Computability

What problems can and cannot be solved by algorithms

1

Decidable Languages

Languages that have deciding Turing machines

25 min Not Started
2

The Halting Problem

The most famous undecidable problem

35 min Not Started
3

Reductions

Proving undecidability through reduction

40 min Not Started
4

Rice's Theorem

Non-trivial properties of languages are undecidable

30 min Not Started
Q

Module Quiz: Decidability

Test your understanding of decidable and undecidable problems

12 questions Locked
0% Complete

P vs NP & Complexity Theory

The million dollar question

1

Time Complexity

Big-O notation and analyzing Turing machines

25 min Not Started
2

The Class P

Problems solvable in polynomial time

25 min Not Started
3

The Class NP

Problems verifiable in polynomial time

30 min Not Started
4

NP-Completeness

The hardest problems in NP and polynomial reductions

40 min Not Started
5

Cook-Levin Theorem

SAT is NP-complete

35 min Not Started
Q

Module Quiz: Complexity Theory

Test your understanding of P, NP, and NP-completeness

15 questions Locked

Flashcards

Master key concepts with active recall

1 / 31
0 0 0
Question

What is a DFA?

Tap to reveal
Answer

Swipe or use arrows
How well did you know this?
← Previous   Space Flip   → Next   1 Again 2 Okay 3 Got it

Practice Quiz

Test yourself with questions drawn from your course notes and slides

Questions are generated from your course notes and lesson content using AI. Every quiz is unique and directly tests what you're studying.

Generating your quiz...

Reading your course notes and creating unique questions

Question 1 of 10

0 of 10 answered

Quiz Complete!

0 / 0
0%
0 Correct
0 Incorrect
0 Skipped
0 Flagged

Review Answers

Question 1 of 10

Glossary

Key terms and definitions for Theory of Computation

20 terms
A
Accepting State
Automata

A state in a finite automaton that, when reached after processing an input string, causes the automaton to accept that string. Also called a final state.

Alphabet (Σ)
Foundations

A finite, non-empty set of symbols used to form strings. Common examples include {0,1} (binary) and {a,b}.

C
Church-Turing Thesis
Computability

The hypothesis that any function that can be computed by an algorithm can be computed by a Turing machine.

Context-Free Grammar (CFG)
Grammars

A formal grammar where every production rule has a single non-terminal on the left side. CFGs generate context-free languages.

Chomsky Normal Form (CNF)
Grammars

A restricted form of CFG where every production is A → BC (two variables) or A → a (one terminal), plus optionally S → ε.

D
Decidable Language
Computability

A language for which there exists a Turing machine that always halts (accepts or rejects) for every input.

DFA (Deterministic Finite Automaton)
Automata

A finite automaton where for each state and input symbol, there is exactly one transition to a next state. Formally a 5-tuple (Q, Σ, δ, q₀, F).

E
Epsilon (ε)
Foundations

The empty string — a string of length zero. Also used to denote epsilon transitions in NFAs, which allow state changes without consuming input.

H
Halting Problem
Computability

The problem of determining whether a given Turing machine halts on a given input. Proven undecidable by Alan Turing via diagonalization.

K
Kleene Star (*)
Foundations

An operation on a set that produces all possible strings (including the empty string) by concatenating zero or more elements. If Σ = {a,b}, then Σ* = {ε, a, b, aa, ab, ...}.

N
NFA (Nondeterministic Finite Automaton)
Automata

A finite automaton that can have multiple transitions for the same input symbol, or epsilon transitions. Accepts if any computation path leads to an accepting state.

NP (Nondeterministic Polynomial)
Complexity

The class of decision problems for which a solution can be verified in polynomial time by a deterministic Turing machine.

NP-Complete
Complexity

A problem that is both in NP and NP-hard. The "hardest" problems in NP. SAT was the first proven NP-complete (Cook-Levin, 1971).

P
P (Polynomial Time)
Complexity

The class of decision problems solvable by a deterministic Turing machine in polynomial time. Represents "efficiently solvable" problems.

PDA (Pushdown Automaton)
Automata

A finite automaton augmented with an infinite stack (LIFO memory). PDAs recognize exactly the context-free languages.

Pumping Lemma
Automata

A necessary property of regular languages used to prove (by contradiction) that certain languages are not regular. A separate version exists for context-free languages.

R
Regular Expression
Automata

A notation for describing regular languages using three operations: union (|), concatenation, and Kleene star (*). Equivalent in power to DFAs and NFAs.

Regular Language
Automata

A language that can be recognized by a DFA (equivalently: NFA, or described by a regular expression). Closed under union, intersection, complement, concatenation, and star.

Rice's Theorem
Computability

Every non-trivial property of the language recognized by a Turing machine is undecidable. You cannot algorithmically determine "interesting" properties of what a TM computes.

T
Transition Function (δ)
Automata

A function that defines how an automaton moves between states based on the current state and input symbol. In a DFA: δ: Q × Σ → Q (total function).

Turing Machine
Computability

A 7-tuple (Q, Σ, Γ, δ, q₀, q_accept, q_reject) with an infinite tape, a read/write head, and finite state control. The most powerful standard model of computation.

Slides
Introduction to DFA

Instructor Dashboard

You don't have a class linked yet. Enter your class code to claim it:

0
Students Enrolled
0
Active Today
0
Submissions Today
0
Need Attention

Class Completion Rates

Recent Submissions

Problem Performance

Class Roster

Students

24
Enrolled
18
Active This Week
72%
Avg. Progress
3
Struggling
Student Progress Problems Enrolled On Last Active Status Actions

Course Materials

Problems Manager

0
Total Problems
0
Assigned
0%
Avg. Completion
Problem Topic Assigned Completion Avg. Attempts Actions

Quiz Manager

Quiz Passkey

Active Passkey: None

4-20 characters, letters and numbers only

Quiz Availability

Toggle which quizzes students can access and set max attempts per quiz.

DFA & NFA
0 = unlimited
CLOSED
Regular Expressions
0 = unlimited
CLOSED
Pumping Lemma
0 = unlimited
CLOSED
Context-Free Grammars
0 = unlimited
CLOSED
Pushdown Automata
0 = unlimited
CLOSED
Math Foundations
0 = unlimited
CLOSED
Turing Machines
0 = unlimited
CLOSED
Decidability
0 = unlimited
CLOSED
P vs NP & Complexity
0 = unlimited
CLOSED

Quiz Gradebook

0
Total Students
0
Completed Quiz
--
Class Average
0
Not Started
Student Quiz Status Attempt 1 Attempt 2 Attempt 3 Best

ATLAS AI

100 of 100 requests left this hour
Hey there! Ready to learn?

Hi! I'm Atlas, your AI tutor.

Ask me anything about automata theory, or pick a topic below to get started.

Automaton Conversion

Input

Animation

Step 1: Initialize

Output

Create New Problem

Keyboard Shortcuts

General

Ctrl + S Save
Ctrl + Z Undo
Ctrl + Shift + Z Redo
Ctrl + Enter Run/Test
Ctrl + Shift + Enter Submit
? Show shortcuts

Canvas Tools

V Select tool
S State tool
T Transition tool
D Delete tool
Esc Cancel / Deselect

State Properties

Space Toggle accepting state
I Set as initial state
Delete Delete selected

Execution

Space Play/Pause
← Step back
→ Step forward

Profile Settings

JD
Email cannot be changed

Change Password


Help & Support

Need a refresher? Run the interactive tutorial or watch the animated demo to learn how to use all features.

Sign Out

Are you sure you want to sign out?

You will need to sign in again to access your work.

Drop Class

Are you sure you want to drop ?

You can rejoin later with the class code.

Quiz Attempt

Deactivate Passkey

Deactivate the current quiz passkey?

Students will not be able to start new quiz attempts until you set a new one. In-progress attempts will not be affected.

Delete Problem

Delete ""?

This action cannot be undone. Any student progress on this problem will be lost.

Add Transition

Hi there! I'm Atlas, your guide!
Step 1 of 10

Welcome to ATLAS!

Let's take a quick tour to help you get started.

Hi! I'm Atlas, your friendly guide!

Welcome to ATLAS!

Automata Theory Learning and Simulation

You've successfully created your account. I'll help you learn and practice automata theory concepts through interactive simulations!

Build DFA, NFA, and more
Test with step-by-step execution
Track your progress
Welcome to the ATLAS demo! Step 1 of 19
Let me show you how ATLAS works!
Step 1 of 19
Need help?
Atlas AI 100/100

Hi! I'm Atlas.

Ask me anything about automata theory.

Quick Tips
Getting Started

Click on a topic in the sidebar to begin. Start with DFA for the basics!

Adding States

Select the State tool (S) and click anywhere on the canvas to add a new state.

Creating Transitions

Select Transition tool (T), click a state, then click another state to connect them.

Accepting States

Double-click any state to toggle it as an accepting state (shown with double circle).

Initial State

Right-click a state to set it as the initial state (shown with incoming arrow).

Testing Strings

Enter a string in the test panel and click Run to see if your automaton accepts it.

Keyboard Shortcuts

Press ? anytime to see all keyboard shortcuts. Use V, S, T, D to switch tools!

Add Module

Delete Module

Are you sure you want to delete ? This cannot be undone.

© 2026 Kiumbura N. Githinji. All rights reserved.

Cookies & Local Storage

ATLAS uses cookies and local storage to keep you signed in, save your progress, and remember your preferences. No data is shared with third parties.