Workaround for Misprints of Samsung XPress M2825ND

I got myself a Samsung XPress M2825ND Mono Laser Printer for little money. Most of the time it does a great job: It is fast, very sharp, and the automatic duplex is a blessing if you have to print many papers. Unfortunately, if printing manipulated PDFs (like 2 pages per side) it doesn’t print properly: It leaves some parts blank. I did not notice any difficulties with ‚clean‘ PDFs like created by Latex (as long as you do not use any further modifications in the print properties).

However, if I do the 2 pages per side modification externally (not in the print configuration) with

 pdfnup --nup 2x1 --landscape --suffix '\''2x1'\'' --scale '\''0.95'\' input.pdf

 and afterwards convert the PDF to PNG and concatenate the PNGs to a PDF again

convert -quality 100 -density 300x300 input.pdf single%05d.png && convert -adjoin single*.png output.pdf && rm single*.png

everything works fine.

Nonetheless, the produced PDF takes much longer to process for the printer. I only apply this method if the normal printing fails (It happens only seldom and if mostly only one page, so the wasted prints are not serious).

Samsung Note 8.0 Tablet für das Studium

Dieser Artikel soll weder Werbung, noch eine Bewertung sein, sondern eher eine Tauglichkeitsuntersuchung. Diesem wird es vermutlich aber nicht ganz gerecht.


Ich muss zugeben, dass mich das Konzept ‚Tablet‘ nicht sonderlich überzeugt. Auch wenn es etliche Tools wie ‚Office‘ oder gar eine ‚Java IDE‘ bereits für Android gibt, so ist es in den meisten produktiven Anwendung einem Notebook mit guter Tastatur, großem Display und stärkerem Prozessor sowie einer vollständigen Linux-Umgebung mit entsprechender Software unterlegen. Ein Tablet ist dementsprechend kein Ersatz für ein Notebook, doch dies war auch gar nicht meine Absicht. Bedingt durch meine Bachelor-Arbeit habe ich Unmengen an Papern zu lesen. Ausdrucken tut man nur die wichtigsten, da man ansonsten auf einem unüberschaubaren Haufen an Papier sitzen würde. Ein Kindle-E-Reader ist praktisch für Folien und im Seitenformat auch für die meisten einspaltigen Paper brauchbar, aber es lässt keine komfortablen Annotationsmöglichkeiten. Auch kann man damit nicht blättern. Dementsprechend liest man die Paper meistens auf dem Notebook und annotiert per Maus. Die für Linux verfügbare Software ist hier allerdings im Vergleich zur Windows oder Android-Welt relativ dürftig. Siehe hierfür auch meinen älteren Post über das Annotieren von PDFs unter Linux. Aus irgendeinem Grund mag ich das Lesen auf Monitoren auch nicht sonderlich gerne (obwohl ich einen teuren IPS-Monitor habe). Es ist einfach zu entfernt vom Papier und geht nicht sonderlich gut auf dem Balkon oder im Bett. Um endlich zufriedenstellend Paper lesen zu können, habe ich mich also mal in der Tablet-Welt umgesehen.

Da ich kein Spiele-Tablet sondern ein Produktivitäts-Tablet haben wollte, ist mein Blick auf die Note-Reihe gefallen. Deren besonderes Merkmal ist der S-Pen, ein Stift der tatsächlich auch wie ein Stift ist und nicht wie ein Gummi-Finger.  Das Note 8.0 war zu der Zeit bezahlbar für 220Euro zu haben, sodass es dieses (nach einigen weiteren Recherchen) zusammen mit der ebenfalls stark reduzierten Original-Hülle im Warenkorb landete.  Der S-Pen offenbarte den mir bisher unbekannten Drang, zu allem schnell eine Skizze zu machen, sodass sich das Einsatzgebiet des Tablet sinnvoll erweiterte. Zwar kann ich keine publizierbaren Vektor-Grafiken damit erzeugen, aber dafür innerhalb von einer Minute eine Skizze zeichnen und in eine E-Mail einfügen oder einfach nur als Erinnerung an die Idee.  Hierzu kommen wir aber später noch.

Grundsätzlicher Eindruck

Ich habe bisher nur zwei Smartphones (Motorola Defy und Razr i) sowie vor etlichen Jahren einen i-Pod Touch 2. Gen. gehabt. Die Motorola waren für mich einfach nur Android. Beim Note habe ich irgendwie das Gefühl einen iOS-Android-Hypriden vor mir zu haben.  Auch wenn es keine billigen Apple-Kopien sind, so hat mich das schon ein wenig enttäuscht und ich kann ein kleines wenig Verständnis für Apples Patentklagen aufbringen. Es schmälert aber nicht die Qualität des Gerätes und soll daher ausser Acht gelassen werden. Die Hardware selbst ist grundsolide, wenn auch vollständig aus Kunststoff. Selbst der silberne Rand leitet keinerlei Wärme und ist dementsprechend vermutlich kein Metall, auch wenn es sehr robust wirkt. Auch wenn Kunststoff nicht mit Metall oder Glas (Anm.: Das Display ist natürlich aus Glas) mithalten kann, so wirkt es doch sehr hochwertig und kann durch eine höhere Flexibilität evtl. auch ein wenig vor Sturzschäden schützen.

Lesen

Das Note 8.0 zum Lesen und Annotieren von PDFs mit ezPDFReader
Das Note 8.0 zum Lesen und Annotieren von PDFs mit ezPDFReader

Mein Tablet wird mittels FolderSync direkt mit meinem Server gesynct und erhält automatisch eine Kopie meines Paper-Archieves.  Ich verwalte dieses mittels JabRef um beim Schreiben der Tex-Dokumente schnell den BibTex-Key zu finden. JabRef arbeitet direkt auf dem BibTex-File und nutzt kompatible Zusatzfelder und Kommentare für Sonderfunktionen, wie etwa ein Link auf die PDF. Die BibTex-Datei lässt sich inklusive der PDF-Links auch in Android mit einer entsprechenden App (einfach mal im Play-Store nach JabRef suchen) lesen. Zum Lesen und Bearbeiten der PDFs nutze ich den kommerziellen ezPDFReader, der genauso flüssig läuft wie Evince auf einem aktuellen PC. Er erlaubt das erzeugen und manipulieren von einer Vielzahl von Annotationen, die direkt in der PDF gespeichert werden. Wenn man auf eine Annotation klickt, kann man diese auch ganz schnell ändern oder entfernen. Von der Handhabbarkeit übertrifft es somit die bekannten Linux-Programme. Der S-Pen erlaubt auch das direkte Handschriftliche Schreiben in die PDF. Aufgrund der Größe von nur 8.0 Zoll empfiehlt es sich aber, die PDF vorher ein wenig zu vergrößern. Das Note hat eine automatische Handballenerkennung, sodass man die Hand wie bei einem normalen Papier auflegen kann. Die Auflösung ist nicht perfekt aber völlig ausreichend um auch komplexe mehrspaltige Dokumente genießbar im Querformat zu lesen (Es ist besser als mein HD-Ready Notebook-Display, aber nicht als mein Dell IPS-Monitor). Hochformat ist möglich, aber nicht angenehm und ich benutze es nur wenn ich schnell mal durchblättern möchte und die ganze Seite dabei angezeigt haben will.

Notizen

Das Note kann ein Schmierpapier ersetzen und stellt somit ein Notizbuch 2.0 dar.
Das Note kann ein Schmierpapier ersetzen und stellt somit ein Notizbuch 2.0 dar. Die leichte Unschärfe liegt an der App.

Ein besonderes Feature des Note ist Samsungs S-Note. Diese App soll das Notiz-Buch ersetzen und dies gelingt ihr auch mehr oder weniger. Zwar ist das Schreiben auf Papier immer noch angenehmer und ein wenig schneller, dafür ist in S-Note aber alles perfekt organisiert und auf Wunsch auch mit Evernote o.Ä. synchronisiert. Zusätzlich hat man auch mehr Tools als nur einen einfarbigen Kugelschreiber. So lassen sich das simulierte Schreibgerät, Schreibfarbe, Texteingabe oder Formen schnell umschalten. Ein Senden per E-Mail ist auch flott gemacht. Photos lassen sich natürlich auch problemlos machen (Das Note hat zwei für den Einsatzzweck brauchbare Kameras) und einbinden. Beim Verfassen von E-Mail lässt sich auch per Knopfdruck eine Skizze erstellen und einfügen. Ein weiteres Feature ist, dass man in Sekunden schnelle in Screenshot anfertigen und bearbeiten kann. Dies klingt zwar wenig spektakulär, erweist sich aber als unglaublich schnelles und intuitives Werkzeug.

Fazit

Das Note ist kein Notebook-Ersatz. Auch Mitschriften oder ähnliches lassen sich für die meisten Vorlesungen besser auf Papier anfertigen. Zum Lesen mit komfortablen Annotationsmöglichkeiten und als Notizbuch ist es jedoch  sehr geeignet (Sobald mir etwas einfällt mache ich sofort eine Notiz davon und vergesse sie nicht, weil ich gerade keinen Stift zur Hand habe.). Ob man so viele Ideen und Paper zu Lesen hat, dass sich die Anschaffung lohnt, muss man jedoch selber entscheiden.

Das Note im Querformat auf dem Knuth auf einem Blatt A4. Im Querformat breit genug.
Das Note im Querformat auf dem Knuth auf einem Blatt A4. Im Querformat breit genug.

Raspberry Pi as Backup/Mirror-Server

For some time I used the Raspberry Pi combined with an 64GB USB flash drive and rsync to mirror my most important files, so a loss of my notebook wouldn’t be fatal and I could also continue working on computers on the campus, if I forgot my notebook or the battery is empty. rsync was very fast using a SSH connection to the server (Most times only a few seconds, if no big changes were made). I chose a USB flash drive because it doesn’t need much energy. A 2.5″-HDD can not be powered by it without an external AC adapter. But 64GB are not much space and the use of an external hard drive to back up my less important data and for archiving the even less important data, since I only have 128GB internal SDD, became somehow annoying. For this reason I bought a new external 3.5″-Hard drive (WD Elements – Reflink: Earnings will be donated to the WWF)  for my Raspberry Pi with 3TB of storage. Of course this configuration needs much more power if the hard disk is active, but for the most time the hard disk will be asleep and won’t take that much power.

Preparing the Hard Disk

After formatting the hard disk with EXT4 with gparted(I did this with my notebook, since my Raspberry Pi is running headless), the fstab had to be modified, so the hard disk would be automatically mounted. Otherwise you would have to write a script that mounts the hard disk and execute is for every system start with root privileges. For the fstab we first need the UUID of the hard disk. We can get it with blkid, which you may have to install first (should be in every repo).

blkid
Your external hard disk will probably be named /dev/sdb1. I didn’t have an external hard disk connected, so it shows only the two partitions of my internal SSD.

After you have the UUID and connected the hard disk with your raspberry pi, you connect via ssh with your raspberry pi and open the /etc/fstab (you need root privileges) with your favourite text editor (if you don’t have one, ‚nano‘ could be a good choice for the beginning). At the end of the file you write

 UUID=f048e98d-6ebb-4932-8b2e-dbe3bf93b7b7 /home/doms/WD-3TB ext4 defaults,auto,noatime  0       0

Of course you have to replace the UUID and the mount directory. The mount directory has to exist in advance and needs to be empty, if not the mount will fail. You can test your fstab with ‚mount -a‚. Please notice that you are not allowed to use spaces in entries (like ‚defaults,auto,…‘), since it is used (as well as the tab) as delimiter.

Preparing the SSH Connection

Now comes a little harder part, because you should use ssh as protocol for the backup and ssh needs a password to be entered. You have to configure the Raspberry Pi and all notebooks/computers you want to back up on it to work without entering a password. Otherwise your backups wont be fully automated.

First you have to create a key (if you don’t already have a file ~/.ssh/id_rsa.pub) on your notebook with

ssh-keygen -b 4096

This will create (after asking you for a password and giving you the opportunity to change the output path) ~/.ssh/id_rsa and ~/.ssh/id_rsa.pub. You have to copy the ~/.ssh/id_rsa.pub file to the folder ~/.ssh/authorized_keys on your Raspberry Pi (You can use scp, filezilla or something else).  Afterwards you have to change the rights of this folder on your Raspberry Pi with

chmod 600 ~/.ssh/authorized_keys

When you try to log in on your Raspberry Pi you will be asked to enter the password you chose by ssh-keygen. After this, you should need no password to login anymore. Of course it could be very bad, if someone manages to copy your id_rsa, without you noticing it. If your notebook gets stolen, you should delete the id_rsa.pub on your Raspberry Pi, which makes the key in id_rsa file useless.

If you are able to read german, you could find this article useful.

Doing the Backup

Now we have all dependencies for doing the backup. My requirements of a backup-system are

  • To mirror the files, so you could get access to them on the go
  • To go back in time, without using too much space

If you only want the first point, you should use rsync with ssh connection, which is realy fast. Otherwise rdiff-backup is a good choice. It will mirror your files into a chosen directory on your Raspberry Pi and put diffs into an extra folder for going back in time. This covers changes as well as deletions. You have to install rdiff-backup on both, your notebook and your Raspberry Pi. After you have done this, you can do the backup with such as

rdiff-backup -v5 --exclude '/home/doms/.*' /home/doms doms@192.168.2.103::/home/doms/WD-3TB/BACKUP-L412

Of course you have to change the paths and the user name and probably the IP (you could also use a domain).  The excludes are very important. These are the directories which have a lot of changes and no need to be backed up. Such files would slow down the backup. The Raspberry Pi is not that fast and every diff will take its time. If you change a lot of big files, you should use something different, but for text and code files, this works actually quite good. The -v5 will give you some output, otherwise you wouldn’t see what is going on. The hard disk will go to sleep after some time (~20 Minutes) on its own.

Maybe you want some more specific exclude or put this all in a script. May script is the following

#BASIC#####################################################

LOCAL_PATH="/home/doms"
#------------user@---server----::-----PATH ON SERVER----------
BACKUP_PATH="doms@192.168.2.103::/home/doms/WD-3TB/BACKUP-L412"

# 1-9, with 1 none and 9 everything. 5 seems to be a good choice. 
VERBOSITY="-v5"

#EXCLUDE SOME FILES#######################################
# Exclude those files, which are often changed but not important like all files in '.cache'

#The files and directories, ignored by exclude. 
#If you want to exclude all files beginning with u except of unicorn.txt you would include unicorn.txt here, and exclude u* in EXCLUDE. 
#You only have to mention those files, which would math a pattern in EXCLUDE. 
INCLUDE="--include /home/doms/.vim/ --include /home/doms/.vimrc --include /home/doms/.zshrc --include /home/doms/.oh-my-zsh/ "

#The files matching these patterns and not those in INCLUDE are not backed up.
EXCLUDE="--exclude '/home/doms/.*'"

echo $EXCLUDE

#THE BACKUP##############################################
#The bash -c is needed as workaround 
bash -c "rdiff-backup $VERBOSITY $INCLUDE $EXCLUDE $LOCAL_PATH $BACKUP_PATH"

If you include a sub directory before you exclude parent directory, it will still be backed up.

Checking the health of your hard disk

To prevent data loss you should test your hard disk from time to time, since a failure of the hard disk would be fatal. You can get a S.M.A.R.T report with smartctl. First you have to install the smartmontools

 sudo apt-get install smartmontools

After this you can check your hard disk (in this case the /dev/sda. It could also be /dev/sdb or similar) with

 sudo smartctl -a /dev/sda | less

‚less‘ can be closed with ‚q‘. It maybe take some seconds and have a lot of output. If you only want to check if it passed you could also simply use

sudo smartctl -a /dev/sda | grep 'test result'

If you are able to read German and want some further information, you should take a look at S.M.A.R.T. Status einer Festplatte abfragen.

Erfahrungsbericht: Mein Informatik-Studium an der TU Braunschweig

Das Studium ist ein neuer Lebensabschnitt und gewöhnlich bereitet einem die Schule nur sehr bedingt darauf vor. Um potentiellen zukünftigen Informatik-Studenten an der TU Braunschweig eine bessere Vorstellung zu gewährleisten, habe ich meine Erfahrungen mal zusammengefasst. Ich stelle weder den Anspruch auf Vollständigkeit noch auf Korrektheit, sondern gebe nur eine subjektive Einsicht.

Vorkenntnisse:

Ich persönlich hatte nie Informatik-Unterricht. Java habe ich mir in der Zeit nach Schulabschluss und vor Semesterbeginn selber beigebracht. Diese Sprache müsst ihr in eurem Bachelorstudium beherrschen (C und C++ werden später auch verlangt, aber nicht so intensiv). Ein gutes Buch für den Java Einstieg ist ‚Grundkurs Programmieren in Java von Ratz et al.‘.

Offiziel müsst ihr keinerlei Vorkenntnisse zum Studienbeginn haben, aber die Mathematik wird euch vermutlich sehr fordern und bereits Programmieren zu können wird euch den Einstieg bedeutend einfacher machen. Die Mathematik in der Hochschule unterscheidet sich sehr stark von der Schulmathematik und ich denke nicht, dass man sich alleine darauf richtig vorbereiten kann. Falls du es doch versuchen willst, kann ich das Buch ‚Mathematik für Informatiker von Teschl und Teschl‘ empfehlen. Es ist gut lesbar, aber richtig vorbereitet hatte es mich trotzdem irgendwie nicht. Das soll dir aber keine Angst machen: Es ist anders und es ist schwerer (Keine Kunst, Schulmathematik ist nicht sonderlich anspruchsvoll), aber es ist auch bedeutend besser und schöner.

Aufbau:

Das Studium besteht aus Pflichtmodulen, die für einen Informatiker unerlässlich sind, und Wahlpflichtmodulen, die in eine bestimme Richtung vertiefen. Module sind meistens Vorlesungen, aber es gibt auch Praktika/Teamprojekte etc.. Vorlesungen werden meistens mit einer benoteten Klausur in der vorlesungsfreien Zeit abgeschlossen und du wirst etwa 5 Prüfungen pro Semester machen. Prüfungen haben eine Durchfallquote von meist etwa 30% (aber auch 95% u.Ä. sind in Pflichtmodulen schon vorgekommen). Du darfst eine Prüfung aber 3 Mal wiederholen und wenn dir die Note nicht gefällt hast du sogar einen zweiten Verbesserungsversuch (nur wenn du das erste mal bestehst, beste Note wird gewertet). Insofern du aber vernünftig lernst und nicht ganz talentlos bist, solltest du aber nie Durchfallen.

Die ersten Semester sind hauptsächlich Pflichtmodule wie Programmieren 1+2, Lineare Algebra, Analysis, Diskrete Mathematik, Logik. Dies sind Vorlesungen mit teils über 200 Teilnehmern und dementsprechend anonyme. Später werden die Vorlesungen aber deutlich kleiner, sodass die Professoren/Dozenten teils die Namen der Studenten kennen. Es gibt allgemein keine Anwesenheitspflicht und man kann auch einfach mit dem Material lernen. Dies ist im Allgemeinen aber nicht zu empfehlen, ausserdem sind Vorlesungen keine langweiligen Schulstunden.

Neben der Informatik wirst du auch noch ein Nebenfach wählen müssen. Dieses macht aber nur einen kleinen Umfang des Studiums aus (2-3 Vorlesungen). Ich persönlich habe Mathematik gewählt.

 Mein Studienverlauf

Dein Studienverlauf kann vollkommen anders aussehen. Dozenten wechseln zwar nicht häufig, aber es kommt vor.

Ich habe mein Studium in Regelstudienzeit und ‚mit Auszeichnung‘ abgeschlossen. Ich bin ein begeisterter Informatiker und fühle mich inbesondere in den mathematischeren Gebieten (Insb. Algorithmik) besonders wohl. In diesem Bericht gehe ich davon aus, dass du ähnliche Ambitionen hast.

Ich bin das erste Jahr noch gependelt (~3 Stunden pro Uni-Tag) und bin erst dann in mein erste eigene Wohnung in Uninähe gezogen. Die Wohnsituation ist für günstige Studentenwohnungen in Uninähe durchaus anstrengend, aber nicht hoffnungslos. Ich zahle 160Euro(Kalt) für eine 18.49$m^2$ Wohung  mit Balkon ins Grüne. Die Selbstständigkeit ist eine wichtige Erfahrung, aber eine Pantryküche und Party-Studenten als Nachbarn keine sonderlich schöne.

1. Semester

Im ersten Semester wirst du vermutlich nur Vorlesungsmodule hören, die alle mit einer schriftlichen Klausur abgeschlossen werden. Bei mir waren es die folgenden:

  • Programmieren 1 (6CP, Pflicht): Hier wird mit Java und objektorientierter Programmierung angefangen. Diese Vorlesung hat einige theoretische/mathematische Elemente, die man nicht unterschätzen sollte. Es gibt Programmier-Hausaufgaben, die aber schnell gemacht sind. Die Klausur beinhaltet Fallen, aber dafür sind die alten Klausuren ins Netz gestellt.
  • Lineare Algebra (10CP,Pflicht): Abstrakte Mathematik die weit über das Vektorrechnen aus der Schule hinausgeht. Am Anfang des Studiums scheint einem das vielleicht ein wenig nutzlos vorkommen, aber das Zeug ist wirklich wichtig und wird euch immer wieder begegnen. Hier gibt es keine verpflichtenden Hausaufgaben, aber es empfiehlt sich an den Übungen teilzunehmen.
  • Diskrete Mathematik (5CP, Pflicht): Ein Rundumschlag über die für Informatik wichtigen Disziplinen ausserhalb von Linearer Algebra und Analysis. Die Klausur ist nur Anwendung und es werden keine Beweise oder Ähnliches verlangt. Da ich das Material aber auf Verständnis gelernt habe und nicht auf Anwendung, wurde dieses Fach meine schlechteste Klausur (3.0). Dafür sitzt es aber immer noch tief und fest. Dies ist nicht bei jedem so und man stolpert später auch mal über Studenten die den Induktionsbeweis nicht ganz richtig verstanden haben, aber glauben dies zu tun. Tatsächlich hatte ich schon mal (im 6. Semster) eine Auseinandersetzung mit einer Gruppe Studenten, weil ich einen von einem Studenten vorgeführten falschen Induktionsbeweis nicht akzeptiert habe. Ich war nicht in der Lage mich durchzusetzen, erst später gab man mir dann Recht.
  • Theoretische Informatik 1(5CP, Pflicht): Einführung in Automatentheorie, Formale Sprachen u.Ä.. Eigentlich erst für das dritte Semester vorgesehen, kann man aber vorziehen. Die Hausaufgaben sind gewöhnlich sehr fordernd und auch die Klausur ist nicht einfach. Ist aber ein sehr interessantes Fach. Wirklich zur Sache geht es aber erst in Theoretische Informatik 2. Obwohl die Vorlesung einige Vorrausetzungen aus den ersten zwei Semestern hat, habe ich als einer der besten abgeschlossen.
  • Algorithmen und Datenstrukturen (8CP, Pflicht): Algorithmen und Datenstrukturen ist der Werkzeugkasten des Informatikers. Die Vorlesung legt viel Wert darauf, solide Grundlagen zu legen. Wenn dir, wir mir, der Inhalt zu interessant ist und du bereits zu Beginn die Bücher verschlingst, wird dir die Vorlesung aber zu langsam sein. Obwohl die Algorithmik nun mein Spezialisierungsgebiet ist und ich mich bereits damals sehr viel weiterführend damit beschäftigt habe, habe ich die Klausur nur mit einer 1.7 abgeschlossen.

 2. Semester

  • Programmieren 2 (6CP, Pflicht): Hier geht es in gleicher Manier wie in Programmieren 1 weiter.
  • Analysis (10CP, Pflicht): Ähnlich zu Linearer Algebra nur das jetzt das Thema anders ist.
  • Theoretische Informatik 2 (6CP, Pflicht): Hier geht es jetzt aufbauend auf Theoretischer Informatik 1 richtig zur Sache. NP=P-Problem, Entscheidbarkeit, etc. sind die anspruchsvollen aber extrem interessanten Themen dieser Vorlesung. Eine der wichtigsten Vorlesungen in meinem Studium.
  • Logik (5CP, Pflicht): Eigentlich als Vorspiel zur Theoretischen Informatik gedacht und dementsprechend viel mir dieses Fach leicht. Es ist trotzdem sehr interessant und nützlich. Wer sich mit dem Stoff vernünftig auseinandersetzt, kann die häufig im Netz schwirrenden Logikprobleme relativ einfach lösen. Aber auch sonst im Leben und insbesondere in der Informatik ist Logik sehr nützlich.
  • Grundlagen der Technischen Informatik (5 CP, Wahlpflicht): Eine freiwillige (Wahlpflicht) Vorbereitung auf Technische Informatik. Die Vorlesung ist ansich nicht schlecht, aber ich hätte doch lieber etwas anderes gehört. Die mathematischeren/theoretischeren Fächer liegen mir einfach mehr.
  • Stochastik (5CP, Mathe-Wahlpflicht): Wähle zwei aus: Stochastik, Numerik, Algebra, Statistik. Stochastik war mein erstes Mathewahlpflichtfach. Hier werden die Grundlagen der Stochastik durchgegangen. Gar nicht so weit von der Schulmathematik entfernt wie die anderen Mathematik-Veranstalltungen. Nützlich, aber wenn ich Stochastik brauche muss ich trotzdem nachschlagen.
  • Computernetze 1 (5CP): Nur halbherzig gehört und Prüfung wieder abgemeldet (bis zum Abend vor der Klausur möglich). Verschoben auf 4. Semester.

3. Semester

  • Software Engineering (5 CP, Pflicht): Wie baut/verkauft/beschreibt man Software. Also Diagramme, Charts, Pflichtenheft und Ähnliches. Die Prüfung habe ich unter Krankheit abgelegt, weil ich das Unwohlsein als Prüfungsangst fehlinterpretiert habe. Anschließend lag ich für über eine Woche halb tot im Bett (und ich konnte mich auch nicht mehr wirklich an die Klausur erinnern).
  • Relationale Datenbanksysteme 1 (5CP): Daten in Tabellen und wie man mit diesen Daten arbeitet. Sollte jeder Informatik-Student können, aber begeistern kann ich mich für SQL nicht. Die Prüfung ist sehr berüchtigt und du kannst einige lustige Geschichten hören und lesen. Aufgrund von Krankheit im 4. Semester geprüft.
  • Algorithmik-Praktikum (5CP, Wahlpflicht, unbewertet): Hier haben wir external Memory Algorithmen für die Wiselib programmiert. Sehr nützliche Erfahrung.
  • Geschichte der Mathematik (5CP, Schlüsselqualifikation, unbewertet): Unterhaltsame Vorlesung mit Abschluss durch Hausarbeit. Ich habe mich mit Cantor und seinen Beiträgen zum Verständnis der Unendlichkeit beschäftigt. Tatsächlich ist diese bedeutend weniger intuitiv als man denken mag (Unendlich ist nicht gleich Unendlich, z.b. Gibt es genauso viele natürliche Zahlen wie rationale Zahlen, aber mehr reelle Zahlen als natürliche Zahlen). Eng verflochten mit der Theoretischen Informatik.
  • Teamprojekt (5CP, Pflicht, unbewertet): Hier haben wir eine Roboterlokalisierung über eine Kamera implementiert. Es sind einige Marker auf DIN-A4 ausgedruckt mit bekannten Positionen auf dem Boden verteilt. Sobald der Roboter eine solche Markierung sieht, berechnet er die relative Position des Markers und damit seine eigene Position. Auch wenn der Marker relativ weit entfernt war und die Auflösung nicht so gut, funktionierte dies doch erstaunlich genau (maximal wenige cm Abweichung). Double-Werte haben sich hier für mich zum ersten Mal als zu ungenau herausgestellt.
  • Betriebssystem (5CP, Pflicht): Hier es um die Probleme, die ein Betriebssystem lösen muss (etwa wie es 5 Prozesse auf einem Prozessor ausführt und alle glauben, sie wären alleine). Ein Betriebssystem selber schreiben kann man anschließend aber nicht.
  • Programmieren für Fortgeschrittene (5CP): Hier geht es um Funktionale Programmierung und den generellen Eigenschaften die Programmiersprachen haben können. Interessant, aber aufgrund von Krankheit nicht geprüft. Da ich keine Credit-Probleme hatte, habe ich die Prüfung nie nachgeholt.
Hiwi

Ich habe dieses Semester als Tutor für Theoretische Informatik 1 gearbeitet. Dies beinhaltet das Leiten einer kleinen Übung in der Hausaufgaben besprochen werden, das Korrigieren von Hausaufgaben, Mithilfe in der Korrektur der Klausuren. Die meisten Teilnehmer in meiner Übung waren im selben oder gar höherem Semester als ich. Dementsprechend fehlte es mir an Selbstvertrauen und ich wurde meinen eigenen Anforderungen nicht gerecht. Trotzdem habe ich hieraus Erfahrungen gesammelt und weiß wie man es nicht machen sollte.

4. Semester

  • SEP (7CP, Pflicht, Unbewertet): Das SEP ist ein berüchtigter Zeitfresser in dem man in einer Gruppe ein mittelgroßes Softwareprojekt umsetzen muss. Wir haben einen Raum gebaut in dem 3 Wände mit Beamern bestrahlt wurden und eine 3D U-Boot Umgebung darstellte. Der Raum war weiter mit (drahtlos) vernetzten Objekten ausgestattet mit denen der Nutzer Aufgaben erfüllen musste die das U-Boot am Sinken hindern. Wir hatten ein Haufen Arduinos (mit XBee) und Sensoren, sowie die Raumkonstruktion und mussten ansonsten alles selbst programmieren. Unser Team war mit 11 Leuten (3 Informatiker, 8 IST’ler) sehr groß und bis auf eine Person waren auch alle sehr fleißig und kompetent. Wir haben deutlich mehr geleistet als verlangt war, weil uns unsere Betreuer im Glauben gelassen haben, wir würden zu wenig tun. Trotzdem hat es extrem viel Spaß gemacht und wir haben am Ende den zweiten Platz bekommen (auch wenn die meisten meinen, wir hätten den ersten verdient). Konkret habe ich hier insbesondere die Middleware zwischen Arduinos und Server entwickelt, die ziemlich cool und intelligent geworden ist.
  • Graphentheorie (10CP, Nebenfach Mathematik): Hier geht es um Graphen und deren Eigenschaften. Ein Graph ist eine Menge von Punkten die untereinander verbunden sein (können).  Hier ergeben sich einige interessante Probleme und ich konnte sehr viel Nutzen aus diesem Fach ziehen, da Probleme aus der Graphentheorie auch der Algorithmik zugeordnet werden können. Viele diese Probleme sind auch NP-Vollständig.
  • Computernetze 1 (5CP, Pflicht): Hier geht es darum, wie ein Computernetzwerk funktioniert. Angefangen wie man Daten über ein Kabel oder Funk sendet bis zu komplexen Netzwerken. Sehr wichtiger Inhalt. Die Vorlesung wird aufgenommen und kann sich auch zuhause angesehen werden. Die Übungen nicht, diese sind aber wichtig für die Klausur. Die Klausur ist dafür aber nicht so schwer, aber nicht unbedingt gut bewertet. Ich habe etwa keine 1.0 bekommen, weil ich die letzten Null-Stellen eines Binärcodes, den ich  vorher bereits als Dezimaldarstellung angegeben hatte, aus Platzgründen mit ‚…‘ abgekürzt habe.
  • Algebra (5CP, Mathe-Wahlpflicht): Mein zweites Mathe-Wahlpflichfach. Hier geht es um Gruppen, Ringe, und Ähnliches. Ich musste mich hier ziemlich durchkämpfen und habe erst später in Kryptologie den Sinn dahinter verstanden.
  • Technische Informatik 2 (4CP, Pflicht): Hier ist der interessante Teil der Technischen Informatik: Wie funktioniert ein Prozessor. Dementsprechend Schaltungslogik und Co..
HiWi

Dieses Semester arbeitete ich als Tutor für Theoretische Informatik 2. Lief bedeutend besser als im ersten Semester, aber lehren ist schwerer als man annimmt.

5. Semester

  • Einführung in Algorithm Engineering (5CP, Wahlpflicht): Diese Vorlesung war keine Vorlesung im klassischen Sinne. Auch gab es keine Klausur. Stattdessen wurden die Studenten (<20) in 4-5er Gruppen eingeteilt und mussten ein bestimmtes Thema wissenschaftlich erarbeiten und ein Paper daraus schreiben. Wir haben einen Algorithmus für RDF-Subgraph-Isomorphismen entwickelt der zu mindestens in unseren Testszenarios und InMemory schneller war als Jena. Ich habe nach der Veranstaltung noch einen weiteren Algorithmus entwickelt der noch mal ein ganzes Stück schneller war. Allerdings ist InMemory für RDF-Datenbanken nicht ganz realistisch, daher ist der Praxisbezug wohl eher gering. Nichtsdestotrotz habe ich in der Vorlesung sehr viel über das Verfassen von Papern und der allgemeinen Arbeitsweise in der Algorithmik gelernt.
  • Information Retrieval and Web Search Engines (5CP, Wahlpflicht, Master-Modul): Diese Vorlesung habe ich aus dem Master-Pool in den Bachelor importiert. Die Vorlesung behandelt eine Fülle von Aspekten und auch eine Menge Machine-Learning (Classifier, Stochastische Modelle, etc.). Hat mir etliche neue Tools geliefert. Die Vorlesung wird mit Multimedia-Datenbanken forgesetzt in der noch weitere (noch nützlichere) Tools vorgestellt werden. Dies war meine einzige mündliche Klausur im Bachelor und ich war etwas zu nervös und obwohl ich perfekt vorbereitet war, reichte es somit nur für eine 1.3.
  • Algorithmische Graphentheorie (5CP, Nebenfach Mathematik): Fortsetzung von Graphentheorie, nur jetzt ging es um das Lösen von graphentheoretischen Problemen. Informatiker haben in dieser Vorlesung einen kleinen Vorsprung, trotzdem war es eine interessante Vorlesung.
  • Technische Informatik 1 (4CP, Pflicht): Kombiprüfung Technische Informatik 1+2 abgelegt. Die Vorlesung zu TI1 war nicht sonderlich berauschend. Hier habe ich von den Problemen der Elektronik in Prozessoren gelernt. Das meiste habe ich mir aber selber mit Büchern beigebracht.
  • Ethnomathematik (5CP, Schlüsselqualifikation, Unbewertet): Eine sehr unterhaltsame Vorlesung, ob ich aber wirklich was für meine Zukunft gelernt habe möchte ich bezweifeln.
  • Seminar (5CP, Pflicht): Im Seminar muss man zu einem Thema eine schriftliche Ausarbeitung und Präsentation machen, die benotet werden (und auch in die Endwertung eingehen). Ich musste diese vollständig in Englisch machen.
HiWi

In diesem Semester war ich als Tutor für Relationale Datenbanken 2 tätig. Lief eigentlich recht gut und ich habe am Ende eine gute Evaluation erhalten. Nebenbei war ich somit für die 3 Aussiebefächer der Informatik HiWi, was ich damals irgendwie cool fand.

Weiteres

Nebenbei habe ich mich mit einem Mitstudenten noch um eine interessante Bachelorarbeit gekümmert. Hier haben wir tatsächlich etwas Zeit in einige Treffen mit dem Professor investiert aber das dieser so viel Zeit für uns gefunden hat, fand ich schon beeindruckend.

6. Semester

  • Bachelorarbeit (15CP, doppelt gewertet): Wir hatten am Ende tatsächlich ein sehr interessantes Thema gefunden, dass mich bis heute begleitet: Schwarmrobotik. Gewöhnlich werden Bachelorarbeiten auch alleine verfasst, aber es ist auch möglich diese zu zweit zu verfassen, insofern man hervorhebt welche Leistungen von wem erbracht wurden. Ich habe mit dem Mitstudenten schon in sehr vielen Projekten zusammengearbeitet und dementsprechend waren wir schon aufeinander eingestimmt. Ausserdem waren wir auf einem gleichen Leistungsniveau und konnten uns gut ergänzen, sodass wir sehr effektiv miteinander arbeiten konnten. Für unsere Arbeit wurden wir später auch ausgezeichnet.
  • Netzwerkalgorithmen (5CP, Wahlpflicht): Mir fehlten noch 3 oder 4 CP, also habe ich noch Netzwerkalgorithmen neben der Bachelorarbeit gehört. Netzwerkalgorithmen hat nichts mit Computernetzen sondern eher mit Graphentheorie zu tun. Aufgrund meines Nebenfachs hatte ich aber einen enormen Vorteil.
  • Knowledge Based Systems (5CP, Master-Modul): Die zu dem Zeitpunkt einzige KI-Vorlesung. Da ich aber die Punkte für meinen Bachelor schon zusammen hatte, habe ich die Prüfung nicht abgelegt, sondern die Vorlesung nur aus Interesse gehört.

 

Ende November gab es dann eine Abschlussveranstaltung mit Urkundenverleihung und Preisverleihung. Sie war aber nur ein optionales Extra. Da ich einen sehr guten Abschluss hatte, bin ich aber hingegangen. Unsere Bachelorarbeit hat tatsächlich einen Preis gewonnen. Wir wurden nicht vorher informiert und mein Mitstudent ist auch nicht zur Veranstaltung gekommen. Ich wäre beinahe auch nicht hingegangen, da mein Anzug doch etwas eng geworden ist. Glücklicherweise bin ich aber doch gegangen und habe den Preis (je ein iPad und ein Abendessen im LaCupola) dann für uns beide angenommen. Das Abendessen fand dann nach Absprache Ende Februar statt. Es war ein vergnüglicher Abend mit der Vorsitzenden der GI Regionalgruppe Braunschweig und ihrem Sohn (auch in der Informatik).

Das Informatik-Studium an der TU-Braunschweig kann ich im Nachhinein nur empfehlen: Die Vorlesungen sind zwar nicht immer so gut wie an den großen Universitäten, aber dafür muss man sich gewöhnlich nicht um Sitzplätze prügeln und man hat einen sehr direkten Kontakt zu den Professoren. Die Studentenzahlen in der Informatik sind in der letzten Zeit gestiegen, daher weiß ich nicht wie das in Zukunft aussehen wird. Aber auch wenn sich die Studentenzahl verdoppelt, werden die späteren Wahlpflicht Kurse nicht viel mehr als 30-40 Studenten haben.

Desweiteren gibt es sehr viele HiWi-Jobs sodass jeder halbwegs talentierte Informatik-Student sich seine Brötchen verdienen kann. Die Bezahlung ohne Studienabschluss liegt meiner Erinnerung nach bei etwa 9Euro die Stunde bei etwa 30-40 Stunden im Monat. Ausserdem lernt man in den meisten Jobs noch eine Menge und ist auch in die Forschung oder Lehre eingebunden.

FAQ:

Wie sieht es mit Englisch aus? In den ersten zwei Semestern kann man sich vor Englisch noch drücken, aber spätestens im 3. Semester werden Material und Literatur englischsprachig sein. Je weiter man voranschreitet, desto mehr verdrängt Englisch Deutsch. Am Ende des Bachelors wirst du flüssig Englisch verstehen und schreiben können (müssen) oder du hast schwere Probleme in der Zukunft. Mach dir darüber aber keine Sorgen, das kommt schon von alleine.

Muss ich ein Nebenfach belegen? Ja, aber es nimmt nur 15CP von 180CP ein. Ausserdem gibt es interessante Nebenfächer. Du kannst überall reinhören, aber bevor du dich Prüfen lassen willst, musst du dich festlegen.

Bis wann muss ich mich entscheiden, ob ich eine Prüfung ablege? Du musst dich in der Mitte des Semesters anmelden, kannst dich aber bei schriftlichen Klausuren bis zum Abend vor der Klausur wieder abmelden. Falls du dich also überschätzt hast und am Tag vor der Klausur noch nicht 100% fit bist, kannst du dich noch schnell um entscheiden.

Kann man Noten verbessern? Ja, das ist in beschränktem Rahmen möglich. Ein schlechter Tag in der Klausurenphase muss dir also nicht den Schnitt versauen.

Printing Course Slides

The most PDF-Reader do not support good arrangements for slides.
The most PDF-Reader do not support good arrangements for slides.

If you want to print your slides with Linux you have not that much choice how to arrange them. For 4:3-Slides, which should be the most common, 2×4 slides per page would be ideal. Unfortunately the print-menu of the most PDF-Viewer do not have this configuration.
Also it would be nice if there could be some extra space for the punch holes. And since we want to print double-sided to save paper (and to let it look less. It’s hard to motivate yourself with a thick bunch of paper.), the extra space has to be different for the even and the odd pages.

A optimal page usage with extra space for the punch holes. The content of the slides can be ignored. It's simply the first set of slides I found and not the best.
A optimal page usage with extra space for the punch holes. The content of the slides can be ignored. It’s simply the first set of slides I found and not the best.

A simple tool to generate such a printable PDF is pdfnup out of the pdfjam package. The used command is

pdfnup --twoside --nup 2x4 --suffix '2x4' --no-landscape --offset '0.8cm 0cm' --scale '0.95' slides.pdf
  • –twoside
    We want to print two-sided. If your printer does not support that, you can simply print first all odd pages and afterward you put the printed pages back into the printer and print the even pages on their backside.
  • –nup 2×4
    For the 2×4 arrangement.
  • –suffix ‚2×4′
    The output-file will have ‚2×4′ as suffix
  • –no-landscape
    If you want to print landscape you can write –landscape but then the 2×4 arrangement would be very bad.
  • –offset ‚0.8cm 0cm‘
    The offset for  the punch holes. 0.8cm for the side with the punch holes and 0cm for the other
  • –scale ‚0.95‘
    Maybe you have to vary the scale if the single slides are too big or small.
  • slides.pdf
    The input file

Experimental Blog