Teaching
We teach undergraduate and graduate courses offered in the DIRO programs.
Undergraduate course
-
IFT 1015 Programming I
- Lecturer Louis-Edouard LAFONTANT
- Tools and language Codeboot, Python
- types and expressions
- control flows
- functions
- array and structure
- file manipulation
- exceptions and error handling (intro)
- recursivity
- tests
The goal of this course is to introduce students to the fundamentals of programming with a focus on imperative language. This course also aims to give students a practical experience in Python.
-
IFT 1025 Programming II
- Lecturer Michalis FAMELIS
- Tools and language Java, JavaFX, Git
- OOP concepts: class & object, encapsulation, inheritance, interface
- server-client architecture
- data structures and algorithms (intro)
- file handling and serialization
- exceptions and error handling
- multithreading
- event-driven programming
- file manipulation
- error handling
- graphical user interface (GUI)
The goal of this course is to introduce students to the fundamentals of programming with a focus on imperative language. This course also aims to give students a practical experience in Java.
-
IFT 2255 Software engineering
- Lecturer Louis-Edouard LAFONTANT
- Tools and language UML diagrams, Java, JUnit, Git
- Software processes
- Software engineering workflows
- Software architecture
- OOP
- UML
- TDD
The goal of this course is to introduce students to the software engineering discipline focusing on its techniques and methodologies. The course covers the theory of software engineering, but also gives students a practical hands-on experience on collaborative development of a software they will build.
-
IFT 3911 Software analysis and design
- Lecturer Eugene SYRIANI
- Tools and language UML diagrams, OCL, Yakindu, Java, JUnit, Git
- Principles of good OO design
- UML
- OCL
- Code generation
- Design patterns
- Statecharts
- Petrinets
- Evaluation and analysis of software design
The goal of this course is to give students an in-depth insight in the nature of object-oriented analysis and design. At the end of the course, students will have gained a solid experience in developing non-trivial software. The focus of this course is on design rather than implementation.
-
IFT 3913 Software quality and metrics
- Lecturer Michalis FAMELIS
- Tools and language Java
- software quality
- quality assurance
- quality assurance plan
- quality control techniques (tests, code review, inspections)
- software quality standards
- measure theory
- product and process metrics
- software quality metrics
The goal of this course is to introduce students to software evaluation techniques and software quality metrics.
Graduate course
-
IFT 6253 Model-based software design
- Lecturer Eugene SYRIANI
- Tools and language UML, AToMPM, Eclipse, Ecore, ATL, Xtext
- Modeling languages
- Domain-specific languages
- Metamodeling
- Model transformation
- Analysis techniques on models
- Model simulation
The goal of this course is to familiarize students with techniques in modeling at different levels of abstraction, such as in model-driven engineering and in simulation-based design.
-
IFT 6755 Software analysis
- Lecturer Michalis FAMELIS
- Tools and language Z3, Alloy, NuSMV
- Propositional logic and SAT-based analysis
- First order logic and analysis
- Temporal logic
- Verification by model checking
- Empirical methods in software engineering
- introduction to software product line.
The goal of this course is to familiarize the students with formal methods used to analyze software, such as propositional logic, temporal logic and model checking.