Licence 02

La Théorie des Langages est une branche de l’informatique et des mathématiques qui étudie les langages formels et leur structuration. Elle joue un rôle fondamental en compilation, en intelligence artificielle et dans la conception des langages de programmation.
Principaux concepts :
- Alphabets et mots : Un alphabet est un ensemble fini de symboles, et un mot est une suite finie de ces symboles.
- Langages formels : Un langage est un ensemble de mots définis sur un alphabet donné.
- Grammaires formelles : Définissent la syntaxe des langages par des règles de production (exemple : grammaires de Chomsky).
- Automates : Modèles mathématiques utilisés pour reconnaître et manipuler les langages (exemples : automates finis, automates à pile, machines de Turing).
- Hiérarchie de Chomsky : Classe les langages en fonction de leur complexité et des types d’automates nécessaires pour les reconnaître (réguliers, contextuels, sensibles au contexte, récursifs).
Applications :
- Compilateurs : Analyse lexicale et syntaxique des programmes.
- Analyse et transformation du texte : Vérification syntaxique, reconnaissance de formes.
- Vérification de logiciels : Modélisation de systèmes complexes pour garantir leur fiabilité.
Ce cours est essentiel pour comprendre comment fonctionnent les langages de programmation et comment les machines peuvent traiter les informations textuelles.
- Enseignant: ZEBDI ABDELMOUMEN

This course is designed for students in the second year of a bachelor's degree in computer science.
In this course e will introduce the basic notions of operating systems, their role in the management of machine resources: processor and central memory, then present the mechanisms and techniques used for these purposes.
- Enseignant: rafik menassel

The "Object-Oriented Programming" course explores a variety of essential concepts related to object-oriented programming in Java. It covers topics such as the transition from classical programming to OOP, the creation of classes and objects, the use of modifiers to enhance code security, the procedure for object creation and instantiation, as well as the characteristics of class components (method overloading, constructors, accessor methods, static methods, and final methods). Other topics covered include inheritance, polymorphism (including subtype polymorphism and interface polymorphism), abstraction, interfaces, and finally, generic programming. The predominant objective of this course material is to provide a thorough understanding of these concepts through clear explanations and practical examples. The author strives to assist readers in acquiring solid skills in object-oriented programming with Java. This is achieved by placing particular emphasis on the clarity of explanations and the relevance of the examples provided, to ensure effective assimilation of the presented knowledge.
- Enseignant: LAIMECHE LAKHDAR

La théorie des langages (connue en anglais sous le nom de Programming Language Theory ou PLT) est un domaine de l'informatique qui s'occupe de concevoir, mettre en œuvre, analyser, caractériser et classer les langages formels utilisés pour la programmation.
- Enseignant: AOUIN MOHAMED

L’analyse numérique est une branche des mathématiques appliquées
s’intéressant au développement d’outils et de méthodes numériques pour le
calcul d’approximations de solutions de problèmes de mathématiques qu’il
serait difficile, voire impossible, d’obtenir par des moyens analytiques . Son
objectif est notamment d’introduire des procédures calculatoires détaillées
susceptibles d’être mises en œuvre par des calculateurs (électroniques,
mécaniques ou humains) et d’analyser leurs caractéristiques et leurs
performances. Elle possède des liens étroits avec deux disciplines à la
croisée des mathématiques et de l’informatique. La première est l’analyse
des algorithmes, elle-même une branche de la théorie de la complexité, qui
fournit une mesure de l’efficacité d’une méthode en quantifiant le nombre
d’opérations élémentaires, ou parfois la quantité de ressources
informatiques (comme le temps de calcul, le besoin en mémoire...), qu’elle
requiert pour la résolution d’un problème donné. La seconde est le calcul
scientifique, qui consiste en l’étude de l’implémentation de méthodes
numériques dans des architectures d’ordinateurs et leur application à la
résolution effective de problèmes issus de la physique, de la biologie, des
sciences de l’ingénieur ou encore de l’économie et de la finance.
- Enseignant: AOUIN MOHAMED

Objectifs généraux
Ce cours devrait permettre à l’étudiant d’identifier l’intérêt de structurer et manipuler les données sous forme tabulaire. A travers le modèle relationnel et l’algèbre relationnelle sous- jacente orientés plus vers l’aspect pratique, l’étudiant devrait comprendre l’importance de structurer les données, le concept d’indépendance des données et des traitements, ainsi que l’intégrité et la cohérence des données.
General goals
This course material should allow the student to identify the benefit of structuring and manipulating data in tabular form. Through the relational model and the underlying relational algebra oriented more towards the practical aspect, the student should understand the importance of structuring data, the concept of independence of data and processing, as well as integrity and data consistency.
- Enseignant: GATTAL ABDELJALIL

Ce cours s’adresse aux étudiants de deuxième année (4ème semestre) en licence Informatique (spécialité SI). Il aborde les aspects clés du World Wide Web et leur utilisation pour le développement des applications Web.
Le cours explore les différentes technologies et langages utilisés pour la création de sites Web dynamiques et interactifs. Il commence par les langages essentiels à la réalisation de la partie front-end de sites Web : HTML, CSS et JavaScript, en expliquant comment chaque langage est utilisé et comment ils fonctionnent ensemble pour créer une expérience utilisateur complète.
On présente ensuite PHP, un des langages de programmation côté serveur, permettant de réaliser la partie back-end de sites web. On voit comment utiliser PHP pour créer des pages Web dynamiques, et comment l’intégrer avec les autres technologies de la partie front-end et de bases de données ou fichiers pour créer des applications Web complexes.
Le cours introduit également le concept de services Web, qui offrent un moyen de communication normalisée entre des applications informatiques distribuées. Il présente leur architecture et introduisons quelques concepts : SOA, SOAP, WSDL, UDDI,...
- Enseignant: Tahar Gherbi
Ce cours est destiné pour les étudiants du Licence. Il présente les principaux concepts des BDDs relationnelles.
- Enseignant: AMROUNE MOHAMED

- Enseignant: HADJADJ ISMAIL