Section outline

    • Software Engineering (NTUA ECE course 3205)

      ERASMUS course offering 2026-2027 

      Software Engineering is the field of Computer Science that deals with concepts, techniques, methodologies, practices, and tools for the systematic, methodical, and quantifiable specification, architecturing, design, implementation, testing, verification and maintenance of high-quality software systems, within given budget and temporal constraints, in accordance with engineering principles. The course covers a wide range of subjects, including software specification, architectural and detailed design, implementation, verification and validation, project management, and quality assurance. Modern tools and environments are used for documentation, diagrams, code management, code generation, testing, and AI.

      This course is intended for advanced undergraduate students in Computer Science who have successfully completed at least three years of studies; participants must have a good knowledge in the following areas:
      • Principles of computer programming, with proficiency in C and/or C++
      • Programming methodologies and Object-Oriented Programming in C++ and/or Java
      • Algorithms and data structures using C, C++, or Java
      • Modern programming languages, such as JavaScript and/or Python
      • Relational database systems and SQL, with practical experience in PostgreSQL or MySQL
      • Fundamentals of network programming
      • Non-relational database systems, such as MongoDB
      • Source code management (git) and collaboration (GitHub)

      Starting from academic year 2026–2027, the course content is being dynamically adapted to the new conditions arising from the near-universal use of AI tools for source-code generation, as well as for supporting the execution of several other tasks throughout the software lifecycle. In this context, lectures and reference textbooks and materials covering “traditional” Software Engineering topics, aim to deepen students’ understanding of fundamental concepts, such as those related to software requirements, specification, architecture, quality management, and documentation. Code development, testing, software modeling, as well as other tasks, are redefined as activities that will be carried out, at least partially by AI tools, always with human supervision, critical evaluation, refinement, and ultimate acceptance and responsibility. Among the course objectives are the assessment of the actual added value of AI across the software lifecycle, as well as the exploration of the evolving role of Software Engineers in the future.

      As part of the course, students work in teams on a semester-long project, the topic of which they will define themselves, following with specific guidelines. The project servers as an opportunity to apply existing knowledge in programming, databases, web services, apis, security, user interfaces, and other related areas, using modern software documentation and development tools, all supported by AI. The student groups retain oversight and responsibility in defining the relevant tasks and critically evaluating the outputs produced by AI tools. Progress is monitored online using integration with AI skills, as well as code and project management tools offered by GitHub.


      The course materials are lecture slides, reference textbooks and online resources. Moodle (helios.ntua.gr) is used as the online LMS for communication, lecture materials, etc. Additional slides and online resources are offered to Erasmus students. The reference textbooks are as follows:
      • Ian Sommerville, Software Engineering 10th edition 
      • Roger Pressman, Software Engineering - a practitioner's approach, 7th edition

    • The project paper can be downloaded from here.

    • Access permission required, please request access

    • The attached contains the calendar (.ics) files for 3 scheduled meetings, aiming to sit together discuss questions regarding the implementation of the semester project. All the meetings will take place at "Room 13, Phase 2" of the ECE new building. 

      Participation is not compulsory. However, assuming that you have been working on the project and you have specific questions regarding technical challenges you go though, you are advised to attend.