Topic outline

  • A Zulip forum at https://toc-2024.zulip.aalto.fi/ is available for general discussion and collaboration on the course topics.


    Compulsory course of the Computer Science and Data Science majors (BSc level).

    Credits: 5

    Level: Bachelor

    Responsible Professor: Sándor Kisfaludi-Bak

    Teaching Period: III - IV (Spring). The course starts on Tuesday 09 January 2024.

    Schedule:

    • Lecture: Tuesdays 10:15 - 12:00 T5 (Sándor Kisfaludi-Bak)
    • Tutorial sessions:
      • Wednesdays 10:15 - 12:00 T6 (Ukko Miettinen)
      • Wednesdays 12:15 - 14:00 Y228a (Ukko Miettinen)
      • Wednesdays 16:15 - 18:00 T5 (Etna Lindy)
      • Thursdays 12:15 - 14:00 T6 (Etna Lindy)
      • Fridays 10:15 - 12:00 Y313 (Sandro Karhula)
      • Fridays 12:15 - 14:00 U262 (Sandro Karhula)

     Workload:

    • Lectures: 24h (2h/week)
    • Tutorial sessions in small groups: 24h (2h/week)
    • Independent work: 82h
    • Exam: 3h
    • Total: 133h


    Learning Outcomes: After the course you know the most important mathematical models of computation and their characteristics. You can model computation using finite automata and describe simple syntactic patterns with regular expressions and context-free grammars.  You understand the possibilities and limitations of the computation models and description formalisms studied during the course, and know their relationships. You understand how the Turing machine model characterises everything that can be computed with a computer program, and that there are well-defined problems that cannot be solved by any program.

    Content: Finite automata and regular languages. Context-free grammars and pushdown automata. Turing machines and computability.

    Assessment Methods and Criteria: Exam, tutorial problems and computerised assignments.

    Study Material: Lecture notes/slides and other separately announced study material. Supporting textbook (recommended but not obligatory): Michael Sipser, Introduction to the Theory of Computation, 3rd Ed. (2013).

    Substitutes for Courses: CS-C2150 Theoretical Computer Science, ICS-C2000 Theoretical Computer Science, T-79.1001 Introduction to Theoretical Computer Science T (4 cr), T-79.1002 Introduction to Theoretical Computer Science Y (2 cr).

    Prerequisites: CS-A1110 / CSE-A1110 Programming 1 and CS-A1120 / ICS-A1120 Programming 2 or CS-A1111 / CSE-A1111 Basic Course in Programming Y1 and CS-A1121 / CSE-A1121 Basic Course in Programming Y2, MS-A0401/A0402/A0409 Foundations of discrete mathematics.

    Grading Scale: 0-5

    Language: English