CMPSC 138 Fall 2026


Course Title: Automata and Formal Languages
Total Credits: 4
Course Description

Formal languages; finite automata and regular expressions; properties of regular languages; pushdown automata and context-free grammars; properties of context-free languages; introduction to Turing machines and computability.
Prerequisites: Computer Science 40 with a grade of C or better; open to computer science and computer engineering majors only.

Instructor: Tevfik Bultan (bultan@cs.ucsb.edu); Office Hours: TBD

TAs:
Peter Boyland (boyland@ucsb.edu); Office Hours: TBD
Ivy Wang (ivywang@ucsb.edu); Office Hours: TBD

Class Webpage: http://www.cs.ucsb.edu/~bultan/courses/138/
Class communication: https://piazza.com/ucsb/fall2026/cmpsc138/home

Lectures:
Monday/Wednesday 3:30PM-4:45PM, IV THEA2
Discussion Sections:
Friday 12:00-12:50 ARTS 1349
Friday 1:00-1:50 ARTS 1349

Textbook: Introduction to the Theory of Computation, Michael Sipser, ISBN: 978-1133187790, Cengage Learning, 3rd edition

Course work and Grading Policy:
Course work for this class includes attendance to lectures and discussion sections, reading assignments from the textbook, homework assignments, a midterm, and a final.
Grading will be based on two exams (midterm and final) and 4-5 homework assignments. Grade percentages will be 40% homeworks, 30% midterm, 30% final.


Policy on Cheating and Plagiarism:
Homeworks and exams are individual assignments. Any homework or exam submitted by a student should be done solely by that student. Using automated problem solving tools (such as AI tools) for homeworks or exams is NOT allowed. Violation of these constraints is considered cheating. Cheating will result in a 0 grade for the assignment, and depending on severity, can result in a failing grade for the class or possible administrative action by UCSB.