University of Joensuu - Computer Science

Theoretical Foundations of Computer Science

"Lectures" (in principal Finnish) Mon & Tue 12-14 (till the end of April in Louhela): Wilhelmiina Hämäläinen (whamalai@cs.joensuu.fi)
Exercises - Wed 14-16 B180 (English): Roman Bednarik, Tue 16-18 TD106 (Finnish) : Anssi, Thu 14-16 B180 (Finnish): Wilhelmiina
The finnish page of TFCS is here.

Current

Course description

The course gives an introduction to the theoretical foundations of computer science: how to model problems with formal languages and abstract machines. The course will be given by problem-based learning method, which means that subjects are learnt through solving problems. More about problem-based learning below. Some teaching sessions (small lectures) are given when needed in Finnish. Even if you can't any Finnish, You may still take this course. There will be an English exercise group and you may also solve the problems in an English speaking group in the lectures. This requires a little bit more self-studying, but that's anyway the point of problem-based learning. If you are interested in taking this course, please report the lecturer, so we can plan the best way to perform it! Tell also if you are taking Graphical Interfaces lectures, because they are in the same time as our lectures. In principle there are three ways to perform the course:
  1. By taking a part problem solving and returning the learning diary weekly + exercises.
  2. By performing the middle term exams + doing exercises.
  3. By taking the final examination.

Preliminary contents

Current program
  1. Rations: the mathematical concepts and proof methods required in the course introduction slides pdf
  2. Introduction: Modelling problems, solvability, formal languages and their hierarchy.
  3. Finite automata and regular languages Lecture notes. pdf Excursion: The applications of FA pdf
  4. Excursion to L-systems pdf (week 5)
  5. Pushdown automata and context-free languages
  6. Excursion: about compilers, LL-systems and maybe something else... LL(1) grammars pdf
  7. Turing machines and unristricted languages TM intro pdf
  8. Excursion: context-sensitive languages - the problem of parsing the natural language
  9. Universal language and universal Turing machines UTM pdf
  10. Unsolvability Halting problem
  11. Excursion: about the philosophy of artificial intelligence
  12. Complexity theory
  13. NP-complete problems

Problems

Problem 0 Problem 1 Problem 2 Problem 3 Problem 4 Problem 5 Problem 6
All problems

Exercises

  1. Chapter 0: assignments 1, 5, 6, 7. Chapter 1: 1, 2
    (the others are voluntary, still highly recommended to try (and present!))
All
exercises
The materials concerning the exercises: Red Hood

Literature

There is not any officila course book, but instead a couple of recommendable literature. I will update a list about topics during the course weekly. In addition there will be Finnish lecture material ( a summary) + some additional material also in English. I recommend that you make your own learning material using the topic list as a sceleton!

Additional materials

  1. Greek alphabet
  2. Mathematical concepts
  3. Hilbert's hotel comic stripe
  4. Deterministic Automaton Comic-stripe
  5. Pumping lemma page
  6. Busy Beaver Turing Machine
  7. Heuristic rules