{"id":349,"date":"2018-11-27T13:12:00","date_gmt":"2018-11-27T11:12:00","guid":{"rendered":"http:\/\/members.loria.fr\/EKerrien\/?page_id=349"},"modified":"2020-01-07T22:03:37","modified_gmt":"2020-01-07T20:03:37","slug":"apl2","status":"publish","type":"page","link":"https:\/\/members.loria.fr\/EKerrien\/apl2\/","title":{"rendered":"Basis of computer science: Data structures and algorithms (APL2)"},"content":{"rendered":"<p>Les supports propos\u00e9s sur ce site correspondent \u00e0 l&#8217;enseignement APL2: Algorithmes, Langages et Programmation 2 faisant partie de l&#8217;UE11 &#8220;Bases de l&#8217;informatique&#8221; du PPN des IUT en informatique. Il propose une introduction aux structures de donn\u00e9es et les algorithmes de base qui y sont associ\u00e9s. L&#8217;ordre suivi ici reproduit celui suivi en cours. Je ne rends bien \u00e9videmment pas disponibles les corrig\u00e9s des TD et TP, mais vous pouvez me contacter si vous d\u00e9sirez y avoir acc\u00e8s.<\/p>\n<h3 class=\"sectionname\">TP1 : Tutoriel d&#8217;introduction \u00e0 C<\/h3>\n<p class=\"sectionname\"><a href=\"\/EKerrien\/files\/data\/APL2_TP1.pdf\">Enonc\u00e9 du TP1<\/a> donnant une introduction rapide au langage C. Le cours repose sur l&#8217;hypoth\u00e8se que vous savez d\u00e9j\u00e0 programmer en Python.<\/p>\n<div class=\"content\">\n<h3 class=\"sectionname\">CM1 : Rappels sur complexit\u00e9 et tableaux<\/h3>\n<div class=\"summary\">\n<div class=\"no-overflow\">\n<p><a href=\"\/EKerrien\/files\/data\/APL2_CM1.pdf\">Supports du cours #1<\/a> o\u00f9 sont faits ce qui sont essentiellement des rappels sur la notion de complexit\u00e9 &#8212; en particulier complexit\u00e9 poynomiale en temps &#8212; et sur les tableaux &#8212; en particulier l&#8217;impact sur la m\u00e9moire de l&#8217;utilisation (cr\u00e9ation, modification, destruction) d&#8217;une variable tableau en m\u00e9moire.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"content\">\n<h3 class=\"sectionname\">TD1 : Complexit\u00e9 et tableaux<\/h3>\n<div class=\"summary\">\n<div class=\"no-overflow\">\n<p><a href=\"\/EKerrien\/files\/data\/APL2_TD1.pdf\">Enonc\u00e9 du TD1<\/a> portant sur la complexit\u00e9 et les tableaux, avec essentiellement des rappels et des petits exercices d&#8217;entrainement.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"content\">\n<h3 class=\"sectionname\">TP2 : Pointeurs en C<\/h3>\n<div class=\"section_availability\">\n<div class=\"no-overflow\">\n<p><a href=\"\/EKerrien\/files\/data\/APL2_TP2.pdf\">Enonc\u00e9 du TP2<\/a> sur les pointeurs en C, passage par variable, passage d&#8217;arguments \u00e0 un programme, fonctions d&#8217;entr\u00e9e sortie standard et dans les fichiers. Ce TP se base sur un ensemble de <a href=\"\/EKerrien\/files\/data\/APL2_TP2_code.zip\">fichiers de code source \u00e0 t\u00e9l\u00e9charger<\/a>.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"content\">\n<h3 class=\"sectionname\">CM2 : Listes cha\u00een\u00e9es et Types Abstraits de Donn\u00e9es<\/h3>\n<div class=\"summary\">\n<div class=\"no-overflow\">\n<p><a href=\"\/EKerrien\/files\/data\/APL2_CM2.pdf\">Supports du cours #2<\/a>. Les types de donn\u00e9es abstraits sont introduits, ainsi que les listes cha\u00een\u00e9es. Les TAD liste it\u00e9rative et liste r\u00e9cursive sont pr\u00e9sent\u00e9s. Enfin, les TAD classiques de liste doublement cha\u00een\u00e9e, liste circulaire, pile et file sont expos\u00e9s.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"content\">\n<h3 class=\"sectionname\">TD2 : Listes cha\u00een\u00e9es<\/h3>\n<div class=\"summary\">\n<div class=\"no-overflow\">\n<p><a href=\"\/EKerrien\/files\/data\/APL2_TD2.pdf\"><span class=\"autolink\">Enonc\u00e9 du TD2<\/span><\/a> portant sur l&#8217;implantation d&#8217;une liste r\u00e9cursive au moyen d&#8217;une liste cha\u00een\u00e9e. Algorithmes de base sur cette structure.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"content\">\n<h3 class=\"sectionname\">TP3 : listes cha\u00een\u00e9es<\/h3>\n<div class=\"summary\">\n<div class=\"no-overflow\">\n<p><a href=\"\/EKerrien\/files\/data\/APL2_TP3.pdf\">Enonc\u00e9 du TP3<\/a> sur les listes cha\u00een\u00e9es : apr\u00e8s une br\u00e8ve introduction aux structures en C, nous implantons ce que nous avons vu lors du TD2. Les <a href=\"\/EKerrien\/files\/data\/APL2_TP3_code.zip\">fichiers des codes source<\/a> mentionn\u00e9s sont \u00e0 t\u00e9l\u00e9charger.<\/p>\n<h3>CM3 : Arbres binaires, arbres binaires de recherche, tables de hachage<\/h3>\n<p><a href=\"\/EKerrien\/files\/data\/APL2_CM3.pdf\">Support du CM#3<\/a> o\u00f9 sont introduits les arbres binaires, arbres binaires de recherche, arbres \u00e9quilibr\u00e9s, et les tables de hachage.<\/p>\n<h3>TD6 : arbres binaires<\/h3>\n<p><a href=\"\/EKerrien\/files\/data\/APL2_TD6.pdf\">Enonc\u00e9 du TD6<\/a> portant sur les arbres binaires, et les arbres binaires de recherche.<\/p>\n<h3>TP7 et 9 : gestion de fichier CSV<\/h3>\n<p><a href=\"\/EKerrien\/files\/data\/APL2_TP79_2.pdf\"><span class=\"autolink\">Enonc\u00e9<\/span><\/a> couvrant les deux derni\u00e8res sessions de TP (4h) et ayant pour but de lire un fichier au format csv (s\u00e9parateur &#059;) et de stocker les informations pertinentes dans une table de hachage. Le <a href=\"https:\/\/www.insee.fr\/fr\/statistiques\/fichier\/2540004\/dpt2018_csv.zip\">fichier<\/a> est issu des <a href=\"https:\/\/www.data.gouv.fr\/fr\/datasets\/r\/fa6a5147-7fe0-41bd-9d25-b2baef879f68\">donn\u00e9es de l&#8217;INSEE sur les pr\u00e9noms en France<\/a> (hors Mayotte) en 1900 et 2018. Chaque enregistrement comporte 5 champs (voir la <a href=\"https:\/\/www.insee.fr\/fr\/statistiques\/2540004#dictionnaire\">documentation officielle<\/a>) :<\/p>\n<ol>\n<li>Le sexe, indiqu\u00e9 sur un caract\u00e8re par 1 (masculin) ou 2 (f\u00e9minin).<\/li>\n<li>Le pr\u00e9nom usuel, indiqu\u00e9 dans une cha\u00eene de 25 caract\u00e8res au maximum.<\/li>\n<li>L&#8217;ann\u00e9e de calcul de la statistique, indiqu\u00e9e sur une cha\u00eene de 4 caract\u00e8res. Le mot &#8220;XXXX&#8221; est indiqu\u00e9 lorsque l&#8217;ann\u00e9e est inconnue.<\/li>\n<li>Le d\u00e9partement, sur deux caract\u00e8res. &#8220;XX&#8221; est utilis\u00e9 si le d\u00e9partement est inconnu.<\/li>\n<li>Le nombre d&#8217;occurrences du pr\u00e9nom pour l&#8217;ann\u00e9e et le d\u00e9partement indiqu\u00e9s. Ce nombre tient dans une cha\u00eene de 8 caract\u00e8res au maximum.<\/li>\n<\/ol>\n<h2>Archives<\/h2>\n<h3>TP7 et 9 : k-d trees<\/h3>\n<p><a href=\"\/EKerrien\/files\/data\/APL2_TP79.pdf\">Enonc\u00e9<\/a> couvrant les deux derni\u00e8res sessions de TP (4h) ayant pour but d&#8217;implanter des k-d trees en 2D, ainsi que la fonction de recherche du point le plus proche. Le TP7 met en place les outils utiles (lecture de fichiers de points, tri en C), et permet de faire un rappel des notions de C. Le TP9 porte sur la programmation effective en C d&#8217;un k-d tree et de la recherche du plus proche voisin. Ce TP \u00e9tendu est l&#8217;occasion de passer en revue tout ce qui a \u00e9t\u00e9 vu en APL2.<\/p>\n<p>&nbsp;<\/p>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Les supports propos\u00e9s sur ce site correspondent \u00e0 l&#8217;enseignement APL2: Algorithmes, Langages et Programmation 2 faisant partie de l&#8217;UE11 &#8220;Bases de l&#8217;informatique&#8221; du PPN des IUT en informatique. Il propose une introduction aux structures de donn\u00e9es et les algorithmes de base qui y sont associ\u00e9s. L&#8217;ordre suivi ici reproduit celui suivi en cours. Je ne [&hellip;]<\/p>\n","protected":false},"author":31,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-349","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/members.loria.fr\/EKerrien\/wp-json\/wp\/v2\/pages\/349","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/members.loria.fr\/EKerrien\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/members.loria.fr\/EKerrien\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/members.loria.fr\/EKerrien\/wp-json\/wp\/v2\/users\/31"}],"replies":[{"embeddable":true,"href":"https:\/\/members.loria.fr\/EKerrien\/wp-json\/wp\/v2\/comments?post=349"}],"version-history":[{"count":20,"href":"https:\/\/members.loria.fr\/EKerrien\/wp-json\/wp\/v2\/pages\/349\/revisions"}],"predecessor-version":[{"id":390,"href":"https:\/\/members.loria.fr\/EKerrien\/wp-json\/wp\/v2\/pages\/349\/revisions\/390"}],"wp:attachment":[{"href":"https:\/\/members.loria.fr\/EKerrien\/wp-json\/wp\/v2\/media?parent=349"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}