open menu
B3. Software engineering and programming languages
Programming languages are a dynamic field dedicated to advancing the design, implementation, and usability of programming languages and related tools. Research in this field includes topics like virtual machines, untyped languages for rapid and flexible reuse, integrated development environments to enhance productivity, debuggers for effective error detection, metaprogramming systems for generative progrmaming, static program analysis to better understand program behavior, parallel programming languages and systems for optimal resource utilization, and visual programming systems for learning and for more intuitive development. These investigations drive innovation, shaping the future of software development and enabling efficient, reliable, and user-friendly programming experiences.

Software engineering is a critical domain encompassing vital aspects of efficient software development. Design by Contract emphasizes precise specifications for code behavior, enhancing robustness and reliability. Software architecture recovery involves reverse engineering existing systems to comprehend and likely improve their architecture. Source code visualization aids in comprehending complex codebases for better maintenance and development. Software reuse promotes the efficient utilization of existing solutions, saving time and resources and improving robustness. Rapid architecture design tools facilitate fast iterative design at the early stages. Code smell analysis identifies suboptimal code structures, guiding refactoring for improved maintainability and evolution. These elements collectively refine software engineering practices, promoting more reliable and scalable software solutions.
Faculty by this area of research:

In this page you will find the research activities that are currently being carried out in CSD according to the research areas that the faculty members are actively contributing to.

Research Areas Faculty Member
A1. Computer architecture and microelectronics
A2. Computer systems, parallel and high performance computing
A3. Computer security and distributed systems
A4. Computer networks, mobile computing, and telecommunications
B1. Algorithms and systems analysis
B2. Databases, information and knowledge management
B3. Software engineering and programming languages
B4. Artificial Intelligence and machine learning
C1. Signal processing and analysis
C2. Computer vision and robotics
C3. Computer graphics and human-computer interaction
C4. Βioinformatics, medical informatics, and computational neuroscience

The Graduate Studies Program in the Computer Science Department at the University of Crete is carried out in close cooperation with the Institute of Computer Science (ICS) of the Foundation of Research and Technology (FORTH). This collaboration includes: 

(1) Researchers and scientists from ICS-FORTH may undertake the teaching of graduate courses. 


(2) Researchers from ICS-FORTH may participate in the supervision of M.Sc. and Ph.D. theses, after approval by the Coordinating Committee for Graduate Studies and by ICS-FORTH. 

(3) After application by a supervisor or by the Coordinating Committee for Graduate Studies, and assuming permission is granted by ICS-FORTH, graduate students may be given access to the hardware, software and in general the laboratory facilities at ICS where they may carry out part or all of their research. 

(4) The Department and ICS-FORTH may jointly invite professors and researchers from other institutes of higher education within Greece or in other countries to give seminars, lecture series, even complete courses, and to collaborate research-wise with researchers and graduate students of the Department and of ICS-FORTH. 

(5) The Institute of Computer Science at FORTH provides a number of bursaries for graduate students and supports financially collaboration of graduate students with other Institutes of Higher Education and Research Centers, within its limits and in accordance with the familiar stipulations.