Search form

COMPUTER SCIENCE

 


Bachelor of Science - Undergraduate Program


Introduction to Computer Science:
  •  H. Abelson, G.J. Sussman: Structure and Interpretation of Computer Programs, ISBN 978-0262510875, MIT Press, 1996

This book is essentially an introduction to functional programming. It uses the functional programming language Lisp (and its dialect Scheme) while at Constructor University we currently use the functional programming language Haskell in our introductory module. A good introduction to Haskell is for example:
  •  M. Lipovaca: Learn You a Haskell for Great Good!: A Beginner's Guide, ISBN 978-1593272838, No Starch Press, 2011
This book is also available online: http://learnyouahaskell.com/

Algorithms and Data Structures:
  •  T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein: Introduction to Algorithms, ISBN 978-0262531962, MIT Press, 2nd edition, 2001

This is one of the classic textbooks on algorithms and data structures.

Programming in C:
  •  B. W. Kernighan, D. M. Ritchie: The C Programming Language, ISBN 0131103628, Prentice Hall, 2nd edition, 1988

Another true classic. Old but still good and written by the authoritative people for the C language.

Object-oriented Programming:
  •  B. Stroustrup: The C++ Programming Language, ISBN 978-0321563842, Addison-Wesley Longman, 4th edition, 2013
  •  B. Eckel: Thinking in C++, ISBN 0139798099, Pearson, 2nd edition, 2000

The first is another true classic. It is a great reference, perhaps a bit dry for learning C++.

You do not need any special hardware. A state-of-the-art notebook usually provides all you need. Some things to consider are:
  • Since you will be doing things on Linux, a computer that can run Linux natively (dual boot) or as a virtual machine is a plus.
  • Intel/AMD CPUs are a bit easier to virtualize, Apple's new ARM-based Macs make virtualization a bit more complicated.
  • You may carry around your computer quite a bit and hence consider weight and robustness.
  • You usually do not need a super fast machine, most of the time the machine will be waiting for you (as opposed to you waiting for the machine).
  • Main memory and storage never hurt but again most machines these days provide plenty of resources.
  • Make sure you have a working backup solution that allows you to restore your system from a backup in case this is necessary.

Most modules taught in CS use software that is available under open-source licenses. The Linux operating system is very popular for CS education and research and popular distributions provide access to all open-source software you will need.
 

Many students seem to be happy with Ubuntu but the choice is at the end largely a matter of user interface preferences and the differences of the software package management systems. You get pretty much the same software packaged for all major Linux distributions, but not necessarily the same versions. Using Ubuntu may be an advantage for students interested in robotics since some of the robotics software is readily packaged for Ubuntu.
 

It is possible to install Linux as a virtual machine on Windows or MacOS. You need two ingredients:
  • You need software to run virtual machines. We suggest using VirtualBox, which is essentially open-source virtualization software currently maintained by Oracle. (Well, some addons are closed source but available without license fees for students.)
  • Once you have a virtual machine installed, you can download software images for different operating systems. We recommend using the 64-bit version of Ubuntu.
There are also YouTube videos explaining the installation procedure.

Creating additional virtual machines is relatively easy. If you are short on storage, you may even store virtual machine images on a USB stick and then you can carry your virtual machines easily around. Everything you do inside the virtual machine is restricted to the virtual machine; this makes it easy to clean-up in case you messed up a virtual machine.

It is possible to create shared file system spaces such that data can be easily copied between your host operating system and your virtual machine. Please consult the VirtualBox documentation for further details.

1. Install VirtualBox To install VirtualBox, go to the download page:
https://www.virtualbox.org/wiki/Downloads

If you are running Windows, download the Windows installer and run it. If you are running MacOS, download the MacOS installer and run it. Once the installation is complete, you should find an icon on your computer to start VirtualBox.

1. Create a Ubuntu Virtual Machine
To create a Ubuntu virtual machine, start VirtualBox. In VirtualBox, select 'new virtual machine'. A dialogue will appear where you can configure the type of the new virtual machine (select 'Linux') and the version (select 'Ubuntu (64-bit)'). Give your new virtual machine a name and press 'create'. You will find many more options that you can set, we recommend going with the defaults provided.

2. Download an Ubuntu Image
Download a Ubuntu installation image. At the time of this writing, the latest long-term support (LTS) image is ubuntu-20.04.4-desktop-amd64.iso.
You can find official images here: https://ubuntu.com/download/desktop
Note: Make sure you get an official image. You will have to trust your Linux virtual machine and hence you want to be reasonably sure that your installation image does not contain malware.

3. Setup your Ubuntu Virtual Machine
Start VirtualBox and then within VirtualBox start your virtual machine. The fist start will get you into a dialog where you can select your downloaded virtual image as your virtual CD drive. Click 'start' and the installation of your virtual Ubuntu system will begin. Follow the instructions (use the defaults if you are unsure). Unfortunately, VirtualBox is not available on the latest Macs that are powered by Apple/ARM M1 processors instead of Intel processors.
 

It is quite common that students in the 2nd and 3rd year work as teaching assistants to assist faculty. In addition, there are student assistant jobs throughout the university, ranging from jobs in the library to support jobs in the administration offices. You can find information about student jobs via the online campus information system.
 

Some students work off campus in CS-related organizations, but this usually requires some travel within Bremen (which takes time) and, depending on the specifics of the job, some basic knowledge of the German language may be required.
 

The CS program does not assume that incoming students have programming skills. It is possible to study CS without any prior exposure to programming. But of course, students who already have some programming experience have an advantage in the first year. (The same holds for students who enjoyed a very strong math education at school; they will have a benefit in the math modules.)
 

Our graduates get into top CS graduate programs, both in Europe and North America. Our graduates usually perform very well at these institutions, often paving the way for future students. Some graduate schools accepting our graduates are listed below:
  •  University of Montréal, CA
  •  ETH Zurich, CH
  •  EPFL Lausanne, CH
  •  RWTH Aachen, DE
  •  TU Berlin, DE
  •  University of Freiburg, DE
  •  TU Delft, NL
  •  University of Groningen, NL
  •  VU Amsterdam, NL
  •  University of Cambridge, UK
  •  University College London, UK
  •  University of Oxford, UK
  •  Carnegie Mellon University, USA
  •  Cornell University, USA
 

Several big industrial players are regularly visiting Constructor University in order to recruit our students. During Fall 2016, Microsoft and Facebook have been visiting us. Microsoft has hired a significant number of our graduates in the past years. Some companies regularly hiring our graduating students are listed below:
  •  Amazon, USA
  •  Apple, USA
  •  Facebook, USA
  •  Google, USA
  •  Intel, USA
  •  Microsoft, USA
  •  Skype (Microsoft), USA / LU
  •  Twitter, USA
  •  VMware, USA
  •  Cleversoft, DE
  •  Research Gate, DE
  •  SAP, DE
  •  360 Treasury Systems AG, DE

The Computer Science program at Constructor University aims at being rigorous on the foundations while at the same time being very contemporary with an international orientation.
  • The educational approach of the faculty is to relate the theoretic foundations of the discipline to its contemporary application in industry and research. Instructors aim at including recent developments of the topics covered to demonstrate how basic methods or techniques are applied today and how the material covered relates to research challenges.
     
  • Early involvement in research projects is an essential aspect of student education. Students can obtain a vivid experience of research at a very early stage, which often unfolds in interdisciplinary collaborations later.
     
  • This distinctive educational approach together with the positive teaching environment has been acknowledged in several rankings: In the computer science ranking published by the Centre for Higher Education Development (CHE) in 2015, the support by instructors and the relationship to research was ranked 1st of 68 study programs. In the European U-Multirank ranking published in 2018, the overall learning experience in computer science was ranked 10th and research-oriented teaching in computer science was ranked 2nd of 304 European universities offering Computer Science programs.
     
  • The involvement of students and alumni in the program development process using a direct open dialogue ensures that the program is constantly fine-tuned to the specific needs students face such as covering certain topics at a certain time that is relevant for the preparation of internship or job applications.
     
  • The program has a successful student exchange program with Carnegie Mellon University (USA). Every year, some of the best students move to Pittsburgh to study a semester abroad at CMU. In addition, CS students have studied abroad with great success at Rice University (USA) and the University of Pennsylvania (USA).
     
  • Student teams participate regularly in international programming competitions. Constructor University has hosted the Northwestern European Regional Contest (NWERC) of the ACM International Collegiate Programming Contest on campus in 2010 and 2011. Student teams participate in NWERC competitions since then on a yearly basis. In 2014, students organized the first ConstructorUniversityHack! hackathon on campus, which was sponsored among others by Google, Microsoft, and SAP. The 2018 edition of ConstructorUniversityHack!, sponsored among others by Facebook, Skyscanner, GitHub and Bloomberg, attracted participants from all over Europe.

The main qualification aim is to enable students to take up a qualified employment in modern industries involving information technology or to enter graduate programs related to computer science. Graduates of the Computer Science program have obtained the following competencies:
  • Computer science competence: Graduates are familiar with the theoretical foundations of computer science, and they can design and develop computer systems addressing a given application scenario. They can analyze and structure complex problems and they are able to address them using methods of computer science. Graduates can construct and maintain complex computer systems using a structured, analytic, and creative approach.
     
  • Communication competence: Graduates can communicate subject specific topics convincingly in both spoken and written form to fellow computer scientists or to customers.
     
  • Teamwork and project management competence: Graduates can work effectively in a team, and they are able to organize workflows in complex development efforts. They are familiar with tools that support the development, testing and maintenance of large software systems and they can take design decisions in a constructive way.
     
  • Learning competence: Graduates have acquired a solid foundation enabling them to assess their own knowledge and skills, learn effectively and to stay up to date with the latest developments in the fast-changing field of computer science.
     
  • Personal and professional competence: Graduates can develop a professional profile, justify professional decisions based on theoretical and methodical knowledge, and critically reflect their behavior, also with respect to its consequences for society.
The design of the Computer Science program follows national guidelines published by the Gesellschaft für Informatik (GI) (GI: Empfehlungen für Bachelor- und Masterprogramme im Studienfach Informatik an Hochschulen, July 2016) and international guidelines published jointly by the Association for Computing Machinery (ACM) and the Institute of Electrical and Electronics Engineers (IEEE) (ACM/IEEE: Computer Science Curricula 2013, December 2013).
 

The Computer Science program received accreditation by the German Accreditation Council in Fall 2020. The program accreditation is valid for eight years, i.e., the period from October 1st, 2020 to September 30th, 2028.

The university has been successfully accredited in 2001 and 2008 by the German Council of Science and Humanities (Wissenschaftsrat). The accreditation by the German Council of Science and Humanities is based on quality benchmarks in research and education as well as certain financial and structural prerequisites.
 

 

Please also visit our page with general questions about undergraduate studies: FAQ.