Programmation
782 documents à télécharger gratuitement
Cours, examens, TD, TP et exercices de programmation. Thèmes couverts : algorithmique, langage C, Java, Python, POO, structures de données.
Cet examen évalue les connaissances des étudiants en génie logiciel, y compris les approches de test statique et dynamique, ainsi que des tests boîte noire et boîte blanche. Les étudiants sont également confrontés à des exercices pratiques sur les graphes de contrôle et le calcul de la somme des éléments d'un tableau. Une étude de cas sur un système de gestion de réunions virtuelles est incluse pour tester leurs compétences de conception et développement.
Cet examen évalue les connaissances des étudiants sur les modèles, langages, méthodes et processus de développement en programmation. Les questions portent également sur les principes de conception, la cohésion et le couplage dans le code. L'examen inclut des exercices pratiques tels que la spécification d'applications et l'analyse de problèmes de code.
This document contains an exam focused on algorithmic complexity, detailing various problems related to complexity classes, computational operations, and permutations. Students are required to analyze the performance and complexities of algorithms through theoretical and practical exercises. The exam is structured to test understanding of asymptotic notations and their applications in real scenarios.
This document presents an exam for the module on algorithmic complexity, including problems on matrix multiplication, hash algorithms, and asymptotic complexity. Students are required to write algorithms, analyze time complexity, and calculate asymptotic complexities for given operations. The exam is structured into three main exercises, each targeting different aspects of algorithmic analysis.
This document presents solutions to exercises related to distributed algorithms, specifically focusing on the Chandy and Lamport algorithm. It covers the application of the algorithm to message exchange between processes and discusses consistent cuts and vector timestamps. The document also includes examples of both consistent and inconsistent cuts.
This document contains an exam for a course on Object-Oriented Programming, structured into various sections addressing key concepts such as objects, classes, and interfaces. Students are required to answer multiple-choice questions and provide programming code based on a given scenario.
The document deals with solving the problem of finding the longest common subsequence (LCS) between two sequences using dynamic programming. It explains the problem formulation, defines a recurrence relation for LCS, and provides a recursive algorithm with exponential time complexity for sequences with no common elements. A more efficient dynamic programming algorithm is presented, which computes the LCS with a time complexity of O(nm). Additionally, the method for extracting the actual LCS string is provided using a traceback table.
This document discusses the principles of greedy algorithms and dynamic programming. It includes examples and problems to illustrate these concepts, focusing on their applications in optimization. The course is led by Dr. Chiheb-Eddine Ben N’Cir.
This document discusses the principles of Greedy Algorithms, their applications, and provides examples like the Coin Change Problem and the Movie Selection Problem. It emphasizes how Greedy Algorithms make locally optimal choices to find solutions and when they can yield the global optimum. The document serves as a guide for understanding and implementing Greedy Algorithms in various contexts.
This document outlines the presentation topics for the Advanced Algorithm course at the University of Manouba. Each topic involves explaining the general principles, algorithm description, and examples of problem-solving. Students are assigned specific algorithms to present.
Ce document traite de l'héritage et du polymorphisme en programmation orientée objet. Il explique comment l'héritage permet de réutiliser le code et de définir des relations entre classes. Le polymorphisme est discuté comme un moyen de manipuler des objets de manière flexible à travers des hiérarchies de classes.
This document provides a series of exercises to implement Java programs showcasing inheritance and polymorphism concepts. Key tasks include creating classes for geometric shapes like points, rectangles, circles, and cylinders, along with methods to compute dimensions, display graphical forms, and override the 'toString' method for detailed object representation. Additionally, the exercises emphasize the testing of polymorphism principles through systematic class hierarchy usage and object manipulation.
This document outlines various sorting algorithms known as 'trie' algorithms. It includes implementations for bubble sort, selection sort, insertion sort, merge sort, and quicksort. Each algorithm is explained with accompanying code examples.
This document covers the concepts of recursion and dynamic programming. It introduces advanced algorithmic techniques, demonstrating the principles of recursive functions and their applications. Additionally, it explores mutual recursion and provides examples for better understanding.
This document provides exercises related to abstract classes and interfaces in Java, demonstrating the implementation of inheritance and polymorphism. Key methodologies include abstract class creation, the use of interfaces, and the differentiation between non-discounted and discounted products through specialized constructors and methods. The findings showcase the calculation of product prices and selection based on maximum price logic, integrating both abstract methods from classes and interface implementations. Examples are executed via a `main` method to test the functionalities.
This document emphasizes the application of inheritance and polymorphism principles in object-oriented programming using Java. It outlines the design and implementation of multiple classes representing various library documents, with Document as a superclass and specific subclasses such as Livre, Roman, Manuel, Revue, and Dictionnaire. It demonstrates key features like method overriding, accessor methods, and constructors, while also detailing test scenarios to validate the functionality via various interactions. This practical exercise culminates in implementing specialized library classes...
This document discusses various algorithms for searching, including simple search, binary search, and hashing. It outlines the principles of each method and provides code examples for practical understanding. The focus is on algorithmic complexity and effective data retrieval techniques.
This document focuses on abstract classes and interfaces in the context of product management. It implements classes for both discounted and non-discounted products, showcasing polymorphism and inheritance. A main program calculates and identifies the product with the highest total value. Interfaces are then utilized to redefine the product functionality, enhancing flexibility and separation of concerns.
Ce document couvre les concepts fondamentaux de la programmation orientée objet en Java, y compris la construction des classes et l'instanciation des objets. Il explore les modificateurs de classe, d'attributs et de méthodes, ainsi que la syntaxe générale pour déclarer des classes, attributs et méthodes. Les étudiants apprendront également la différence entre les classes exécutables et non-exécutables.
This document covers the development of an enterprise application for account management using EJB technology. It outlines key tasks including setting up an environment with WildFly and Eclipse Neon, creating and deploying a strong architecture using JPA Entities, Session Beans, and web services (SOAP and REST). Step-by-step instructions describe configuring the data source and integrating MySQL on JBoss WildFly, implementing business logic, and providing remote and web client testing strategies. The workshop emphasizes a distributed system approach with detailed technical implementations o...
This document presents the course content for an Object-Oriented Programming class. It includes various exercises focusing on Java programming, such as handling variables, arrays, and string manipulation. Each exercise aims to develop fundamental programming skills in Java.
This document explores the fundamental concepts of object-oriented programming, including the structure of an object-oriented program, the definition and roles of objects and classes, attributes and methods, and the use of packages. It emphasizes the approach of organizing software around data and interactions rather than procedures. Key elements such as the importance of constructors and the classification of methods are also discussed.
This document provides an overview of advanced sorting algorithms. It covers various sorting techniques such as Bubble Sort, Selection Sort, Insertion Sort, Merge Sort, Quick Sort, and Counting Sort. The document includes algorithms in code format, illustrated with detailed explanations.
This document provides a comprehensive guide for using YAWL to develop a simple software lifecycle process. It includes step-by-step instructions for creating and managing tasks, establishing connections, and defining specification variables. The manual is designed for users looking to utilize YAWL effectively for process modeling.




















