0.1.3 Meet the instructors
Module 0. Introduction to Unix Tools
I’m your course instructor, Diomidis Spinellis. I’m a Professor of Software Engineering in the Department of Management Science and Technology at the Athens University of Economics and Business, Greece and a visiting professor in the Department of Software Technology at the Delft University of Technology. I have an MEng degree in Software Engineering and a PhD in Computer Science, both from Imperial College London and I’m a senior member of the ACM and the IEEE.
I’ve been working with Unix since the 1980s, when a fellow student told me that expert knowledge of Unix commands would be a life saver for swiftly completing our study’s assignments. I didn’t need much prodding, and spent a large part of the next couple of years exploring the capabilities of every Unix command I could lay my hands on, risking at times the wrath of our university’s system administrators. During that period I also tried to give to my PC running MS-DOS (Microsoft’s operating system before Windows) a Unix flavour, by, among other things, porting the Perl scripting language to it. A remnant from that work has survived as the Perl’s binmode statement. On my final study year, I found out that researchers at Berkeley were working to create an open source release of Unix, and re-implemented the sed stream editor as a contribution to that effort. If you’re using macOS or a BSD Unix variant, you’re running that code.
Fast forward to 2009–2011 when I managed the IT Systems at the Greek Ministry of Finance and to 2013 when I worked as a site reliability engineering senior software engineer for Google. Though both outfits used Linux, a Unix-like system, in very different and interesting ways, the skills I had acquired decades ago were still very much relevant. Furthermore, as an academic and a technical book author I’ve published more than 300 technical papers in journals and refereed conference proceedings and three widely translated books: Effective Debugging, Code Reading, and Code Quality. For the research associated with them and for their publication I’ve used thousands of Unix commands to analyse data, search for examples, and automate their production. Finally, Unix plays a key role for the software I’m developing, such as the git-issue Git-based issue tracker, the UMLGraph tool for the declarative specification of UML diagrams, the CScout C refactoring browser, the dgsh directed graph Unix shell, the Unix history scripts on GitHub, and the ckjm Chidamber and Kemerer Java metrics analyser. In all cases, I use Unix tools for testing, automating builds, continuous integration, documentation, and debugging.
In case you want to find out more, you can follow me as @CoolSWEng on Twitter, read my blog, or visit my personal web site.
Zoe Kotti holds a BSc in Management Science and Technology from the Athens University of Economics and Business. She is a Junior Researcher at the Business Analytics Laboratory of the Department of Management Science and Technology, AUEB. Her research interests lie in the areas of Data Science and Software Engineering.
Alexandra Feldman is a student in Computer Science and Engineering at Delft University of Technology and a teaching assistant for different courses. Her reseach interest lies around Blockchain and Data Science.
Unix Tools: Data, Software and Production Engineering by TU Delft OpenCourseWare is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Based on a work at https://online-learning.tudelft.nl/courses/unix-tools-data-software-and-production-engineering/ /