Category: Teaching

Distributed Systems reading resources

Helmut Neukirchen, 18. October 2022

As the CDK5 book starts to get outdated (and there is no update: the main authors all retired), we need to think about some replacement.

Some reading resources can be found at https://github.com/theanalyst/awesome-distributed-systems.

New LaTeX templates for theses at University of Iceland / LaTeX sniðmát ritgerðar/lokaverkefna Háskóla Íslands

Helmut Neukirchen, 25. March 2022

Finally, the new (2021 and later) thesis title page examples are available at the HÍ Corporate Design web page and I just finished creating a LaTeX template based on it.

You should find the most recent templates at https://gitlab.com/uice.

But you can also download it: UniversityOfIcelandMScThesisV2.0.1. (I have submitted it to Overleaf as a template.)

The PhD thesis template has also been updated: uiphdthesis_V2.1.0.zip. If you started already your PhD thesis, it is in principle enough to

  1. replace the old ui-phdthesis.cls by the new one and
  2. replace the two files HIlogo.pdf and UIblueribbon.pdf by banner.png
  3. add \thesislicense{All rights reserved} to your .tex file (or update to the license you want to make your thesis available).
  4. Also check the comments at the start of file uiphd_template.tex for possible further additions (\numberwithin and \UrlBreaks).
  5. In contrast to Version 2.0.0. version 2.1.0 moved the bibliography management out of the cls file into the tex file where BibLaTeX is now used

While the old template used the school-specific colors (e.g. VoN had orange), the new color scheme suggests to use these school-specific colors only internally, but work targeting people outside the university (such as a thesis) use always blue independent from the school (this was by the way already always the case with PhD theses).

The PDF version is used by a print shop when printing and binding the thesis: the normal M.Sc. thesis pages are printed using A4, but the cover page (with the blue) will be printed in A3, with the front page on one side and the back page on the other and the spine (bókarkjölur) in the middle (so in fact, that page is even bigger than A3 to accommodate the extra space for the spine). All the A4 pages are then glued into this A3 sheet. The inner side of the A3 remains blank: to simulate this in the PDF, the second page is simply empty (BTW: that empty page is missing in the official Microsoft Word template) and it is then followed by a page that serves as some inner title page, i.e. it repeats all the information from the title page, just with a slightly different layout and without the blue graphical elements. After that follows a page with copyright information, and only after that, your real contents starts.

This means, when you go to a print shop, the title page generated by you gets anyway ignored (and therefore, the LaTeX template does not even bother about generating a back page -- the print shops use the back page to add their name there).

But as the thesis is also electronically archived using the PDF that you submit, your self-generated PDF with the title page matters for that version.

The fact the Word template (to be used by students) looks less professional than the PDF (to be used by print shops), hints at the PDF version is the serious one (and I can only recommend to use not that Word template. If you use it, try match the PDF generated from my LaTeX template).

See my older post for further information.

Software Engineering versus Programming

Helmut Neukirchen, 24. February 2022

The book “Software Engineering at Google” (curated by Titus Winters, Tom Manshreck and Hyrum Wright, O’Reilly, 2020) is officially available for free online at https://abseil.io/resources/swe-book and I can only recommend reading it to get an idea of how Google delivers high-quality software. Of course, their solutions that fit a company as big as Google do not necessarily fit smaller companies.

As I did already in my post Why you should study Software Engineering cover the difference between Software Engineering and programming, I found it interesting that the above book covers it as well:

We believe it is important to differentiate between the related-but-distinct terms “programming” and “software engineering.” Much of that difference stems from the management of code over time, the impact of time on scale, and decision making in the face of those ideas. Programming is the immediate act of producing code. Software engineering is the set of policies, practices, and tools that are necessary to make that code useful for as long as it needs to be used and allowing collaboration across a team.
(“Software Engineering at Google” curated by Titus Winters, Tom Manshreck and Hyrum Wright, O’Reilly, 2020, p. 23)

For my taste, that quote does not cover enough human aspects (the nice thing about Software Engineering is that it does not only include the hard skills, but also soft skills), but that was in fact discussed already earlier in that book:

Another way to look at software engineering is to consider scale. How many people are involved? What part do they play in the development and maintenance over time? A programming task is often an act of individual creation, but a software engineering task is a team effort. An early attempt to define software engineering produced a good definition for this viewpoint: “The multiperson development of multiversion programs.” (There is some question as to the original attribution of this quote; consensus seems to be that it was originally phrased by Brian Randell or Margaret Hamilton, but it might have been wholly made up by Dave Parnas. The common citation for it is “Software Engineering Techniques: Report of a conference sponsored by the NATO Science Committee,” Rome, Italy, 27–31 Oct. 1969, Brussels, Scientific Affairs Division, NATO.) This suggests the difference between software engineering and programming is one of both time and people. Team collaboration presents new problems, but also provides more potential to produce valuable systems than any single programmer could.
(“Software Engineering at Google” curated by Titus Winters, Tom Manshreck and Hyrum Wright, O’Reilly, 2020, p. 4)

Want to study Computer Science, Software Engineering or Computational Engineering / Nám í tölvunarfræði, Hugbúnaðarverkfræði, Reikniverkfræði

If you want more information on our programmes:

Bachelor (B.Sc.)

Computer Science (Tölvunarfræði) -- we added recently the specialisation in Data Science

Software Engineering (Hugbúnaðarverkfræði)

Master (M.Sc.)

Computer Science (Tölvunarfræði)

Software Engineering (Hugbúnaðarverkfræði)

Computational Engineering (Reikniverkfræði)

Ph.D.

And of course, you can also do a PhD in any of these programmes. Before you apply, contact a professor: either by a personal visit or -- if you are located abroad -- by writing an old school paper letter (professors get hundreds of email with PhD applications where it is obvious that the same email was written to many professors and thus, these email are considered as spam -- but a paper mail makes an impress)!

Zoom Panopto integration

Helmut Neukirchen, 9. November 2021

Panopto can tell Zoom to copy Zoom meeting cloud recordings to Panopto. You can configure this automatic import/export by clicking in the very upper right corner of https://rec.hi.is/ on your user name and then select "User Settings".

University of Iceland is running Panopto with at least two different storage spaces: the old storage space used when logged-in to Panopto via UGLA (for Panopto videos accessible via UGLA) and the new storage space when logged-in to Panopto via Canvas (for Panopto videos accessible via Canvas).

On https://rec.hi.is/, you can in the upper right corner log out and log in to change between these two spaces. But you cannot copy videos between these two spaces -- but UTS help desk can do so.

For the Zoom integration, the problem is that recordings may end up in the wrong space: whatever the last log-in to Panopto was, sets the integration, i.e. tells Zoom where to store the video for all future Zoom session recordings. So take care that your last log-in was into the intended storage space before a Zoom cloud recording starts. (Or ask UTS help desk to fix it afterwards.)

PhD Defense Federated Access to Collaborative Compute and Data Infrastructures

Helmut Neukirchen, 29. June 2021

Shiraz Memon successfully defended his PhD thesis in Computer Science on Federated Access to Collaborative Compute and Data Infrastructures. The thesis covers how researchers can perform eScience by discovering services (such as accessing data and processing data) on remote research and e-infrastructures and authenticate (such as logging in order to use the service) and how authorization can be done (i.e. deciding which services are allowed to be used).

The thesis was streamed, Wed, 30. June 2021 starting from 09:30 (UTC), and the recording is available via: https://livestream.com/hi/doktorsvornshmedshirazmemon

PhD defense announcement

This PhD is an example of the collaboration between the Faculty of Industrial Engineering, Mechanical Engineering and Computer Science and Jülich Supercomputing Centre (JSC).

Members of the PhD commitee were Morris Riedel, Helmut Neukirchen, and Matthias Book, opponents were David Wallom and Shukor Abd Razak. The head of faculty, Rúnar Unnþórsson, was steering the defense.

Why you should study Software Engineering / Af hverju hugbúnaðarverkfræði

Helmut Neukirchen, 7. June 2021

Studying Software Engineering is important because Software is the future and future is starting right now. And someone needs to create all this software that is shaping our future.

Software Engineering is more than just programming, it rather looks at big picture , namely the whole life of the software: from the start where you need to talk to customers to find out what software they actually need over to the actual programming, user interface and user experience, quality assurance and this is all guided by project management where you need to make people work together.

Software Engineering covers so many different aspects that students need to come from all kinds of different backgrounds:
female and male, those who are good at math, those who are good at communicating with other people, those who are picky about details, those who are creative. Essentially everyone!

When you start studying Software Engineering, you do not need to be able to program: you will learn that in our courses. But you need to be able to talk to other people and at the same time do not fear thinking like an engineer, such as doing math and applying systematic processes!

The nice thing about developing software is that only your imagination is the limit: you can create everything just by turning your mind into code and then it runs and you can see it immediately working. This is so rewarding!

Studying Software Engineering at the University of Iceland is very practical: you do not only learn the theory, but also apply it in the courses. For example, in our Bachelors program, there is a Software Engineering project that spans a whole full year.

Those who graduate from here, will find easily a job at a good salary and can work in fact in all kinds of different fields: be it banking, insurance, health, industry, administration, tourism, gaming, even arts:
simply everywhere, Software is nowadays needed!

Further information

If you want more information on our Software Engineering programmes:

Bachelor (B.Sc.)

Software Engineering (Hugbúnaðarverkfræði)

Master (M.Sc.)

Software Engineering (Hugbúnaðarverkfræði)

Ph.D.

And of course, you can also do a PhD in any of these programmes. Before you apply, contact a professor: either by a personal visit or -- if you are located abroad -- by writing an old school paper letter (professors get hundreds of email with PhD applications where it is obvious that the same email was written to many professors and thus, these email are considered as spam -- but a paper mail makes an impress)!

If you rather want to study Computer Science or Computational Engineering

While the above text was intended to convince you studying Software Engineering, you might still be interested in our other programmes:

Bachelor (B.Sc.)

Computer Science (Tölvunarfræði) -- we added recently the specialisation in Data Science

Master (M.Sc.)

Computer Science (Tölvunarfræði)

Computational Engineering (Reikniverkfræði)

Salary

For a salary (typically distinguished: base salary and overall salary with the typical amount of paid overtime – overtime is not always paid, though) outlook, you can find surveys on Icelandic salaries at unions (stéttarfélag), e.g.:

  • VR (starfsheiti “Tölvunuarfræðingur”)

and at professional associations, e.g.:

In addition there is also on interesting blog post on the different companies and their salaries (Netherlands -- Iceland might be different).

But be aware that salary alone is not everything, but work-life balance counts or that big and old companies are typically less chaotic (i.e. have well defined procedures) which may give you as a beginner more guidance, but you might at the same time fell more restricted.

HÍ eða HR, tölvunarfræði eða hugbúnaðarverkfræði / University of Iceland vs. Reykjavik University, Computer Science vs. Software Engineering

Helmut Neukirchen, 5. March 2021

HÍ eða HR / University of Iceland vs. Reykjavik University

Often, the question arises whether University of Iceland (Háskóli Ísland (HÍ)) or Reykjavik University (Háskólinn í Reykjavík (HR)) is better for studying Computer Science (tölvunarfræði) or Software Engineering (hugbúnaðarverkfræði).

In my experience both universities do not differ that much -- on the surface things might look different, but when you look closer, they are not that different. As an example: HR advertises 3 week intense courses to apply the theoretical foundations learned in earlier courses, whereas at HÍ, the application of the learned theory is built into the courses themselves: either as a project at the end of each course or a project running even throughout the whole course semester.

However, there is one difference (in addition to paying high tuition fees at HR): the diversity choice of courses from other disciplines. At HÍ, you can take non-CS or non-SE courses as part of your studies -- and these can not only be other STEM (Science, Technology, Engineering, and Mathematics) courses, but also, e.g., foreign languages. As HR is quite limited in the number of course due to their limited number of study programmes, HÍ has a big advantage there.

Tölvunarfræði eða Hugbúnaðarverkfræði / Computer Science (CS) vs. Software Engineering (SE)

Another question is about the difference between Computer Science (Tölvunarfræði) and Software Engineering (Hugbúnaðarverkfræði): while both are in essence about programming, Software Engineering goes beyond as it has the "big picture" in mind -- not only, e.g., the big picture of a software architecture, but also related to management, e.g. project management and quality management. For example, SE students take courses from Industrial Engineering on project management and quality management (in addition to software quality management offered by me). When it comes to stakeholder relations (one of the biggest problems in software project are unclear requirements where the developed software does not meet the needs of users) and to user experience, SE requires many soft skills -- including psychology (e.g. work psychology and human-computer interaction and usability).

One might be tempted to say that CS is maybe for the nerds and SE for those who can talk to people and lead projects. But in fact, SE is not solely about soft skills, but you need both: soft and hard skills. Being an Engineer is an officially licensed professional title and as such, the regulations that apply to the contents of any Engineering programme in Iceland apply as well to Software Engineering, e.g. taking a certain amount of Math and Science courses which is the exact opposite of soft skills. So, to be a good Software Engineer you need to have both talents: people and tech.

Note that even if you enroll in our Computer Science programme, it allows so much freedom in selection of courses that you could take the same courses that a Software Engineering student has to take. (However, in this case, you will not be entitled to apply for a license as professional Engineer as you did not study any Engineering, but a Science, namely Computer Science.)

Further information

If you want more information on our programmes:

Bachelor (B.Sc.)

Computer Science (Tölvunarfræði) -- we added recently the specialisation in Data Science

Software Engineering (Hugbúnaðarverkfræði)

Master (M.Sc.)

Computer Science (Tölvunarfræði)

Software Engineering (Hugbúnaðarverkfræði)

Computational Engineering (Reikniverkfræði)

Ph.D.

And of course, you can also do a PhD in any of these programmes. Before you apply, contact a professor: either by a personal visit or -- if you are located abroad -- by writing an old school paper letter (professors get hundreds of email with PhD applications where it is obvious that the same email was written to many professors and thus, these email are considered as spam -- but a paper mail makes an impress)!

Erasmus+ Exchange Computer Science University of Iceland / skiptinám tölvunarfræði Háskóli Íslands

Helmut Neukirchen, 10. February 2021

The Computer Science department of the University of Iceland is part of Erasmus+ and as such it is possible to have exchange of students (and also teachers) with other universities abroad (incoming and outgoing).

For an exchange, a bilateral contract between the two universities needs to be set up. Currently, we have the following contracts, but new contracts can be set up on demand:

Johannes Kepler University Linz
University of Antwerp
ETH Zürich
Universität Duisburg Essen
Georg August Universität Göttingen
Technical University of Munich
Universidad Complutense de Madrid
Université du Luxembourg
University of Groningen
Lodz University of Technology
Glasgow Caledonian University

In particular for German speaking universities, I can serve as a contact point.

Master in Computer Science, Software Engineering, or Computational Engineering

Helmut Neukirchen, 24. April 2020

We have some overview videos for students who are in interested to enroll in our Master (M.Sc,) programmes in Computer Science (Tölvunarfræði), Software Engineering (Hugbúnaðarverkfræði), or Computational Engineering (Reikniverkfræði):

Master in Computer Science (Meistaranám Tölvunarfræði)

Master in Software Engineering (Meistaranám Hugbúnaðarverkfræði)

Master in Computational Engineering (Meistaranám Reikniverkfræði)

Other means of remote communication with students

Helmut Neukirchen, 15. March 2020

Discussion forum: Piazza

Most Computer Science teachers uses since years the discussion forum Piazza.com that is tailored for university courses. Students can ask there, e.g. anonymously to lower the bar, questions concerning lectures, assignments, organisational issues, etc..

Instant messenger: Riot

For your PhD students, you may want to have a means of remote communication between email and phone: a chat/instant messenger.

  • If you are fine with awkward to use software and have money (or your institution used tax money to pay), you can use Microsoft teams,
    • Caveat: Microsoft, one of the biggest cloud computing providers on Earth, cannot deal with increased load due to COVID: check status
    • If you just need the chat and all your team members have anyway access, it is fastest to use Microsoft Team for this.
  • if you sold your soul (and data) to, e.g. Facebook, you can of course use their messengers.
  • if you like easy to use software and have money, you can use Slack,
  • if you like easy to use software and are convinced that free and open-source software is better, you use Riot: https://riot.im. Riot runs in the browser and has mobile apps.

As with all instant messengers: disable instant notifications -- they distract too much. Instead look only after messages when you do a break/switch between tasks. If your PhD students have something really urgent (the lab is on fire), they can still call you.