Category Archives: IAIK

A Lesson on Programming

This year I spent my summer vacation on the island of Gotland. A remarkable place. It felt like a mixture of some Greek island and Lapland. The initial idea of writing a new text for students was born there: A text on learning to program. A text on learning to solve a problem.

The reason for writing this text was the poor outcome of the practical in “Computer Organization and Computer Networks”. In the recent edition of this practical it became apparent that far too few of the registered students could successfully master the problem of the first assignment. In this assignment, the students got asked to first solve a rather simple problem by coding it in C. Based on this C code, they should then manually compile it to assembly language for a simple computer named TOY. This second step is in fact an exercise fitting to the first part of the material taught in the course.

The problem results in typically less than 100 lines of C code consisting of just the function “main()”, a few global variables, a couple of for-loops and while-loops, some if-statements, and accesses to elements of an array. In addition, the program needs to read values from standard input, and write to standard output. The specification of the assignment requests to use no local variables, no use of the heap, and no function calls within “main()” since the program stack and its use will only be covered later in the course.

The lack of skills to translate a problem description into working code in C seemed to be the major initial hurdle. Despite the fact that they were exposed to all major C language elements in the first-semester course on C, all too many could not solve the problem, and thus gave up early on.

In response to this apparent deficit on problem solving skills, I have written the new text. It shows students how I approach a rather simple task and how I incrementally craft a solution. You can find the text here: https://seafile.iaik.tugraz.at/f/d1b0e83828/. In case you want to download all the example files, here is the link: https://seafile.iaik.tugraz.at/f/d06df6373c/

The final chapter of this text is called “The most important lesson in programming“. It reads like this:

Whenever you want to learn something new, it is a good idea to check out how people who have been in this “trade” for quite some time are doing it. Once they show you how they do, you can still decide whether you want to acquire a particular trick and add it to your own bag of tricks, or shake your head and look for a better solution.

Think of a bicycle repair shop. Think of a carpenter’s workshop. Think of going to such a place to become an apprentice. You might see many tools you have not seen before. You might wonder what they are good for. By watching the more experienced workers in this workshop you learn. You see the use of new tools. You see typical situations arising over and over again. Maybe you also see behavior where you wonder why it is done in this particular way. You might decide to try to improve it. By trying, you get the chance of making errors. By making errors, you find out ways to avoid these errors. You learn.

In your computer you have almost all the tools you need. And whatever tools are missing – you can make them yourself. As a beginner, you have the problem of how to go about all these tools. Which one to take first?

Think of having the task of building all the furniture for a simple kitchen in some carpenter’s workshop. Where would you start? How would you learn to finish in time? Maybe, the master might give you a simpler task for the beginning: Just make the kitchen table. It should be rectangular and should have four legs. Simple enough, isn’t it? But which material should you use? Where to get the material from? Which tool is appropriate for cutting? Which blade? How to make round legs? How to attach the legs to the board? Do you need to paint the parts?

Is it better to first watch an experienced person doing this task? Or is it better to just try?

My answer is: Anything goes. You decide. But do not expect the teacher to teach you anything. Be grateful if she spends time to show you this or that. But only by doing it yourself you can learn. Only by making mistakes, you learn. Only by devoting enough time to a particular task, you give yourself the chance to start enjoying it; you might even get into the flow. Being in the flow is a wonderful feeling.

Are you overwhelmed by the sheer unlimited details you got exposed to in this document? Don’t get scared. If you want to do an expedition to Mount Everest, your first moves are simple: Decide to do it. Think about it some time, but not too long. And then you make the first step. Literally. It is best to do lots and lots of baby steps. These are the building blocks of eventually becoming successful. Even if you do not immediately see that a particular baby step contributes to your gain in experience, it still does. Trust me in this. All computer experts started like you.

Avoid asking the question “What is this good for?” with the argument that “I will surely never need it in my future life.” Try to learn from each and everything that comes along your way. In other words: Avoid the idea that you were able know your future. Most things you will be in touch with in your future do not exist yet. Ask yourself better the question “What is this good for?” from an inventor’s perspective: Anything new you come across can be THE igniting idea to something GREAT. You just have not yet figured this out yet.

All you need is time and curiosity. The nice thing about time is its ultimate fairness: Everyone of us gets the same amount each and every day. The nice thing about curiosity is that you do not have to learn it; you were born with it. In case you forgot about it, just think back. Or just watch any baby doing its baby steps. You were the same.

Never be afraid to ask. Someone might be willing to show you her answer to your question.

Despite all the necessary baby steps, it is OK to aim high. Always aim high. But you have to do all the baby steps in order to eventually get there. Don’t forget to be grateful every day to yourself for all the baby steps you have been doing. Even if you find out that some of the baby steps led into the wrong direction: you have learned from them. No problem. They might be even more useful than the ones into the direction that were obvious from your teacher’s point of view. Be prepared that you are going to experience times where all the baby steps seemingly do not get you anywhere. Be patient with yourself. However, don’t forget that it is hard work. And don’t forget that it is in your hands.

As long as you take your time and nourish your curiosity, you are on the road to success. Your success. Whichever way you define it.

My inspiration for writing this final chapter about learning how to program came from Scott Devine. Spend 15 minutes with Scott – yes, you are at the right spot – about learning to play music. Just apply all the tricks he tells you to programming: http://www.scottsbasslessons.com/beginners/the-most-important-bass-lesson-i-ever-teach.html

I wish all students a good start into the new study year.

Advertisements

Any Idea How to Spend Your X-mas?

Last year I asked you what you could tell your grandpa about studying in Graz and how
you spend all your time https://kcposch.wordpress.com/2015/12/20/telling-your-grandma-what-you-do-all-the-time/

In this blog, I would like to give you some hints how to be able to show off when you meet your colleagues in January again.

You might, for instance, read the book “Free Speech: Ten Principles for a Connected World” by Timothy Garton Ash. Timothy Garton Ash  is professor at the University of Oxford. You might also want to check out the web that comes along with the book: http://freespeechdebate.com/en/.  You might get a lot of good ideas about the current discussion on hate speech, and similar topics.

If you are more for novels, you might want to read “I hate the Internet” written by Jarett Kobek. There you can follow a story about what can happen if you tell the truth and the whole world can hear you. If you are not sure whether you should read this book, read a review here: https://www.theguardian.com/books/2016/nov/02/i-hate-internet-jarett-kobek-review

I wish you all Merry Reading and a Happy New Book.

LosFuzzys: An essential ingredient of TU Graz

LosFuzzys” is a group of young people interested in competing with others in so-called “capture-the-flag” competitions. Maybe you have heard about them. Maybe you read about them for the first time in this post. They are currently (Monday, Dec 19th, 2016) ranked at place 38 in the world. Tendency rising. Ten days ago, IAIK gave them a prize of 3000 Euros for their achievements.

I consider LosFuzzies an essential ingredient of our university life. Let me explain why.

  1. University is a place where imagination of the young ones meets experience of the old ones. The right mixture of these two ingredients creates new insights for humanity. Call it curiosity, call it knowledge, call it research.
    (http://mdg.vsb.cz/wiki/publ/A.N.Whitehead_on_the_function_of_a_university_.pdf)
  2. Some students, let’s call them “ordinary” students, quite often complain about their workload dominated by duties arising from day-to-day course work.
  3. Some teachers, let’s call them “ordinary” teachers, all too often complain about the seemingly too many lazy students not following their suggestions.
  4. Some students, let’s call them “extraordinary” students, use the available experience found at the university and embark on “making their own thing”. These are creators and not just followers.
  5. The students of (4) typically get together regularly and “do their thing”. They might, for instance, meet on Wednesday evenings in the IAIK seminar room, and train for the next capture-the-flag competition (https://ctftime.org/ctf-wtf/).
  6. These students do not need teachers for being active. Teachers noticing these students’ activities get rather worried when they see that students without the narrow guidance of teachers can create a working atmosphere in classroom far beyond the intensity of what a teacher might dream about having in her/his classroom.
  7. Students like those found in “LosFuzzies” obviously “burn” for a goal. The goal is twofold: Their intellectual curiosity is directed towards a concrete topic like “secure information systems”. As a group, they cooperate in becoming better. In addition to cooperation, their goal is also to become best by competing against others.
  8. Teachers like me, for instance, are amazed by the power emerging from the activities of such students as found in “LosFuzzys”; the reason for this amazement is that these teachers notice that they don’t have to pull anymore. All what is left for the teachers is to take care that the students’ energy drives this world to the better and not to the worse. It’s a question of ethics.
  9. A side effect of “burning” students is that they become experts and professionals in some area of expertise in a much shorter time than ordinary coursework can do. In the case of “LosFuzzys”, their expertise in understanding security and insecurity of IT-systems reaches far beyond of what can be taught in ordinary classes.
  10. As a teacher I feel lucky to have the guys of “LosFuzzies” in the room next to my office. I can feel the energy from this room whenever I am in my office. And as a teacher I sometimes dream that these were “my students”. What an arrogance.

row2
(photos by http://patrickklampfl.at/)

IAIK’s Systems on Chip: The class of 2016.

This course has reputation, and not too little.

The System-on-Chippers of 2016 are a group of 8 students plus their two teachers Mario Werner and Thomas Unterluggauer. Their project was to build a secure smart-home system.

Today, they have delivered their presentation including a live demo of the system. For me — and I am sure, for many others too — it was a day to be proud of our students.

In case you don’t know:

The course “System-on-Chip Architectures and Modelling” is a course in which a group of students has the opportunity to achieve one common class goal. We try to model real-life situations:

  • The course’s theoretical topics follow the project’s needs; not the other way round.
  • Every participant works on a different task; thus, everyone’s results count for the group.
  • The project has a limited time budget. Oh dear, the deadlines are hard.
  • Trainers and trainees work together in order to achieve a common goal. No “us” and “them”.

If you look carefully at the photo above — well, you don’t have to look carefully, it’s obvious even without looking carefully — you can see a lot more than the 8 student + 2 trainers.

We were glad to have visitors from St. Petersburg in Russia attending the SoC show. The visitors were five Master students with their professor from St. Petersburg State Polytechnical University: Iuliia, Anastasiia, Aygul, Tsagana, Iuliia, and Vadmi.

I must say that I really enjoyed this visit. As the host, I was proud to be able to provide “a good show” without any extra effort from my side. This is how it should be. The five students got entertained not only by the System-on-Chippers, but also by several members of LosFuzzys, the local capture-the-flag team that just got ranked top-notch.

Days like today are a professional feast for a seasoned university worker like me.

“The Magnificent Seven” at IAIK

We are proud to announce the winners of this year’s “Student Research Excellence Awards“:

  • Christian Kollmann
  • Daniel Kales
  • Christian Ertler
  • Michael Schwarz
  • Moritz Lipp
  • Klaus Wagner
  • Manuel Jelinek

(on the photo above from left to right).

In addition, a special award goes to “LosFuzzys”. More on LosFuzzys will come in an extra post.

We selected these 7 students not only for their excellent work within their Bachelor Thesis project or Master Thesis project, but also for their success in publishing their results at major international conferences.

By awarding students for excellent results we not only want to express our appreciation for the work of students, but would like to encourage others to follow suit. The achievements should exemplify that it is well possible to hit extraordinary top-notch levels in research within all the ordinary course work that needs to be done to finish some curriculum.

Do you wonder how to maximize your chances to get your own Student Research Excellence Award? A good starting point for getting this award in 2017 or the year after is to start research within a Bachelor Thesis project at IAIK. Right now we put together next semester’s participants for “Bachelor@IAIK 2017“. Get out your intellectual guns and aim high.

Photo: http://patrickklampfl.at/

 

Bachelor@IAIK 2017: Presentation on Dec 2nd, 12:00. IAIK, ground floor.

We invite students to participate in “Bachelor@IAIK 2017” in the spring semester 2017. Join us for getting your Bachelor-thesis project done.

On December 2nd we start “Bachelor@IAIK 2017”  with a presentation of the project. We are going to offer approximately 20 students to work on their Bachelor thesis with us.

This is the plan:

  • Dec 2, 12:00: Presentation of topics. Get informed. Location: IAIK, Inffeldgasse 16a, ground floor.
  • Dec 12-15: Join one of the meetings of our working groups. In case you found a theme, you might want to join the meeting of a thematic group. Meet people who understand your problem.
  • Dec – JanDecide whether you want to participate.
  • Feb 27 – March 10, 2017: 1st working block.
  • March 13 – April 7: weekly meetings in the writing lab
  • April 19 – April 28, 2017: 2nd working block.
  • April 28, June 9: final presentation.

We want you to be successful. Therefore we offer to

  • help you to research a topic,
  • help you to structure your project,
  • help you to become better in scientific writing,
  • show you how we work,
  • ask you to participate in our project meetings,
  • offer you to get to know us better,
  • offer you to discuss your ideas with us,
  • encourage you to master with us times which need tedious work,
  • explain to you what it means to work in science and engineering,
  • an much more.

Alternatively, you can always do your Bachelor Thesis with us any time, too. 
 Talk to one of the teachers from your courses at IAIK.

Who is going to be “Best Of IAIK 2016”?

As every year, we are going to award students for their excellent work at IAIK during 2016.

Join us on Friday, Dec. 2nd, 12:00, at IAIK’s foyer, Inffeldgasse 16a, ground floor, for the award ceremony.

By awarding students, we emphasize that we care about trying to be excellent.

The ceremony will be embedded in the presentation of next year’s edition of “Bachelor@IAIK”. In case you want to know more about “Bachelor@IAIK 2017”, you should not miss our presentation on December 2nd.

If you are not so inclined with future events — here are some links to past events for you:

https://kcposch.wordpress.com/2015/12/01/ta-ta-ta-taa-and-the-winners-of-best-of-iaik-2015-are/

https://kcposch.wordpress.com/2014/11/26/and-the-winners-of-best-of-iaik-2014-are/

https://kcposch.wordpress.com/2013/11/27/best-of-iaik-2013-and-the-winners-are/