Vadim Zaytsev aka @grammarware

Software Engineering — a Master of Science programme at the UvA UvA MSc SE

Software Engineering is a one-year programme at the University of Amsterdam, accepting Bachelor-level students with interest in computer science yet more amused by its technical side, the engineering aspects, as well as by the human factors playing a role in the software development process. It is promised and assumed that the graduates of the programme are eventually suitable to work as lead developers, senior software engineers, technical advisors and industrial researchers.


Publications based on student work (by acceptance date)

Publications / presentations on educational topics (by presentation date)

Supervised students (by defence date)

  1. Ovidiu Roșu. Grammatical Inference from Source Code Written in an Unknown Programming Language. April–June 2014. (C++ code) (Rascal code)
  2. Christian Patrik König. Static Code Analysis for PHP. March–August 2014. Hosted by Guidion.
  3. Eenass Butrus. Satisfying Coverage Criteria by Grammar Mutations and Purdom’s Sentence Generator. April–August 2014. (Java code)
  4. Varvara Tzika. Ranking Classifieds at Query Modeling, Retrieval Methods, Data Fusion and Result Diversification. June–August 2014. Hosted by Marktplaats. Co-supervised with Manos Tsagkias and Ton Wessling.
  5. Xander Horjus. UvApp: Challenges in Mobile Software Engineering Examined. April–August 2014. Hosted by UvA ICTS. Co-supervised with Tom Kuipers and Alan Berg.
  6. Ammar Hamid. Detecting Refactorable Clones Using PDG and Program Slicing. April–August 2014. (Scheme&Ruby code)
  7. Lulu Zhang. Implementing a PDG Library in Rascal. April–September 2014. (Rascal code) (Java code)
  8. George Pachitariu. Data Replication Algorithms in Distributed Databases. April–October 2014. (Java code)
  9. Sven Rohde. Test-suite for Automated Invariant-based Testing of AJAX Web-applications. April 2014–March 2015. Hosted by Guidion. (Java code)
  10. Bas Meesters. The Visualisation of Symbolic Transition Systems. April–July 2015. Hosted by Axini. Co-supervised with René de Vries.
  11. Kevin Adegeest. Automated Detection of Unused CSS Style Rules by Crawling Web Applications. April–August 2015.
  12. René Bulsing. Detecting Refactored Clones with Rascal. April–August 2015. (Rascal code)
  13. Nian Liu. User-Centered 3D Manipulation Model for Scientific Visualization. April–August 2015. Hosted by CWI. Co-supervised with Robert van Liere. (Java code)
  14. Leonard Punt. The A-B*-A Pattern of Undoing Style in Cascading Style Sheets. April–August 2015. Hosted by Q42. Co-supervised with Sjoerd Visscher. (front page) (JavaScript code) (data set) (repo)
  15. Daniel Conde Moya. NATURALIZE: A replication study. April–August 2015. Co-supervised with Alexander Serebrenik.
  16. Boryana Goncharenko. Detecting Violations of CSS Code Conventions. April–August 2015. (Python code) (Sublime plugin) (PyPi)
  17. Axel Polet. Re-engineering Cascading Style Sheets by Preprocessing and Refactoring. April–August 2015. (Java code)
  18. Sebastian Hantich. Indoor Positioning using Location Fingerprinting. April–August 2015. Hosted by bunq. Co-supervised with Esan Wit. (Data set)
  19. Tuba Kaya Chomette. Automatically Detecting ORM Performance Anti-Patterns on C♯ Applications. March–September 2015. Co-supervised with Raphael Poss and Giuseppe Procaccianti. (C♯ code)
  20. Nikola Vavrová. Python Design Defect Detection. April–December 2015. (Java code) (ANTLR4 grammar)
  21. Juriaan Kennedy van Dam. Identifying Source Code Programming Languages through Natural Language Processing. May 2015–January 2016.
  22. Timon Dominique Langlotz. Event Detection Using Machine Learning Classifiers in the Context of Real-World Objects. April 2015–January 2016. Hosted by Peerby. Co-supervised with Eelke Boezeman.
  23. Mark Suurland. Replication: Necessary and Neglected? An Empirical Study of Internal Documentation in Agile Software Development Teams. April 2015–March 2016. Hosted by Rabobank. Co-supervised with Wil Leeuwis and Onno Verdonk.
  24. Nico de Groot. Analysing and Manipulating CSS using the M³ Model. April–July 2016. (Rascal code) (Java code) (data)
  25. Gorjan Jovanovski. Critical CSS Rules: Decreasing Time to First Render by Inlining CSS Rules for Over-the-Fold Elements. April–July 2016. Hosted by The Next Web. (node.js code) (data)
  26. Merijn Wijngaard. Dependence Analysis in PHP. April–August 2016. Hosted by Moxio. Co-supervised with Mark Hills and A. Boks.
  27. Sven-Erik Haitjema. Wireless Sensor Networks. January 2014–August 2016. Hosted by Digital Life Centre. Co-supervised with Ben Kröse.
  28. Ton Heijligers. Statistical Lexical Analysis. January 2016–April 2017.
  29. Mats Stijlaart. Towards a Catalogue of Grammar Smells. January–August 2017. (Rascal code)
  30. Jelle van Noord. Extended Taxonomy of Grammar Smells. January–August 2019. Hosted by Raincode Labs. Co-supervised with Clemens Grelck.
  31. Tom Freijsen. Language-independent Detection of Complex Source Code Mutations. January–August 2019. Hosted by Raincode Labs. Co-supervised with Clemens Grelck and Johan Fabry.
  32. Ewoud Bouman. Testing COBOL Compilers using Metamorphic Relations. January–August 2019. Hosted by Raincode Labs. Co-supervised with Clemens Grelck and Johan Fabry.
  33. Aynel Gül. Testing HLASM Compilers with a Mutative Fuzzing Approach. January–October 2019. Hosted by Raincode Labs. Co-supervised with Clemens Grelck.
  34. Felix Barten. Python Code Smell Analysis. Finding Hidden Code Smells. January 2018 – May 2020. (Java code) (Rascal code)
  35. Alberto Martínez de Murga Ramirez. Dead Code Detectionon Strict ECMAScript 6 Projects. January 2017 – August 2021. (TS code)
  36. Eric van der Woude. Retargeting a Compiler for a Different Platform. January–November 2021. Co-supervised with Johan Fabry.


Current students (by start date; dim if not the main supervisor)

The page is maintained by Dr. Vadim Zaytsev a.k.a. @grammarware. Last updated: November 2021.