計算理論的主要主題
計算理論是計算機科學的一個分支,旨在理解哪些問題可以使用計算設備解決,以及這些問題可以以多高的效率解決。為了能夠做出精確的陳述和嚴謹的論證,計算設備使用抽象數學的”計算模型”進行建模。本課程的學習目標是:
1. 通過使用抽象的形式模型,理解如何對計算進行嚴謹的推理。
學習幾種具體的計算模型的定義,包括有限自動機、上下文無關文法和圖靈機,學習分析它們的能力和限制的工具,並理解它們在計算機科學的其他領域中的應用。
2. 理解關於計算性質的基本哲學問題(計算機是否存在無法解決的問題?我們能否高效地解決可以快速驗證解的問題?)如何被形式化為精確的數學問題。
通過創造性的數學問題解決經驗,培養寫出正確、清晰和簡潔的數學證明的能力。
課程概述
本課程是計算理論的入門課程。課程的內容包括有限自動機、正則表達式、上下文無關文法、圖靈機、可計算性理論、時間和空間復雜性理論、非確定性、概率計算和計算問題的歸約等主題。通過學習這些主題,學生將獲得對計算理論的深入理解,並能夠應用這些理論來解決現實世界中的問題。
教學人員
主講教師:
Mark Bun, mbun [at] bu [dot] edu
辦公時間:
週一 5:00-6:00 PM (MCS 114)
週五 5:00-6:00 PM (MCS 114)
助教:
Islam Faisal, islam [at] bu [dot] edu
辦公時間:
週二 5:00-6:00 PM (MCS B21)
週四 4:00-5:00 PM (MCS B21)
課程時間
週二、週四 2:00-3:15 PM (EPC 209)
討論小組
週三 11:15-12:05 AM (MCS B31)
週三 12:20-1:10 PM (KCB 104)
重要連結
- 課程網站:[https://cs-people.bu.edu/mbun/courses/332_F21 ↗](https://cs-people.bu.edu/mbun/courses/332_F21)。網頁包含課程大綱、指定閱讀、作業任務和其他課程材料。
- Piazza:[https://piazza.com/bu/fall2021/cs332 ↗](https://piazza.com/bu/fall2021/cs332)。所有課程公告將通過Piazza進行,請適當設置通知。請將有關課程內容的問題發佈到Piazza上,而不是直接發送郵件給課程工作人員。其他學生可能會有同樣的問題,並且可能能夠更及時地提供答案。在Piazza上的積極參與可能會獲得額外的參與分數。
- Gradescope:[https://gradescope.com ↗](https://gradescope.com)。使用您的BU電子郵件地址在Gradescope上註冊學生帳戶。課程的入口代碼是2RYZ3P。作業任務應以PDF格式提交到Gradescope上。
課程目錄說明
該課程研究計算理論的基本概念,包括計算模型、多項式時間、Church定理、通用算法、不可判定性和難解性、時間和空間復雜性、非確定性、概率計算和計算問題的歸約。
先修條件
需要完成CS 131(組合結構)和CS 330(算法導論)的先修課程。如果您尚未完成課程的先修條件,請在註冊之前與我預約會面。
課程大綱
自動機和形式語言理論
確定有限自動機、非確定有限自動機、正則表達式、非正則語言、上下文無關文法。
可計算性理論
圖靈機和Church-Turing定理、可判定性、停機問題、歸約。
復雜性理論
時間復雜性、空間復雜性、多項式時間、Church定理、大O符號、非確定性、概率計算、計算問題的歸約。
其他主題
課程還將涵蓋其他主題,如計算複雜性理論中的NP完全性、隨機算法、交互式證明系統等。
通過學習這些主題,您將深入了解計算理論的核心概念和原則,並能夠應用這些知識來解決現實世界中的計算問題。
折疊內容
The basic concepts of the theory of computation are studied. Topics include models of computation, polynomial time, Church’s thesis; universal algorithms, undecidability and intractability; time and space complexity, nondeterminism, probabilistic computation and reductions of computational problems.
CS 332: Elements of the Theory of Computation, Fall 2021
Course Overview
This course is an introduction to the theory of computation. This is the branch of computer science that aims to understand which problems can be solved using computational devices and how efficiently those problems can be solved. To be able to make precise statements and rigorous arguments, computational devices are modeled using abstract mathematical “models of computation.” The learning objectives of the course are to:
Foremost, understand how to rigorously reason about computation through the use of abstract, formal models.
Learn the definitions of several specific models of computation including finite automata, context-free grammars, and Turing machines, learn tools for analyzing their power and limitations, and understand how they are used in other areas of computer science.
Learn how fundamental philosophical questions about the nature of computation (Are there problems which cannot be solved by computers? Can every problem for which we can quickly verify a solution also be solved efficiently?) can be formalized as precise mathematical problems.
Gain experience with creative mathematical problem solving and develop the ability to write correct, clear, and concise mathematical proofs.
Instructor:
Mark Bun, mbun [at] bu [dot] edu
Instr. Office Hours:
Mon 5:00-6:00 PM (MCS 114)
Fri 5:00-6:00 PM (MCS 114)
Teaching Fellow:
Islam Faisal, islam [at] bu [dot] edu
TF Office Hours:
Tue 5:00-6:00 PM (MCS B21)
Thu 4:00-5:00 PM (MCS B21)
Class Times:
Tue, Thu 2:00-3:15 PM (EPC 209)
Discussion Sections:
Wed 11:15-12:05 AM (MCS B31)
Wed 12:20-1:10 PM (KCB 104)
Important Links
Course Website: https://cs-people.bu.edu/mbun/courses/332_F21. The website contains the course syllabus, schedule with assigned readings, homework assignments, and other course materials.
Piazza: https://piazza.com/bu/fall2021/cs332. All class announcements will be made through Piazza, so please set your notifications appropriately. Please post questions about the course material to Piazza instead of emailing the course staff directly. It is likely that other students will have the same questions as you and may be able to provide answers in a more timely fashion. Active participation on Piazza may add extra points to your participation grade.
Gradescope: https://gradescope.com. Sign up for a student account on Gradescope using your BU email address. The entry code for the course is 2RYZ3P. Homework assignments are to be submitted to Gradescope in PDF format.
Catalog Description
The basic concepts of the theory of computation are studied. Topics include models of computation, polynomial time, Church’s thesis; universal algorithms, undecidability and intractability; time and space complexity, nondeterminism, probabilistic computation and reductions of computational problems.
Prerequisites
CS 131 (Combinatoric Structures) and CS 330 (Introduction to Algorithms). If you have not completed the prerequisites for the course, please schedule a meeting with me before registering.
Course Outline
Automata and Formal Language Theory. Deterministic finite automata, nondeterministic finite automata, regular expressions. Non-regular languages. Context-free grammars.
Computability Theory. Turing Machines and the Church-Turing thesis. Decidability, halting problem. Reductions.
Complexity Theory. Time complexity, space
Read More: What are the main topics of the theory of computation?