Génie logiciel / Software Engineering
CSI4106 INTRODUCTION TO ARTIFICIAL INTELLIGENCE (3cr.)
Basic concepts and methods of Artificial Intelligence. Representation of knowledge. Natural language processing. Games and search strategies. Planning. Deduction and reasoning. Machine learning. Basic notions of expert systems.
CSI4506 INTRODUCTION À L’INTELLIGENCE ARTIFICIELLE (3cr.)
Concepts et méthodes de base de l’intelligence artificielle. Représentation des connaissances. Traitement du langage naturel. Stratégies de jeux et de recherches. Planification. Raisonnement et déduction. Apprentissage. Notions de base des systèmes experts.
CSI5109 (COMP 5701) SPECIFICATION METHODS FOR DISTRIBUTED SYSTEMS (3cr.)
Concepts of process algebras, specially with relation to the specification language LOTOS. Equivalence concepts: observation equivalence, testing equivalence. Data algebras. Rewriting systems. Verification of specifications. Specifications styles. Applications to distributed systems: communications protocols, telephone systems. Related models CSP, CCS, ACP. Relation to temporal logic and model checking.
CSI5110 (COMP 5707) PRINCIPLES OF FORMAL SOFTWARE DEVELOPMENT (3cr.)
Methodologies in formal software specification, development, and verification. The use of theorem proving, automated deduction, and other related formal methods for software correctness. Applications in program verification, mobile code safety, and protocol verification.
CSI5111 (COMP 5501) SOFTWARE QUALITY ENGINEERING (3cr.)
Software quality issues. Quality components and metrics. Software process quality. Software reliability engineering. Software design for testability. Requirements capture and validation. Systematic design validation; grey-box approach, test design, implementation and management, case studies in validation and verification of communications software. Object-oriented design and test. Theoretical aspects.
CSI5112 (COMP 5207) SOFTWARE ENGINEERING (3cr.)
Topics of current interest in Software Engineering, such as software development systems, structured systems analysis and design, management of software, software tools, validation and verification, programming environments.
CSI5118 (COMP 5302) AUTOMATED VERIFICATION AND VALIDATION OF SOFTWARE (3cr.)
Topics in formal test derivation methods, test management, high-level, CASE-based verification and validation, data-flow & control-flow measures and metrics for assessing quality of designs and code, regression analysis & testing. Prerequisite: a four-year undergraduate degree in computer science, computer engineering, or software engineering.
CSI5122 (COMP 5301) SOFTWARE USABILITY (3cr.)
Design principles and metrics for usability. Qualitative and quantitative methods for the evaluation of software system usability: Heuristic evaluation, usability testing, usability inspections and walkthroughs, cognitive walkthroughs, formal usability experimentation. Ethical concerns when performing studies with test users. Economics of usability. Integration of usability engineering into the software engineering lifecycle.
CSI5125 SIMULATION
Topics in modelling and simulation within the context of both discrete and continuous systems. Estimation of model parameters. Experiment design and statistical analysis of simulation results. Distributed simulation. Stiffness and discontinuity handling in continuous system simulation. Artificial Intelligence in modelling and simulation. Validation and quality assurance of simulation models.
CSI5180 (COMP 5100) TOPICS IN ARTIFICIAL INTELLIGENCE (3cr.)
A programming-oriented introduction to selected topics in Artificial Intelligence (A.I.). Topics for consideration include: A.I. programming techniques, pattern matching systems, natural language systems rule-based systems, constraint systems, learning systems, and cognitive systems. Assignments will be both (a) programming-oriented, requiring implementation and/or extensions of prototypes in Lisp and/or Prolog and (b) research-oriented, requiring readings of special topics in current A.I. journals.
CSI5304 (COMP 5602) KNOWLEDGE ENGINEERING (3cr.)
Review of basic concepts from artificial intelligence for knowledge engineering. Types of knowledge and knowledge representations. The importance of logic and natural language. Expert systems and other knowledge-based software. Knowledge acquisition tools and techniques. The relation to software engineering. Exercises in knowledge acquisition, representation, and processing will be given.
CSI5307 EXPERT SYSTEMS
Survey of some landmark expert systems; types of architecture and knowledge representation; inferencing techniques; approximate reasoning; truth maintenance; explanation facilities; knowledge acquisition. A project to implement a small expert system will be assigned.
CSI5386 (COMP 5505) NATURAL LANGUAGE PROCESSING (3cr.)
Definitions, applicatons, challenges, lexicons, thesauri, corpora and other linguistic resources. Morphological analysis; tagging. Selected syntactic theories: phrase structure grammars, unification-based grammars. Parsing techniques: chars, deterministic parsing, logic grammars. Selected semantic representations: logic, logical forms, conceptual graphs, Element of semantic and pragmatic analysis: reference, scope, focus. Elements of statistical language processing and text mining. Introduction to corpus linguistics. Term projects, one on syntax and one on semantics, will be done in Prolog and logic grammars. Prerequisite: CSI 4106 or permission of the program director.
CSI5510 (COMP 5707) PRINCIPES DE DÉVELOPPEMENT FORMEL DE LOGICIELS (3cr.)
Une présentation de méthodologies courantes dans les domaines de spécification, développement et vérification de logiciels. Programmes itératifs: la méthode de l’invariant. Programmes récursifs: méthodes inductives. Spécification de logiciels: abstractions procédurelles et de données. Types algébriques abstraits. On mettra l’accent sur les logiciels répartis.
CSI5580 (COMP 5100) SUJETS EN INTELLIGENCE ARTIFICIELLE (3cr.)
Concepts et méthodes de base de l’intelligence artificielle. Représentation des connaissances. Traitement de langage naturel. Stratégies de recherches et de jeu. Action de planification. Déduction et raisonnement. Applications. Programmation en PROLOG.