My story (why I went for a PhD)

Let's start with the fact that in my opinion, in 99% cases, going for a PhD is a waste of time. First of all, the courses offered there do very little to expand what we should already know with a master's degree. Secondly, the scholarship (which is paid to everyone) is not even enough to rent a studio apartment (at least in 2019-2024 in Wrocław it was). This forces PhD students to take up full-time work in the private sector or to live on the support of their parents for another 4 years (or maybe even more). Thirdly, the PhD degree itself does not give us anything, apart from the fact that we can find employment at universities for the minimum wage.

Okay, now that you know that I think this is nonsense, I'll tell you why I decided to do it. Let's start this story from the beginning. When I was in high school, the Faculty of Fundamental Problems of Technology at the Wrocław University of Science and Technology organized activities to encourage students. Since I was in the mat-inf class, our class was chosen for this activity. Throughout the semester, once a week we were told about computer science and agitated about the superiority of WPPT over other departments teaching computer science. I was incredibly lucky to draw it then Professor Jacek Cichoń. The professor talked to us about algorithms in an incredibly interesting way, showing us some simple problems and their various solutions. Some were so slow that we would never get the result, others were so fast that the result appeared on the laptop screen in less than a second. After the first class, I knew that I wanted to study algorithmic computing at WPPT. I knew it wouldn't be easy. In high school, they taught me how to program in C (programming itself was taught very poorly) and how to implement several well-known algorithms. I knew it wasn't enough. I learned programming in C and C++ on my own and explored algorithms and data structures by reading "Introduction dabout algorithms. 

The studies went very well, it was difficult at times, but you could easily pass. I had a lot of fun learning new things. Interestingly, it turned out that the programming skills I had acquired were sufficient to easily complete all C/C++/JAVA tasks during the first two semesters. Because programming courses focused on things I already knew, I made the task lists more difficult by implementing better algorithms and further optimizations so that the program ran faster than the instructor predicted in the task. My lecturer on the basics of object-oriented programming – doctor Wojciech Macyna seeing my interest in playing with algorithms and programming, he invited me to research indexing databases on SSD drives. Throughout the semester, we were trying to figure out how to create a good data structure that would take advantage of the potential of SSDs. In the end, we did it, we successfully completed the research by designing the FA-Tree structure (along with its implementation in C, which I rewrote during my PhD into C++). I liked conducting scientific research so much that I already knew that I wanted to complete third-cycle studies. 

And that's it, that's my whole PhD story. Would I choose this path again? It's hard to say, time will tell whether the PhD will be useful for something.

My scientific interests

I have always been interested in low-level programming in C and C++. I am familiar with the operation of the memory allocator, scheduler and file system, and my best memory is working as a Linux Kernel Developer. For this reason, I decided to look for a field of theoretical computer science in which I could use my knowledge and continue playing with low-level programming. It turned out that quite a rich area of research are data indexing algorithms on specific memory models, such as new SSD drives or Intel Optane PCM. Research in this area involves creating new data structures (indexes) that will be adapted to the characteristics of the new memory.
 
As a result of scientific research together with Dr. engineer Wojciech Macyna, we wrote the following articles:

My classes

As a student of a doctoral school, and later as a teaching and research assistant, I conducted laboratories in the following subjects:

  • Object-oriented programming (C++/JAVA)
  • Computer Architecture (C)
  • Concurrent programming (C/ADA/GO)

If you have ever studied computer science or related fields at PWR, you know that laboratories usually involve handing in lists of tasks you have prepared at home. I consider it a completely wasted potential of these classes, after all, the laboratories should expand the lecture with another portion of knowledge, this time PRACTICAL. For this reason, in my laboratories, apart from handing in lists, we always tried to learn something new, often these were programming elements needed in the process of getting a job, required by corporations during recruitment interviews.

I won't write here what exactly I taught during the labs, if you want to learn something, visit my website blog, where I gradually add new courses (courses are unlocked after creating the entire course).

Below is a copy copied from polwro opinions about my classes:

Student
Student
Read More
Course: Programming course - L
Descriptive rating: Great presenter

Classes with M.A. Kukowski in the summer semester 2019/2020 were held remotely, using Discord. The host provided three two-hour slots a week in which you could complete task lists. If someone did not have such an opportunity, they could also simply send the solutions by e-mail. Mgr Kukowski was simple-minded, he published good advice on programming style (which was a significant extension of Dr. Macyna's lectures), and later, of course, required following them. In case of doubts, you could write a private message to the host on Discord, he usually replied quickly, often sending sample programs explaining a given topic. I think that with a clear conscience I can recommend Mr. Kukowski as a great, knowledgeable and straightforward leader.
Student
Student
Read More
Course: Programming course - L
Descriptive rating: brilliant

Demanding much more than Macyna, but as he explains! Well, I guess no one had so much time devoted to students. He gave us a lot of materials, examples and tips. If you had questions, you wrote to him at any time of the day or night and he always found time.
Student
Student
Read More
Course: Concurrent programming - L
Descriptive rating: Kukos TOP

Concurrent programming laboratories conducted by M.A. Kukowski were held on Teams. During the first few classes, the instructor gave mini-lectures during which he discussed basic concurrency problems using examples in C, Ada and Go. It was obvious that Mr. Kukowski knew his stuff and wanted to provide us with additional information, and he did it in a very factual and pleasant way. You could really learn something there, and it's a pity that the presenter didn't give regular lectures on concurrent programming. The handing in of the lists, unlike in Dr. Kik's and Dr. Gębala's groups, took place entirely during classes. Everyone presented their solutions completely publicly, which I found a bit stressful at first, but in the end it wasn't. However, it was possible to pass through the next person more quickly because there was no need to discuss the same mistakes repeatedly. Mgr Kukowski assessed everything that was not directly related to concurrency very liberally, he never deducted points for trivialities or bad code design. The teacher sometimes extended the lists provided by the lecturer (for example, when Dr. Kik allowed deadlocks, i.e. a program that did not work properly, M.A. Kukowski showed us a solution to this problem and banned deadlocks) - but then he extended the deadline for submitting the list. The instructor was very straightforward, sometimes he increased the grades so that we didn't have to worry about the final test with Dr. Kik (the laboratory was responsible for 85% of the final grade in the course). The only hiccup in my group occurred when two people were caught completely plagiarizing their solutions from other people. The second time, M. Kukowski got very angry and said that he would not raise the final grades anymore, but in the end he probably did not fulfill his threat 😉 . I sincerely recommend this presenter. It says a lot about him that his group filled up quickly during registration. Really, when it comes to conducting classes - Kukos TOP!
Student
Student
Read More
Course: Concurrent programming - L
Descriptive rating: He showed class again.

This is my second semester with this brilliant man. He was able to fix every flaw of Dr. Kik by giving his own lectures in the labs, which allowed us to gain a much greater understanding of concurrent programming problems. I don't know another such ambitious person at the University of Technology - even though he works full-time and is pursuing a PhD, he is able to give his all in 100% and look for additional materials for us, or answer any (course-related) questions in less than 24 hours. He judges gently when it comes to the structure of the code itself, although he will sometimes comment if something is wrong - when it comes to the operation of the program, he is very fair - it works to the max, if it doesn't work, he will lower it or even reset it (he warns about it in advance, e.g. allowed deadlock, while in other groups the lab technicians did, but he gave us an example strategy on how to avoid it).
Student
Student
Read More
Course: L programming course
Descriptive rating: Boss

If you want to get a lot out of the labs, go to him. He gives mini-lectures to supplement knowledge. It is not easy to obtain the maximum mark, because it requires compliance with the "standards" previously discussed by him and he checks each program individually. However, if you have any problems with the code, you can write him an email and he will definitely help. If you want to learn, and not just pass, I highly recommend Dr.
Student
Student
Read More
Course: Computer Architecture and Operating Systems - L
Descriptive rating: Unrivaled presenter

Michał Kukowski, M.A., during classes in both semesters that I attended, was very involved in providing practical knowledge that was missing in lectures. Often during the laboratories there was a short lecture on tasks, which was about how to do these tasks really well and reliably. It is worth emphasizing that Mr. Kukowski is a very communicative person who is excellent at translating and has practical knowledge because he works in an IT company. When assessing tasks, he always explained what was wrong and how it could be done better. I highly recommend this lecturer to people who want to gain a lot of additional and practical knowledge that they will most likely not see during the lecture.
Student
Student
Read More
Course: Computer Architecture and Operating Systems - L
Descriptive rating: great presenter

The laboratories conducted by Dr. Kukowski were for me (as well as for most of my colleagues) the highlight of the week, and I always attended them with great eagerness. During the classes, the doctor developed the topics discussed during the lectures so that after a solid year of work, he would be well prepared to enter the labor market. The doctor has very extensive competences in programming, computer architecture and other areas related to computer science, which he willingly shared with students. Some of the more important tasks were significantly expanded by the course instructors, of course for those interested. The aim of these tasks was to familiarize us with various types of tools and technologies that are very useful and widely used in today's corporations. There was a relaxed and friendly atmosphere during the classes, which allowed us to gain valuable knowledge in the company of jokes and laughter. If you had any questions, you could write an e-mail, and the doctor usually responded quickly and very professionally. If you are an ambitious person and want to learn a lot about the IT world and gain information about what it's like to work in companies from the inside, I definitely recommend working with this person. You can't make a better choice!
Previous
Next

My doctoral dissertation