Mathematical Logic is a field of study that explores the formal systems used to represent logical expressions and reasoning. This study area is fundamental across various disciplines, including mathematics, computer science, and philosophy. In this module, we will examine two types of Logic Propositional Logica and Predicate Logic

Propositional Logic

Propositional Logic focuses on propositions, which are statements that can be true or false. It uses logical connectives such as AND, OR, NOT, IMPLIES, and IF AND ONLY IF to form compound statements. Truth tables and logical equivalences help analyse and transform these statements.

Predicate Logic (First-Order Logic)

Predicate Logic extends propositional logic by introducing predicates, which express properties of objects, and quantifiers, which specify the scope of these properties. The universal quantifier (∀) denotes "for all," and the existential quantifier (∃) denotes "there exists." This logic allows for more complex and expressive statements about objects and their relationships.

Learning Goals

By the end of this module unit students will be able to:

  1. Acquire foundational knowledge of formal reasoning, essential logical principles, and terminology.

  2. Comprehend the core concepts of propositional and predicate logic, enabling interpretation and explanation of logical statements and their structures.

  3. Utilize logical principles in practical contexts, such as software verification, database querying, and algorithm design and debugging.

  4. Break down complex problems to identify logical relationships and dependencies, fostering critical thinking and problem-solving skills.

  5. Assess and verify the correctness and efficiency of algorithms and systems using logical reasoning and formal methods.

  6. Develop new algorithms, software solutions, and research advancements by synthesizing logical principles with innovative approaches.

The content of this module unit prepares the students to effectively apply logical reasoning in various areas of computer science, enhancing their capability to develop, analyze, and verify complex systems and algorithms.

Pouvoir Modéliser sous forme graphique un problème (sommet, arc ou arête), et lister les principales propriétés du graphe.
Identifier le problème à résoudre, à partir du modèle graphique, et l'associer à des grandes classes de problèmes de la théorie de graphes.

Les Systèmes d’Information jouent un rôle important dans les organisations de manière générale et les entreprises en particulier. Ils permettent de gérer des quantités massives de données en relation avec les activités économiques et sociales. Ils permettent aussi d’automatiser et d’assister les différents processus métier au sein des organisations. Les systèmes d’information peuvent aussi garantir la collaboration et la coopération entre les différents organisations et partenaires. Pour garantir ces objectifs, un Système d’Information doit être conçu et réalisé en parfaite concordance avec les besoins de ses utilisateurs. Ainsi, la conception et la réalisation d’un Système d’Information doit reposer sur des bases solides et suivre des démarches dédiées. Ce module vise à introduire la notion de Système d’Information ainsi que l’ensemble des notions relatives au domaine de conception et de réalisation des systèmes d’information. Le module introduit aussi une approche de conception des Systèmes d’Information.

La compétence visée par ce cours, dans son ensemble, est « d'être capable de comprendre les notions de base sur les systèmes d'information. Et ensuite étudier et utiliser une méthodologie pour la conception d’un systèmes informatiques ». C'est une performance complexe, que vous allez construire progressivement en maîtrisant des savoirs, en mettant en œuvre des savoir-faire et en le faisant avec un savoir-être de professionnel.

In this digital age, our reliance on computers is changing dramatically. Battery-powered smartphones that fit in our hands communicate with remote server warehouses. Both types of computers are based on the same fundamental principles as desktop computers from the 90s.

This course describes how computers work and how software and hardware design affect performance. After completing this course, you will be able to explain how a computer works from the bottom up: from transistors to logic gates to assembly language (MIPS, x86, etc.) to high-level programming languages ​​(C/C++, Java, Python, etc.).

In this course, you will learn how data is represented, processed, and stored in a computer. You will learn how to write programs in Assembly Language (e.g., multiply two numbers, store a number in memory, etc.). You will learn how to construct and use the basic blocks in a processor (arithmetic unit, register bank, control unit, etc.). You will use design tools to create a processor that runs programs written in Assembly. Finally, you will analyze the performance of computer systems and examine the factors, such as data locality and parallelism, that affect these measures.