Category Archives: computer science course

RO KU: The results of 2018

See above the results of this year’s “Konstruktionsübungen” in “Rechnerorganisation”. On the right, you can see the distribution of the grades for those students who have made it all the way to the final presentation. I would like to thank you for all your efforts in getting the job done. I hope that you got a fair grade.

The chart below shows the amount of registered students over the past years. For almost every year since 2012, the amount of registered students has risen. This year we had 393 registered students.

ku_ro_2011_2018_amount_of_students

44 students have registered, but did not show any activity at all. These students get no grade at all. Another 155 students gave up before the final presentation. These students fail the practical. Roughly half of the registered students were busy until the end and most of them passed the practical. Only 12 students failed despite handing in all exercises. We also had 6 cases where students did not hand in their own work. They get the grade “U”.

In the following chart you can see the distribution of the grades for all active students, i.e. those who made it all the way to the second presentation. Compare this year’s results with the previous years’ results: The relative amount of the grade “Sehr gut” was never higher.ro_ku_2010_2018_success_rates

We have evaluated you. Now it is your turn give us feedback (“to evaluate us”). Thank you for letting us know about your opinion about the KU Rechnerorganisation. Please, take the effort to fill the form on TUGrazOnline.

Finally, let me express a huge “thank you” to the finest of all teaching assistants around: Stefan, Andrea, Martin, Lisa, and Vedad. I hope that you also got the impression that these five really RO-cked.

IMG_2163

I wish you all a pleasant summer break.

KC Posch

Exam results from July 2018

Above you can see the distribution of the exam grades of this year’s final exam in “Rechnerorganisation”, edition 2nd July.

Those of you who follow this blog know that I am trying hard to convince you all that it pays off to work hard. Those of you who attend class might even get the opinion that it is fun to dive into the topics presented in this course.

In case you liked the course, but still got a bad grade: Maybe it was a lack of skills with time management; maybe you underestimated my pedantic way of looking at your answers in the exam; maybe you just had a bad day. In any case, try to learn from your experience: If you fall, for whatever reason, you just need to stand up again and continue with more experience.

If you got an average grade: Make yourself a promise that you can do better next time in some other exam.

If you got an excellent grade: Nourish your self esteem. And be mentally prepared for days when it does not go so well. The next exam will definitely also be tough.

Below you can see the distribution of grades since 2011.

statistik_noten_je_jahr_11_18

You can find all exam questions on the RO course web.

In case you would want to check out the exact points you got on each problem, come to my office. But, please, only after August 8th. Until then I will be out of office.

Before I wish you relaxing summer holidays, let me remind you of the opportunity to evaluate the course: both, lecture and practical, are still open for a couple of days to get evaluated.

I really like to learn about your opinion. Please, go ahead an evaluate. Thank you.

I wish you a pleasant summer time.

Karl C Posch

KU RO: The results of 2017

See above the results of this year’s “Konstruktionsübungen” in “Rechnerorganisation”. On the right, you can see the distribution of the grades for those students who have made it all the way to the final presentation. I would like to thank you for all your efforts in getting the job done. I hope that you got a fair grade.

The chart below shows the incredible increase of registered students over the past years. For every year since 2012, the amount of registered students has risen. This year, we can see almost 400 students registered.

ro_ku_2010_to_2017_results_figure3

44 students have registered, but did not show any activity at all. These students get no grade at all. Another 144 students gave up before the final presentation. These students fail the practical. Roughly half of the registered students were busy until the end and most of them passed the practical. Only 7 students failed despite handing in all exercises.

In the following chart you can see the distribution of the grades for all active students, i.e. those who made it all the way to the second presentation. Compare this year’s results with the previous years’ results: The sum of the grades “Sehr gut”, “Gut”, and “Befriedigend” was never higher.

ro_ku_2010_to_2017_results_figure2

“Rechnerorganisation” is a compulsory course for bachelor students of Computer Science and for bachelor students of Information and Computer Engineering. In the chart below I dare to compare these two groups with respect to performance. Apparently these two groups differ in size and performance. From the first chart you can see that there are approximately 270 CS students and 100 ICE students.

ro_ku_2017_cs_vs_ice_2

It is also interesting to have a look at the relative distribution between these two groups:

ro_ku_2017_cs_vs_ice_1

CS students have a higher rate of being inactive and a higher rate of failing. I am curious about the reason for this difference.

We have evaluated you. Now it is your turn give us feedback (“to evaluate us”). Thank you for letting us know about your opinion about the KU Rechnerorganisation. Please, take the effort to fill the form on TUGrazOnline.

Finally, let me express a warm “thank you” to some of the finest of all teaching assistants around: Alexander, Andrea, Martin, Rene, and Vedad. I hope that you also got the impression that these five really RO-cked.

weinrauchulbelschwarzlhoelblingHadzic

I wish you all a pleasant summer break.

KC Posch

Rechnerorganisation: Exam results for 27 June 2017 and 3 July 2017

Above you can see the distribution of the exam grades of this year’s final exam in “Rechnerorganisation”, edition June and July.

It hurts to see such a high failure rate. However, the failure rate got substantially
lower compared with last year’s. This year we had “only” 36% compared to the 45% last year. Moreover, there are also many students with splendid grades.

Those of you who follow this blog know that I am trying hard to convince you all that it pays off to work hard. Those of you who attend class might even get the opinion that it is fun to dive into the topic of the class.

In case you liked the course, but still got a bad grade: Maybe it was a lack of skills with time management; maybe you underestimated my pedantic way of looking at your answers in the exam; maybe you just had a bad day. In any case, try to learn from your experience: If you fall, for whatever reason, you just need to stand up again and continue with more experience.

If you got an average grade: Make yourself a promise that you can do better next time in some other exam.

If you got an excellent grade: Nourish your self esteem. And be mentally prepared for days when it does not go so well. The next exam will definitely also be tough.

We had 5 groups: One group for the June exam, and 4 groups (A, B, C, D, and E) for the July exam. Below you can see the outcome depending on the group.

exam_results_per_group_absolute_2017

In case you think that you had it tougher in your group than your colleagues in some other group: There is no intention from my side to have tougher and simpler exam questions per group. I always pack 3 known exam questions with 1 new question.

You can find all exam questions on the RO course web.

In case you would want to check out the exact points you got on each problem, come to my office. But, please, only after August 9th. Until then I will be out of office.

Before I wish you relaxing summer holidays, let me remind you of the opportunity to evaluate the course: both, lecture and practical, are still open for a couple of days to get evaluated.

I really like to learn about your opinion. Please, go ahead an evaluate. Thank you.

I wish you a pleasant summer time.

Karl C Posch

10: 8110?

Hope you all had a good start into the semester. Did you get your TOY going? Then it should be easy to figure out what the above contents of TOY’s main memory would cause if you ran the machine. I am going to invite the first 6 students who send to me an email with the correct answer for coffee on Tuesday, March 14th,  after the morning class. Anyway, I consider it as useful to reason about this tiny machine program consisting of essentially just one instruction followed by a HALT. It probably gives you a new insight into the relationship between code and data. See you in class on Tuesday.

Tips for a perfect start in Computer Organization

Today is the beginning of the spring semester — or “summer semester” as
we call it in our sloppy mother tongue. By the way: in Swedisch, the
noun “sommersemester” translates to “summer holidays”, i.e. “Sommerurlaub”.

Below I give you a couple of hints of how to avoid to start strongly into the semester.

(1) Starting course with skipping going to lectures.

I advise you to go to all lectures and tutorials during the first weeks. Only by attending all meetings you can slowly develop your own opinion whether you should continue attending or not. Even if you have already mastered parts of the course, e.g. only the written exam or only the practical part in one of the previous years, I advise you you do the whole course again.

(2) Considering lectures and practicals as independent units.

Attend both parts of the course, i.e. lectures and practicals, together. Even if you have already mastered parts of the course, e.g. only the written exam or only the practical part in one of the previous years, I advise you you do the whole course again.

(3) Starting with the opinion that you have heard all before in school.

Some of you come from technical colleges and have been exposed to similar topics as found in this course. Please, still start attending all lectures and tutorials during the first weeks. You might quickly find out that there is still something new to be learned. I think that to most of you the “methodology” of approaching computer organization is new.

(4) Thinking that you can learn the course material in one intensive preparation session before the exam.

Computer organization is to some extent like a language course. You need to learn a whole lot of new words and need to learn to use these words in a new context. Like language, the material from computer organization cannot be learned in an overnight intensive session.

(5) Skipping trying out the code examples.

Understanding computer organization is not only knowledge, but a lot more the skill to build digital systems. In order to master this, you need to make many experiments with code. You start by trying out sample code provided by the teacher, and then embark to try out your own code.

(6) Thinking that it is sufficient to watch the video material alone.

Same answer here: Understanding computer organization is not only knowledge about computers, but a lot more the skill to be able to build digital systems. In order to master this, you need to make many experiments with code. You start by trying out sample code provided by the teacher, and then embark to try out your own code.

Conclusion

As your teacher, I would be happy if I could convince you to have a strong start into the semester by being “attentive” (“aufmerksam”) and thus “attend” (“besuchen”) the course by showing up in the lecture room.

For most of you this course is a compulsory course which translates to “Pflichtlehrveranstaltung”. By deciding to register for the course within your chosen curriculum you acknowledge to do your “Pflicht” for the 15 weeks to follow. So, please, don’t ask me any longer about the term “Pflicht”. First you choose and then you stick to your choice.

RO: The exam results of July 1st, 2016

Above you can see the distribution of the exam grades of last week’s final exam in “Rechnerorganisation”.

It hurts to see such a high failure rate. However, this pain is covered by the pleasure to see also many splendid grades.

Those of you who follow this blog know that I am trying hard to convince you all that it pays off to work hard. Those of you who attend class might even get the opinion that it is fun to dive into the topic of the class.

Those of you who have attended the “repetitorials” in the last 2 to 3 weeks might even agree with me that I really tried hard to prepare you for the exam. And hopefully your attendance in class helped to work your way to achieve not only a good grade, but also get a good understanding of what is going on inside a computer and how to design digital systems.

In case you liked the course, but still got a bad grade: Maybe it was a lack of skills with time management; maybe you underestimated my pedantic way of looking at your answers in the exam; maybe you just had a bad day. In any case, try to learn from your experience: If you fall, for whatever reason, you just need to stand up again and continue with more experience.

If you got an average grade: Make yourself a promise that you can do better next time in some other exam.

If you got an excellent grade: Nourish your self esteem. And be mentally prepared for days when it does not go so well. The next exam will definitely also be tough.

OK. Let’s have a look at the detailed outcome depending on the immatriculation number.

ro_July2016_results2

We had 4 groups: group A, group B, group C, group D, and group E. The links will lead you to the exam questions. Below you can see the outcome depending on the group.

ro_July2016_results4
I got also interested in the following question: What if all students would get 25 points on the question on finite state machines. Many of you know that each exam in Rechnerorganisation has 1 question on finite state machines or algorithmic state machines (ASM). The question asks for working either from an ASM diagram towards a structural diagram at register-transfer layer, or the other way round. It could also be a question to derive a timing diagram from either an ASM diagram or a diagram at register-transfer layer; or the other way round. Once you have mastered this not too difficult material, you get 25 points out of 100 points in the exam “for free”.

The graph below shows the hypothetical outcome of the exam if all students taking the exam would have been able to solve the free-of-charge question:

ro_July2016_results3

I would like to look at a second hypothetical situation: What if all students would have been able to get 25 points on those questions which I explicitly explained on the blackboard in class in the two last weeks before the exam. In this case, the failing rate would have dropped to 12% only.

Why do students not listen to me when I explicitly tell them about the important facts with regard to exams? (1) Learn to solve simple problems with regard to finite state machines and algorithmic state machines. (2) Attend the important classes where I show you the solutions to exam questions.

Why do students rather memorize wrong answers which they find in some database on the web? I have seen all to many wrong answers of this type.

I was also interested in the relation between bachelor students of computer science (CS) and bachelor students of information and computer engineering (ICE). For those two groups, Rechnerorganisation is a compulsory course. Below is a comparison with regard to grades:

ro_July2016_results5

Apparently, the ICE students perform better. I am still trying to figure out the reason for this difference. In a similar chart — see below — I have compared the results of the first-year students only:

ro_July2016_results6

Here, the CS students at the “good” end perform better compared to their ICE colleagues.

So much for statistics.

In case you would want to check out the exact points you got on each problem, come to my office. But, please, only after August 11th. Until then I will be out of office.

Before I wish you relaxing summer holidays, let me remind you of the opportunity to evaluate the course: both, lecture and practical, are still open for a couple of days to get evaluated.

I really like to learn about your opinion. Please, go ahead an evaluate. Thank you.

I wish you a pleasant summer time.

Karl C Posch

KU RO: The results of the class of 2016

See above the result of this year’s “Konstruktionsübungen” in “Rechnerorganisation”. You can see the distribution of the grades for those students who have made it all the way to the final presentation. I would like to thank you for all your efforts in getting the job done. I hope that you got a fair grade.

313 students have registered for the course. Out of these 313 students, 78 students did not hand in any of the 5 assignments. These students get no grade. In the chart below you can see the distribution of grades. Moreover, you can see in detail the various reasons for getting a “Nicht genügend”. 13 students quit the course after handing in assignment A0. 41 students gave up after handing in A0 and A1. Another 31 gave up later. This results in 85 students who did not make it all the way to the final interview with the teaching assistants. According to the rules of the university, these 85 students get a negative grade. Another 8 students failed the course despite the fact that they have handed in all assignments. Check out the following pie chart. It shows all cases.

ro_ku_2016_results2

“Rechnerorganisation” is a compulsory course for bachelor students of Computer Science (CS, 194 student this year) and for bachelor students of Information and Computer Engineering (ICE, 99 students this year). In the chart below I dare to compare these two groups with respect to performance. Apparently these two groups differ:

ro_ku_2016_results3

In the following chart I have tried to make this difference even clearer. The chart shows the difference between CS students and ICE students who made it all the way through the practical:

ro_ku_2016_results4

It is also interesting to have a look at the distribution with respect to the first year of registration, i.e. the first two digits of the registration number. The two groups differ significantly:

ro_ku_2016_results5

In the following chart, I compare the performance with respect to the immatriculation year from a different point of view: How many register versus how many actually start acting in order to get a grade. It is interesting to see that students with older immatriculation numbers do not seem to perform better with respect to “needless course registrations” than first-year students.

ro_ku_2016_results6

Let me finish this short research with a comparison of the grades of 2016 with respect to the immatriculation year. The younger a student is in terms of immatriculation year, the higher is the likelihood that this student is a good student. Yes, your potential future employer knows about this distribution also. Keep going strong.

ro_ku_2016_results7

We have evaluated you. Now it is your turn to evaluate us. Thank you for letting us know about your opinion about the KU Rechnerorganisation. Please, take the effort to fill the form on TUGrazOnline.

Finally, let me express a warm “thank you” to some of the finest of all teaching assistants around: Alexander, Andrea, Martin, Rene, and Vedad. I hope that you also got the impression that these five really RO-cked.

weinrauchulbelschwarzlhoelblingHadzic

I wish you all a pleasant summer break.

KC Posch

The course text’s new clothes

I dared to publish a new draft version of the course text.

  • It is a PDF file.
  • The text of all chapters comes together in one file.
  • Don’t worry: It is the same text which has been used throughout the semester.
  • Still only text; with some embellishments, though.
  • With less language errors, I think. But still draft text.

You can find the text on the course web. Alternatively, click this link.

If you are visually inclined, you can map the figures from the presentation slides to this text-only course text.

Don’t forget to think as an engineer, though: You should run plenty of simulations to get “a feeling” for the models. I am convinced that this “feeling” is a precondition for understanding the material.

I wish you all a productive preparation phase for your exam.

KU: A first overview with statistics

Many of you have been working hard within the first couple of weeks of Computer Organization. For you is the flower above.

In this posting I would like to give you a first overview with some statistics.

Let’s break down numbers from top to bottom. We have 380 students registered for the lecture, but only 313 students registered for the practical. In the picture below you can see the distribution with respect to the year of the first registration at the university.

ku_ro_2016_0

We got 235 submission to assignment 0 or assignment 1. These students will get a grade.

The remaining 78 students just registered. I dared to remind all students without submissions right after the submission deadline by sending them a letter. In this letter I kindly asked them not to forget to submit; I also asked them for reasons in case they  do not have the intention to submit at all. 20 students replied and explained their reasons for not submitting. 58 students did not react at all. I wonder and worry about these students; after all, this group amounts to 18,5% of all registered students.

222 students submitted assignment 1.

Check out the submission rate sorted by immatriculation year below. The highest submission rate comes from students with fresh registration numbers. Students in the 2nd and 4th semester reach a submission rate of 76%. In contrast, students in their 6th or 8th semester just reach between 50% to 60% submission rate.

ku_ro_2016_2

We have automatically tested all submission to assignment 1. It was interesting to see that those submissions which could pass the simple test described in the assignment could — with 1 exception — also pass all other tests. Below you can see the success rate for assignment 1 in relation to all submitted solutions.

ku_ro_2016_6

It is interesting to note that the highest success rate comes from the 2nd semester students. This is interesting since assignment 1 has been more or less the same for many years: convert a tiny C-program to TOY machine language and test it on Visual X-TOY.

If we look at the success rate based on all registered students, we get a rather disappointing picture. See below.

ku_ro_2016_4

For instance, only slightly more than 20% of all registered 8th-semester students have mastered assignment 1; considering the fact that assignment 1 has been very similar throughout the last 5 years, this is really disappointing.

Let us have a look at some details. In the pie chart below you can see that 146 submissions have passed all tests. One submission passed only the basic test described in the assignment specs. 52 submissions did not pass even the basic test. 8 submissions ran into an endless loop. 13 submissions did not hand in a TOY assembly language file. 4 submissions were empty. And 9 students handed in assignment 0, but not assignment 1.

ku_ro_2016_5

Let me tell you about the distribution of students with respect to their chosen degree program. The biggest group are the students of “Computer Science”. They amount to 194 students. The second biggest group are those from the degree program “Information and Computer Engineering”. Here we have 103 students.

ku_ro_2016_7

I have also compared the success rates of the two big groups. It becomes evident that the ICE-students on average perform better than their colleagues from Computer Science. See the chart below. Check out for instance the amount of students with “no submission”. 16% of all registered ICE-students did not submit assignment 1; however, of all  registered students of Computer Science, 29% did not submit assignment 1. Looking at the other extreme, we see that the success rate of ICE-students is significantly higher than the success rate of their colleagues from Computer Science.

ku_ro_2016_8

So much for all that jazz. I hope that you are keen to work on assignment 2. I wish you all the fun I had when I did it in January this year.

Some tips: Start early. Don’t give up. Try out all the examples you find in the course material before you dive into this year’s assignment problem. I want you to understand the full beauty of finite state machines.