Tips for studying bachelor degree in CS at Charles University

3 minute read

Published:

Tips for studying bachelor degree in CS at Charles University

Biases

  • I studied undergrad in theoretical computer science so my recommendations are generally more theoretical.
  • I am interested in programming languages and formal verification so there is some bias for compilers, type theory, category theory atd.

Traps when studying

  • The credits do not really correspond to time complexity of courses. They mostly correspond to the number of lectures and exercises. Notorious offender is the Operating system course Operating systems which is great but quite intensive.
  • You may need to also work on school during the summer since sometimes it is not plausible to finish all the work during the semester. This can be avoided by careful planning but I am not sure I met someone who managed to.
  • Since the bachelor thesis is around 6 credits in the last semester + 4 in the fourth you should take more than 30 credits per semester if you want to reasonably finish your studies in 3 years.
  • When working on your bachelor thesis you need a signed copy of the description of your bachelor thesis which you get several months before the deadline and it is quite important to not forget. If you forgot it write to Student Affairs Department.

Good research directions

  • Department of Applied mathematics is well respected in the fields of Combinatorics, Computational geometry and other aspects of applied mathematics.
  • Institute of Formal and Applied Linguistics does interesting research in computational linguistics and machine learning.
  • Department of Distributed and Dependable Systems does some systems, formal methods, programming languages and HCI research.

Recommendations

  • I omit courses that are not yearly or there is not a guarantee they will be repeated.
  • General recommendation is to always check the Úmluva which is a event held by KAM and IUUK in order to schedule and advertise niche courses.

  • Any courses by Tomáš Petříček who specializes in programming languages and human computer interaction
    • I have not used particular course since they are new at the time.
  • Code Optimization in Production Compilers is probably the best compiler course here. It mostly about optimizations and it taught by a important GCC maintainer and advisor for my bachelor thesis.
  • All lectures by prof. RNDr. Aleš Pultr, DrSc. are worth attending he is a great lecturer and important mathematician in field of pointless topology. Notably some might find his Category theory course interesting.
  • On the topic of Category theory. There is nice group on Czech Technical University on the FEL faculty I attended a seminar led by Matěj Dostál
  • There are also some courses on the math side of MFF but I did not hear much about it only that they only consider small categories.
  • Functional programming is a nice light introduction into type theory.
  • doc. Mgr. Jan Kynčl, Ph.D. has a pleasant course on foundations of mathematics as in ZFC and a computational geometry course that I despite my antipathy to geometry quite enjoyed.
  • Logic in computer science is a nice logic course even though it is not perfect. It is mostly interested in Proof Complexity and computational logic. It is still more specific to the degree than the obligatory introduction to logic.
  • From what I heard Math++ is course on diverse advanced math topics.
  • AIM is a great course on writing algorithms to run fast with all the hacks in C. The lecturer is great and all of his lectures are worth attending they are mostly on algorithms and data structures.zone