Teaching

We teach undergraduate and graduate courses offered in the DIRO programs.

Undergraduate course

  • IFT 1015 Programming I

    • 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

    • 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

    • 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

    • 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.

    • 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

    • 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

    • 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.