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:
- [1] Official Examination Regulations, B.Sc. in Computer Science.
- [2] Campus Office.
- [3] Central Examination Office; also see Contact Persons.
- [4] L2P Online Learning Platform.
- [5] Computer Science Mailing List.
- [6] Jobspam Mailing List.
- [7] Student Advisory ("Fachstudienberatung").
- [8] Student Association for Computer Science, Mathematics and Physics ("Fachschaft MPI").
- [9] Video Club ("Video AG").
Curriculum
The curriculum is summarized in Table 1.
Course | ECTS | Semester |
---|---|---|
First Semester | ||
Programming | 8 | WS |
Introduction to Computer Engineering | 6 | WS |
Calculus for Students of Computer Science | 8 | WS |
Discrete Structures | 6 | WS |
Mentoring | 1 | WS |
Second Semester | ||
Data Structures and Algorithms | 8 | SS |
Operating Systems and System Software | 6 | SS |
Formal Systems, Automata, Processes | 6 | SS |
Linear Algebra | 6 | SS |
Introduction to Applied Stoachastics | 6 | SS |
Third Semester | ||
Software Engineering | 6 | WS |
Computability and Complexity | 6 | WS |
Numerical Computations | 6 | WS |
Practical Course System Programming | 6 | WS + SS |
Proseminar (Introduction to Scientific Writing) | 3 | WS + SS |
[Mathematics Minor] Numerical Analysis | 6 | WS |
Fourth Semester | ||
Databases and Information Systems | 6 | SS |
Data Communication and Security | 6 | SS |
Mathematical Logic | 6 | SS |
Software Project Lab | 6 | WS + SS |
[Mathematics Minor] Numerical Analysis 2 | 6 | SS |
Fifth Semester | ||
Theoretical Elective | 6 | WS + SS |
3 Electives | 18 = 3 x 6 | WS + SS |
Seminar | 4 | WS + SS |
[Mathematics Minor] Functional Analysis (alternative to Computer Algebra) | 10 | SS |
Sixth Semester | ||
Non-Technical Elective | 3 | WS + SS |
Bachelor Thesis | 12 | WS + SS |
Kolloquium | 3 | WS + SS |
[Mathematics Minor] Computer Algebra (alternative to Functional Analysis) | 10 | WS |
180 |
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
- WS 2014/2015, Prof. Giesl.
- WS 2013/2014, Prof. Rossmanith.
- WS 2012/2013, Prof. Giesl.
- WS 2011/2012, Prof Giesl.
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 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.
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.
- [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.
- [13] W. Dahmen, A. Reusken. Numerik Für Ingenieure und Naturwissenschaftler. Springer Berlin Heidelberg, 2008, ISBN 9783540764939.
- [14] A. Kemper, A. Eickler. Datenbanksysteme. 8th Edition, Oldenbourg, 2011.
- [15] A. S. Tanenbaum. Computernetzwerke. Pearson Studium, 2012, ISBN 3868941371.