IAM

ARTICLE

Tips and Tricks for Studying Computer Science at RWTH Aachen University

There are many things worth knowing about studying computer science at RWTH Aachen University. This article presents a collection of tips and tricks regarding specific courses as well as studying computer science in general.

Note that this article reflects my personal point of view and contains with no regard official information from RWTH Aachen University. Furthermore, note that this article is based on a B.Sc. in Computer Science obtained between 2011 and 2014.

Feel free to contact me regarding questions or course material.

This article is a collection of advice and suggestions for successfully obtaining a B.Sc. in Computer Science at RWTH Aachen University.

Outline. Overall, this article is a loose collection of advice regarding the B.Sc. in Computer Science. You can skip to whatever part is most interesting to you. The outline is shown on the right.

Links

Some links and references to start with:

Curriculum

The curriculum is summarized in Table 1.

CourseECTSSemester
First Semester
Programming8WS
Introduction to Computer Engineering6WS
Calculus for Students of Computer Science8WS
Discrete Structures6WS
Mentoring1WS
Second Semester
Data Structures and Algorithms8SS
Operating Systems and System Software6SS
Formal Systems, Automata, Processes6SS
Linear Algebra6SS
Introduction to Applied Stoachastics6SS
Third Semester
Software Engineering6WS
Computability and Complexity6WS
Numerical Computations6WS
Practical Course System Programming6WS + SS
Proseminar (Introduction to Scientific Writing)3WS + SS
[Mathematics Minor] Numerical Analysis6WS
Fourth Semester
Databases and Information Systems6SS
Data Communication and Security6SS
Mathematical Logic6SS
Software Project Lab6WS + SS
[Mathematics Minor] Numerical Analysis 26SS
Fifth Semester
Theoretical Elective6WS + SS
3 Electives18 = 3 x 6WS + SS
Seminar4WS + SS
[Mathematics Minor] Functional Analysis (alternative to Computer Algebra)10SS
Sixth Semester
Non-Technical Elective3WS + SS
Bachelor Thesis12WS + SS
Kolloquium3WS + SS
[Mathematics Minor] Computer Algebra (alternative to Functional Analysis)10WS
180
Table 1: Curriculum; ECTS = European Credit Transfer and Accumulation System, i.e. "Credits".

General Advice

The following is a loose collection of general tips and tricks. First of all, some tips to get started.

  • Know who to contact in case of problems and questions; an overview of contact persons can be found on the page of the Student Advisory ("Fachstudienberatung") [7].
  • Know where to find old lecture videos recorded by the Video Club ("Video AG") [9]; most of the mandatory courses from the curriculum are available from earlier semesters.
  • Visit the consultation hours ("Sprechstunden") of the student association for computer science, mathematics and physics ("Fachschaft MPI") [8] at least ones per semester to print old exams for a few cents per page.
  • Register for all mailing lists you find relevant (whether it is computer science, sports, other disciplines, "jobspam" or whatever); here are some important ones: Computer Science Mailing List [5] (for everything related to studying computer science, e.g. announcements, deadlines ...), Jobspam Mailing List [6], the mailing list corresponding to your minor. The list of all mailing lists can be found here.
  • During the semester, the mandatory exercises (which are usually required to gain access to the exam) induce a rather high work load; nevertheless, it pays off to do well in the first half of the semester - if you gathered enough points after roughly three quarters of the semester, you can skip some exercises at the end, leaving some more time to prepare for the exams.
  • Get to know the Textbook Collection ("Lehrbuchsammlung") which usually holds textbooks for all mandatory and most elective courses; however, for popular lectures, the corresponding textbooks may be out of stock early in the semester.
  • Get to know the Computer Science Library.
  • Keep your corrected exercises (expecially if you TeXed them); they will help you studying for the exams.

Minors

The official examination regulations [1] (in German) lists the following minors:

  • Mathematics
  • Economics
  • Electrical Engineering

However, several additional minors are also possible:

  • Mechanical Engineering
  • Philosophy
  • Biology
  • Physics

For the above minors, the necessary courses are more or less fixed (except for possible electives as part of the minor) and enough students have enrolled in these minors over the time, i.e. the student advisory ("Fachstudienberatung") [7] has experience with handling these minors. Other minors are also possible, however, necessary courses have to be determined. This usually requires a lot of organizational work (i.e. working with the student advisory and the corresponding professors to get everything working).

Choosing a minor may be difficult and it is hard (and often requires additional work) to switch minors. Your minor is determined by the first exam you register for (e.g. as soon as you register for the exam of Numerical Analysis, your minor will be Mathematics). So you should try to get some information on your prospective minor - talk to students and visit the introduction to all minors organized each semester, see here.

Electives

There are plenty of possible elective courses offered (full list can be found in the official examination regulations [1]).

Advice. Regularly visit the Campus Office [2] for both B.Sc. and M.Sc. in Computer Science. Usually all courses for M.Sc. in Computer Science can also be completed as part of the B.Sc. in Computer Science. However, it will be required to register for the exams in person at the Central Examination Office [3].

Most of the elective courses are offered for both B.Sc. in Computer Science and M.Sc. in Computer Science and are, therefore, offered on a regular basis, for example every winter semester (WS) or summer semester (SS). It is also possible to take electives prior to the fifth semester.

Advice. Some electives can already be taken in the third or fourth semester and often complement the corresponding curriculum well. For example, beneath Software Engineering, it is possible to attend courses such as Model-Based Software Engineering or Generative Software Engineering. Similar combinations are possible for Databases and Information Systems or Data Communication and Security. If in doubt, attend the first lecture and explicitly ask the professor whether attendance in a specific semester is possible.

Choosing the right electives is hard, especially due to the vast number of possible electives.

Advice. If you could not decide which electives to take, register for all of them, get access to the corresponding L2P [4] rooms/groups and decide after the first few weeks into the semester; if you missed the first few exercises of an elective, do not hesitate to contact the teaching assistant and explain your situation.

Non-Technical Electives

Non-Technical Electives are meant to force future Computer Scientists to acquire important soft skills or attend lectures in "non-technical" disciplines.

Advice. The lectures officially supported (i.e. listed in Campus Office [1]) are usually boring (to say the best; which is my personal opinion). However, usually it is possible to attend basically all lectures in non-technical disciplines (popular disciplines are Philoshopy, Economics or Medicine). The drawback is that the chosen courses need to be acknowledged by the student advisory ("Fachstudienberatung") [7] which may require some weeks. The most popular choice for non-technical electives are language courses (usually English, French, Spanish etc.; however, exotic languages like Chinese or Japanese are also possible). These language courses will either give 2 or 4 credits and registration takes place the week prior to semester start.

Shifting Courses

As already mentioned, most electives are flexible. The same usually holds for seminars and labs, both of which are distributed centrally: application through a web form usually opens two to three month prior to the semester and one can register to multiple seminars/labs and proseminars; they are usually sorted by topic.

Advice. It might be beneficial to complete the Proseminar in the second semester depending on the chosen minor. This may reduce work load in the third semester.

(Pro-)Seminars and Labs

As already mentioned, (Pro-)Seminars and Labs are distributed centrally - the registration links are usually announced via the Mailing List [5]. At the point of registration, most chairs do not provide any useful information on the seminar content. Therefore, it pays off to ask other students or the teaching assistants (as they will probably advice your seminar or lab). Seminars and labs usually require prerequisites, for example attending certain courses. However, this should not be taken too serious, especially as bachelor student.

Adive. Check the offered (Pro-)Seminars and Labs as early as possible and try to get more detailed information on the topics through other students or the teaching assistants.

Some advice on writing seminar papers:

Advice. Be aware that RWTH Aachen University Single Sing-On offers access to plenty top journals and conferences (e.g. through IEEE Xplore or Springer Link); this will simplify looking for additional literature on specific topics.

Advice. Learn LaTeX - you will need it; and after a steep learning curve it is much easier to submit exercises/seminars/theses written in LaTex than using Microsoft Word or LibreOffice Writer (most Seminars will require you to use LaTex anyway).

Exchange Semesters

Personally, I would encourage any type of exchange semester, and RWTH Aachen University offers many connections to other universities around the globe.

Advice. Even if you are not sure whether you want to do an exchange semester, visit the presentation of Dr. Dirk Thissen in your second or third semester to get some basic information about exchange semesters. The presentation is usually held at the beginning of each semester and announced through the Mailing List [5].

If your plans are getting more concrete, contact Dr. Dirk Thissen and the corresponding contact persons at the International Office to get started with the formalities (application, learning agreement etc.). You can also visit the information sessions offered by the International Office, see here.

Course-Specific Resources

Old exams from Prof. Giesl can be found here; some Similarly, exercises from earlier semesters are available online, for example:

You may find even older lectures via Google, mostly held by Prof. Giesl. The latest lecture slides from Prof. Giesl can be found here and those from Prof. Rossmanith here. Note that Prof. Giesl also uses the overhead projector to take notes during the lectures.

The lecture is usually held by Prof. Kowalewski and lecture slides, exercises and exams are usually not available online. However, the lectures are recorded each semester; so you can ask a student in a higher semester for the exercises and videos.

The lectures are alternatingly held by the Chair of Mathematics A and the MATHCCES. Note that the lectures differ significantly - the lecture held by the MATHCCES is somewhat more applied while the lecture held by the Chair of Mathematics A is more theoretical. In both cases, exercises (and solutions) are only distributed in the corresponding L2P [4] rooms/groups. Ask a student in a higher semester for the exercises.

For those interested in more rigorous mathematics, the following textbook might be interesting:

  • [11] H. Esser, H. Th. Jongen. Analysis für Informatiker. Aachener Beiträge zur Mathematik, Band 1m Wissenschaftsverlag Mainz, 1991, ISBN 3-925 038-43-4.
Old exercises are usually not available online; however, old exams from the Chair of Mathematics D are available here. However, lecturers have been changing lately. The lecture notes from Dr. Timo Hanke are available here. The latest lecture notes by Dr. Mohamed Barakat are available here.

Each year, a different chair holds the lecture - so far I am aware of the following chairs: the chair of computer science 1, the chair of computer science 2, the chair of computer science 6, the chair of computer science 8 and the chair of computer science 9. This means that exercises and exams may differ. Fortunately, lecture slides and exercises from some chairs are available online:

Book recommendation:

  • [12] T. H. Cormen, C. Stein, R. L. Rivest, C. E. Leiserson. Introduction to Algorithms. 2nd Edition, McGraw-Hill Higher Education, 2001, ISBN 0070131511.
Similar to Datastructures and Algorithms, the lecture is held by different departments and the lectures are not available online (with some luck, some resources are available here). However, the Video Club ("Video AG") provides lecture videos from the summer term (SS) 2013 here.
Lecture videos from the summer term (SS) 2009, held by Prof. Rossmanith, and from the summer term (SS) 2014, held by Prof. Grohe, are available here and here. Lecture slides and exercisesfrom Prof. Giesl can be found here.
Good lecture notes for linear algebra and discrete structures is provided by Dr. Timo Hanke, see here. More recent lecture notes include those from Sebastian Thomas, see here. Lecture videos are provided by the Video Club ("Video AG") here, however, only accessible through the university network.
To the best of my knowledge, lecture notes are not available online. Usually the lecture is based on the following book:
  • [10] E. Cramer, U. Kamps. Grundlagen der Wahrscheinlichkeitsrechnung und Statistik. 2007, Springer-Verlag, X, 323 S., 32 illus., Softcover ISBN 978-3-540-36342-2.
The lecture is usually held by the chair of computer science 3, e.g. by Prof. Rumpe. Lecture slides are not made publicly available, but the lecture videos from the Video Club ("Video AG") are available here.
Lecture notes and exercises are available for some terms: Recommendation: the transcript by Prof. Vöcking.
The lecture closely follows:
  • [13] W. Dahmen, A. Reusken. Numerik Für Ingenieure und Naturwissenschaftler. Springer Berlin Heidelberg, 2008, ISBN 9783540764939.
Lecture notes are not publicly available, however, the following book covers the complete material:
  • [14] A. Kemper, A. Eickler. Datenbanksysteme. 8th Edition, Oldenbourg, 2011.
Recommended book:
  • [15] A. S. Tanenbaum. Computernetzwerke. Pearson Studium, 2012, ISBN 3868941371.
Lecture notes and exercises are available for:
What is your opinion on this article? Let me know your thoughts on Twitter @davidstutz92 or LinkedIn in/davidstutz92.