Tag Archives: ICE

Do you still wear diapers or can you already read?

A couple of days ago I gave my last lecture at TU Graz. I had the pleasure to talk to first-semester bachelor students in Information and Computer Engineering. One of the students asked me about which books I consider to be worth reading and/or buying for the benefit of getting ahead with studying.

I take this opportunity to propose a couple of books I consider an excellent help to advance into a fast-track beginner in computer engineering.

Here is my pick:

For a proper beginning, I suggest that you try to find “your” favorite book on programming. It could be any. Check out the many free sources you can find on the web. A popular start for many is “How to Think Like a Computer Scientist“. There are several versions of this book: for Python, for Java, for C++, and several more.

Maybe you want a book you buy for real money. After all, the author invested a lot of work in writing it. Here is an example:

John V. Guttag: Introduction to Computation and Programming Using Python, MIT Press, 2016.

The main language in your first semester will be C, however. Best is to start with “the original book”:

Brian W. Kernighan, Dennis M. Richie: The C Programming Language, Prentice Hall Software Series

Lots of students have been reading this text before you. To my mind, it is a “must-read”, even for those who never read. It is kind of visiting the Eiffel tour, the Niagara falls, or the St. Stephan’ s Cathedral in Vienna, if you wish. The real programmers always keep a copy of this book at their desk; just to show off to visitors.

Right after the C programming language you will expose yourself in C++. Christmas is right ahead, so why not wish yourself a book written by the creator of C++, Bjarne Stroustrup. You can find all his books here: http://www.stroustrup.com/books.html

I would pick “Programming — Principles and Practice Using C++ (Second edition)”

I am a firm believer of the fact that studying material from the originators, and not from epigones is best. Unfortunately, I can see a lot of young people who go for “hear-say” and seem to be content.

As computer engineers, you will also dive deeply into hardware. A must-read is

David A. Patterson/ John L. Hennessy: Computer Organisation and Design —
The hardware/software interface, Risc-V edition, Morgan Kaufmann, 2017.

You should read this book in conjunction with your hardware courses like “Computer Organisation” in the second semester.

Another beautiful book goes even deeper into electronic design. Check it out, you will love it:

Paul Horowitz, Winfield Hill: The Art of Electronics, 3rd edition, 2015.

When I first found this book, I was about to throw away all the other written material I had on electronics. It quickly became apparent to me that electronics is beautiful engineering. An art, indeed.

I suggest that you also try to find out about the beauty of math. A good start in your first semester could be this one:

Kurt Meyberg, Peter Vachenauer: Höhere Mathematik 1, Differential- und Integralrechnung, Vektor- und Matrizenrechnung, 2. Auflage, Springer-Lehrbuch.

By studying this book, you will learn all the necessary ground work for becoming a competent engineer. Moreover, I promise you: You will easily master your first math exams.

Quickly you will hear that “operating systems” is a tough topic. Why don’t you try
to check out this book:

Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau: Operating Systems — Three Easy Pieces.

Start with one of the chapters: You will easily get hooked to this text.

You might also want to check out this book:

Thomas Anderson, Michael Dahlin: Operating Systems — Principles & Practice, 2nd edition, 2014.

This is the book suggested for the course at TU Graz.

Another useful book is this one:

Larry L. Peterson, Bruce S. Davis: Computer Networks — A Systems Approach, 5th edition.

This book provides a text for your course on computer networks.

For your course in signal processing, I suggest this book:

James H. McClellan, Ronald W. Schafer, Mark A. Yoder: DSP First, 2nd edition.

As a final suggestion comes the following text written by yours truly. This text is free of charge:

Karl C. Posch: A Lesson on Programming, 2017

As a summary, I would like to comment on the price of books. If you are young and have grown up in Austria, you quite likely have a view that the world should be for free — at least for you. Most likely, your parents have been paying for your expenses. Or the taxpayer. So why should you spend, say, 40 Euros for a book?

My viewpoint over the years became the following: I have noticed that a good book not only provided intellectual fun, but also quite often helped me to save time when trying to achieve a goal; like to prepare for an exam, for instance.

Let’s therefore do a simple computation: If a good book saves you 3 hours of time compared to reading foolish material downloaded from some tertiary source on the  web, you could become a productive engineer three hours earlier in your life. As a young engineer you might earn 20 Euros per hour after tax; this amounts to roughly 32 000 Euros per year. Thus, by spending 40 Euros for a book you might earn 60 Euros in a couple of years. Try it out: A good book is a profit. I have experienced this effect over and over again throughout my professional life.

Happy reading!


Computer Engineering, Computer Science, and Software Development: A Comparison.

At TU Graz we offer three different Bachelor programmes for students interested in “computers” and “information technology”. In this blog post I dare to try to compare first-year students of all three degree programmes.

The degree programme “Computer Science” (CS) is the “general” program. Its German name “Informatik” seems to be more appropriate, as this programme is not only about the “science of computers”, but the science of information and the automatic processing of information.

In the degree programme “Information and Computer Engineering” (ICE, formerly known as “Telematik”), students dive deeper towards hardware topics. Students are also exposed to courses in electronics and signal processing, for example.

In “Software Development and Business Management” (“Softwareentwicklung-Wirtschaft, SWD-BM), the business aspect of information technology is added to the general courses.

I have the pleasure to get to know all students in the 2nd semester in 2 different courses. In the course “Computer Organisation” (“Rechnerorganisation”, RO) I meet students of
CS and ICE. In the course “Computer Networks and Computer Organisation”(Rechnernetze und -Organisation, RNO) I meet the students of SWD-BM. All three degree programs have approximately 70 students in their 2nd semester.

Both courses, RO and RNO, have a common starting point: Students start by understanding how a rather simple C-program can be compiled to assembly language. This assembly code is then further assembled to machine code for the “TOY computer”. “TOY” is an educational computer with a small instruction set; it has a main memory of 255 word, and input/output. There exist several simulators for TOY. This part of the course’s material is being presented during the first 3 weeks of the second semester.

In the practical, students get asked to first solve a problem with a C program. This year, the problems were “sorting” and “search and replace”. In a second step, students manually compile their C programs by substituting for-loops with while-loops, then substitute the while-loops with labels and goto-statements. They also need to understand how to resolve the access to array elements by using pointers. As soon as they have modified their C code adequately, each statement in the modified C code can be translated directly into an assembly instruction for TOY. The machine code can then be simulated on one of the TOY simulators.

The graph above compares the results of the first assignment of the practical for students in their 2nd semester. In the left column you can see the performance of the ICE students.
Roughly 70% of all registered 2nd-semester students submitted a TOY machine code which passed the “standard” test, i.e. a test case which has been specified in the specification of the assignment.

CS students were less successful in this respect: Only 44% of all  2nd-semester students handed in a solution which passed the standard test.

2nd-semester students of SWD-BM had to solve a slightly different problem, but with similar difficulty. 50% of these students’s submissions passed the standard test.

Let us have a look at the other end of the “spectrum”. We have many students who just register for the course, but then do not submit any work at all. It is a general rule that these students do not get graded. In the ICE programme, we have 13% of all registered students who are “inactive”. In the CS programme, this group is a lot larger: Almost 30% are inactive. In SWD-BM, this group amounts to approx. 20%.

My guess for this rather significant difference in the amount of inactive students is that ICE students seemingly have chosen their degree programme more carefully than CS students, for instance. The SWD-BM students are somewhat in the middle between these two groups. It seems that if someone chooses to become a “computer engineer”, she is more dedicated than if someone chooses to study “Informatik”. Students interested in “software and business” lie in the middle.

Another interesting outcome is the amount of students who only submit “assignment 0” and then quit. Assignment 0 is almost a “no-brainer”; students are asked to submit a short text in which they declare that they understand the concept of plagiarism, that they understand the consequences of handing in plagiarized work, and that they state that they do not intend to plagiarize. Whereas the size of the group of students who only submit “assignment 0” and then quit is negligible in ICE, it is rather large in SWD-BM. This difference seems to be due to the different deadlines for assignment 1. For ICE students and CS students, this deadline was right at the beginning of this year’s Easter break. The deadline for SWD-BM students was 4 weeks later. Is it due to the unbelievably long Easter break  — 3 weeks — or is it some other reason which could be used as an explanation for this difference?

In case you are interested in more details, check out the detailed results in these blog posts:



You can find the course webs for RO and RNO here:



Information, Computer, Engineering.

Three tough concepts if one looks into details. Three hot directions to be curious about. Three strong legs to build a professional career upon. Three intimate words for all digital natives.

  • Information is more fundamental than matter or energy.
  • Computers in all their forms are shaping each aspect of the world more than anticipated by the most farsighted ones. The computer era has only just begun.
  • Engineering is the ultimate human craft of “making things really work”.

Information. Computer. Engineering. Three cornerstones of one of the strongest degree programs at TU Graz, which is just about to re-invent itself. Telematik—as we used to call it—ignited a revolution in 1985. Telematik was the first degree program at TU Graz to go Bologna around the year 2000. “Information and Computer Engineering” is to take this revolution to a new level. I like to see that curricular committees can still do.

Check out http://ice.tugraz.at.