Suite

Extraire des données de Natural Earth à l'aide de la classe Java de GeoTools ?

Extraire des données de Natural Earth à l'aide de la classe Java de GeoTools ?


J'ai écrit une petite classe Java pour extraire les frontières des pays des données de naturalearthdata.com. Mon problème est que les coordonnées ne correspondent pas à la carte OSM, tout le polygone est décalé… par ex. selon les données extraites, le point le plus au sud de la République tchèque est

48.557915752000014,14.31574589000013

et le voici affiché sur openstreetmap, à environ 1km de ce que j'attends :

http://www.openstreetmap.org/search?query=48.5579157520000014%2C14.31574589000013#map=14/48.5579/14.3158

Si je comprends bien, OSM utilise wgs84, naturalearth utilise wgs84 donc je n'ai pas besoin de faire de transformation ? Y a-t-il quelque chose qui me manque ?

Voici la classe :

importer java.io.File; importer java.io.IOException ; importer java.net.URL ; importer java.util.ArrayList ; importer java.util.Iterator ; importer java.util.List ; importer javax.imageio.ImageIO; importer org.apache.log4j.Logger ; importer org.geotools.data.FeatureSource; importer org.geotools.data.shapefile.ShapefileDataStore ; importer org.geotools.feature.FeatureCollection ; importer org.geotools.feature.GeometryAttributeImpl; importer org.geotools.geometry.jts.JTS ; importer org.geotools.geometry.jts.JTSFactoryFinder ; importer org.geotools.referencing.CRS ; importer org.geotools.referencing.crs.DefaultGeocentricCRS ; importer org.geotools.referencing.crs.DefaultGeographicCRS ; importer org.opengis.feature.Feature; importer org.opengis.feature.Property; importer org.opengis.geometry.MismatchedDimensionException ; importer org.opengis.referencing.FactoryException ; importer org.opengis.referencing.crs.CoordinateReferenceSystem; importer org.opengis.referencing.operation.MathTransform ; importer org.opengis.referencing.operation.TransformException ; importer com.vividsolutions.jts.geom.Coordinate ; importer com.vividsolutions.jts.geom.CoordinateSequence ; importer com.vividsolutions.jts.geom.Geometry ; importer com.vividsolutions.jts.geom.GeometryFactory; importer com.vividsolutions.jts.geom.LineString ; importer com.vividsolutions.jts.geom.MultiPolygon ; importer com.vividsolutions.jts.geom.Point ; importer com.vividsolutions.jts.geom.Polygon ; importer com.vividsolutions.jts.geom.impl.CoordinateArraySequence ; public class Converter { static Logger logger = Logger.getLogger(Converter.class); static void extract(Feature feature,String iso2) lève une exception{ logger.info("extract "+iso2) ; GeometryAttributeImpl geometry=(GeometryAttributeImpl)feature.getProperty("the_geom"); MultiPolygon multiPolygon=(MultiPolygon)geometry.getValue(); logger.info("polygones:"+multiPolygon.getNumGeometries()); for(int i=0;i

Il y a plusieurs problèmes ici:

  1. OSM utilise Web Mercator (epsg:3857), c'est donc là que se déroule votre reprojection.
  2. Vous devez également tenir compte de l'échelle - les données de Natural Earth sont conçues pour être visualisées et utilisées à près de 1:10 million - à cette échelle, votre carte ressemble à ceci et le point est au bon endroit.

Enfin votre code peut être amélioré en utilisant un filtre dans la requête -

FeatureCollection fc = fs.getFeatures(CQL.toFilter(nameAttr + " = '" + nameMatch + "'"));

pour enregistrer la récupération du fichier entier à chaque fois.


Un examen des méthodes de classification des reliefs

L'étude du relief peut être utilisée pour prédire les conditions spécifiques de roche solide et d'humidité qui existent dans ce relief. Les reliefs sont importants en ingénierie car ils influencent la qualité et le type de nivellement, prédéterminent les exigences de drainage et les conditions du sol ou de la roche. Ils ont une signification supplémentaire car il existe un nombre infini de doublons de chaque type. Étant donné que chacune des unités de relief a des caractéristiques différentes (sol, pente, élévation, végétation, etc.), la classification des formes de relief est importante. Par conséquent, les reliefs sont largement reconnus comme des objets naturels qui divisent la surface de la terre en entités spatiales essentielles. Les entités de relief diffèrent les unes des autres en termes de spécifications telles que la forme, la taille, l'orientation, le relief et la position contextuelle. Ils diffèrent également en termes de processus physiques qui ont été impliqués dans leur formation et qui continuent à opérer en leur sein à l'heure actuelle. Cet article vise à fournir une revue des caractéristiques et de la classification du relief. Diverses définitions et attributs des formes de relief qui se concentrent sur les aspects de la morphométrie, le contexte géomorphométrique, les positions du terrain et l'échelle sont également discutés. De plus, les méthodes développées pour la classification des reliefs sont évaluées.


4 réponses 4

Les tests unitaires doivent traiter les classes qu'ils testent comme des boîtes noires. La seule chose qui compte, c'est que ses méthodes publiques se comportent comme on l'attend. La manière dont la classe y parvient via l'état interne et les méthodes privées n'a pas d'importance.

Lorsque vous sentez qu'il est impossible de créer des tests significatifs de cette façon, c'est le signe que vos classes sont trop puissantes et en font trop. Vous devriez envisager de déplacer certaines de leurs fonctionnalités vers des classes distinctes qui peuvent être testées séparément.

Si findError() et checkFirstCondition() etc. sont des méthodes publiques de votre classe, alors findError() est effectivement une façade pour des fonctionnalités déjà disponibles à partir de la même API. Il n'y a rien de mal à cela, mais cela signifie que vous devez écrire des tests pour cela qui sont très similaires aux tests déjà existants. Cette duplication reflète simplement la duplication dans votre interface publique. Ce n'est pas une raison pour traiter cette méthode différemment des autres.

Les tests unitaires doivent tester le contrat c'est la seule chose importante, pour eux. Tester tout ce qui ne fait pas partie du contrat n'est pas seulement une perte de temps, c'est une source potentielle d'erreur. Chaque fois que vous voyez un développeur modifier les tests lorsqu'il modifie un détail d'implémentation, la sonnette d'alarme doit sonner que le développeur peut (intentionnellement ou non) cacher ses erreurs. Délibérément tester les détails de l'implémentation force cette mauvaise habitude, ce qui augmente la probabilité que les erreurs soient masquées.

Les appels internes sont un détail de mise en œuvre et ne devraient avoir d'intérêt que pour mesurer performance. Ce qui n'est généralement pas le travail des tests unitaires.

Tout d'abord, je me demande ce qui est difficile à tester sur l'exemple de fonction que vous avez écrit ? Pour autant que je sache, vous pouvez simplement transmettre diverses entrées et vérifier que la valeur booléenne correcte est renvoyée. Qu'est-ce que je rate?

En ce qui concerne les espions, le type de test dit "boîte blanche" qui utilise des espions et des simulations représente des ordres de grandeur plus de travail à écrire, non seulement parce qu'il y a tellement plus de code de test à écrire, mais à chaque fois que l'implémentation est modifié, vous devez également modifier les tests (même si l'interface reste la même). Et ce type de test est également moins fiable que les tests de la boîte noire, car vous devez vous assurer que tout ce code de test supplémentaire est correct, et bien que vous puissiez être sûr que les tests unitaires de la boîte noire échoueront s'ils ne correspondent pas à l'interface , vous ne pouvez pas vous fier à cela à propos de l'abus de code car parfois le test ne teste même pas beaucoup de code réel - seulement des moqueries. Si les simulations sont incorrectes, il est probable que vos tests réussissent, mais votre code est toujours cassé.

Quiconque a de l'expérience avec les tests en boîte blanche peut vous dire qu'ils sont difficiles à écrire et à maintenir. Couplé au fait qu'ils sont moins fiables, les tests en boîte blanche sont tout simplement bien inférieurs dans la plupart des cas.


Informatique (CS)

Présente aux étudiants le domaine de l'informatique et les modes de pensée qui leur permettent de devenir des utilisateurs intelligents d'outils logiciels dans un cadre de résolution de problèmes. Examine plusieurs applications logicielles importantes afin que les étudiants puissent développer les compétences nécessaires pour utiliser efficacement les ordinateurs dans leurs propres disciplines.

Co-requis : CS 1101

Les attributs): NUpath Analyse/Utilisation des données

CS 1101. Laboratoire pour CS 1100. (1 heure)

Accompagne CS 1100. Implique des expériences et la résolution de problèmes dans plusieurs disciplines à l'aide de techniques et d'outils informatiques.

Co-requis : CS 1100

CS 1200. Séminaire de première année. (1 heure)

Cherche à soutenir les étudiants dans leur transition vers le Nord-Est et dans leur développement holistique alors qu'ils deviennent des membres responsables des communautés collégiale et universitaire. Intègre des discussions en grand groupe, des activités en petits groupes et une réflexion personnelle afin de faciliter les liens avec les professeurs, le personnel et les pairs, de promouvoir l'utilisation des ressources appropriées du campus et d'aider à la définition d'objectifs académiques et personnels

CS 1210. Perfectionnement professionnel pour la coopérative de Khoury. (1 heure)

Continue la préparation des étudiants à des carrières dans les domaines de l'informatique et de l'information en discutant des processus coopératifs et coopératifs. Offre aux étudiants la possibilité de préparer un curriculum vitae professionnel. Pratiquer des techniques d'entrevue appropriées. Explorer les possibilités d'emploi actuelles. Apprendre à participer au processus d'emploi et de recommandation et à comprendre les politiques, les procédures et les attentes des coopératives. Discute du comportement professionnel et des questions d'éthique sur le lieu de travail.

Conditions préalables): CS 2510 avec une note minimale de D-

CS 1800. Structures discrètes. (4 heures)

Présente les structures et les méthodes mathématiques qui constituent le fondement de l'informatique. Étudie les structures telles que les ensembles, les tuples, les séquences, les listes, les arbres et les graphiques. Discute des fonctions, des relations, de l'ordre et des relations d'équivalence. Examine les définitions inductives et récursives des structures et des fonctions. Discute des principes de la preuve tels que les tables de vérité, la preuve inductive et la logique de base. Couvre également les techniques de comptage et les arguments nécessaires pour estimer la taille des ensembles, la croissance des fonctions et la complexité spatio-temporelle des algorithmes.

Co-requis : CS 1802

Les attributs): Raisonnement Formel/Quant NUpath

CS 1802. Séminaire pour CS 1800. (1 heure)

Accompagne CS 1800. Illustre les sujets du cours magistral à travers des discussions, des quiz et des devoirs.

Co-requis : CS 1800

CS 1990. Électif. (1-4 heures)

Offre des crédits au choix pour les cours suivis dans d'autres établissements d'enseignement. Peut être répété sans limite.

CS 2500. Principes fondamentaux de l'informatique 1. (4 heures)

Introduit les idées fondamentales de l'informatique et les principes de la programmation. Discute d'une approche systématique des problèmes de mots, y compris la lecture analytique, la synthèse, l'établissement d'objectifs, la planification, l'exécution du plan et les tests. Présente plusieurs modèles de calcul, à partir de rien de plus que l'évaluation d'expression dans l'esprit de l'algèbre de lycée. Aucune expérience de programmation préalable n'est donc supposée, adaptée aux étudiants de première année, majeurs et non majeurs qui souhaitent explorer les idées intellectuelles de la discipline.

Co-requis : CS 2501

Les attributs): Raisonnement formel/quantitatif NUpath, monde naturel/conçu NUpath

CS 2501. Laboratoire pour CS 2500. (1 heure)

Accompagne CS 2500. Couvre les sujets du cours à travers diverses expériences.

Co-requis : CS 2500

CS 2510. Principes fondamentaux de l'informatique 2. (4 heures)

Continue CS 2500. Examine la programmation orientée objet et les algorithmes associés en utilisant des structures de données plus complexes comme objectif. Explique les structures imbriquées et les structures non linéaires, y compris les tables de hachage, les arbres et les graphiques. Met l'accent sur l'abstraction, l'encapsulation, l'héritage, le polymorphisme, la récursivité et les modèles de conception orientés objet. Applique ces idées à des exemples d'applications qui illustrent l'étendue de l'informatique.

Conditions préalables): CS 2500 avec une note minimale de D-

Co-requis : CS 2511

Les attributs): NUpath Analyse/Utilisation des données, NUpath Natural/Designed World

CS 2511. Laboratoire pour CS 2510. (1 heure)

Accompagne CS 2510. Couvre les sujets du cours à travers diverses expériences.

Co-requis : CS 2510

CS 2800. Logique et calcul. (4 heures)

Présente la logique formelle et ses liens avec l'informatique et les sciences de l'information. Offre l'occasion d'apprendre à traduire des déclarations sur le comportement de programmes informatiques en déclarations logiques et d'acquérir la capacité de prouver de telles déclarations à la main et à l'aide d'outils automatisés. Envisage des approches pour prouver l'arrêt, l'exactitude et la sécurité des programmes. Discute des notations utilisées dans la logique, la logique propositionnelle et du premier ordre, l'inférence logique, l'induction mathématique et l'induction structurelle. Introduit l'utilisation de la logique pour modéliser la gamme d'artefacts et de phénomènes qui surviennent en informatique et en sciences de l'information.

Conditions préalables): (CS 1800 avec une note minimale de D- ou MATH 1365 avec une note minimale de D- ou MATH 2310 avec une note minimale de D-) CS 2500 avec une note minimale de D-

Co-requis : CS 2801

CS 2801. Laboratoire pour CS 2800. (1 heure)

Accompagne CS 2800. Couvre les sujets du cours à travers diverses expériences.

Co-requis : CS 2800

CS 2810. Mathématiques des modèles de données. (4 heures)

Étudie les méthodes et les idées d'algèbre linéaire, de calcul multivariable et de statistiques les plus pertinentes pour l'informaticien pratiquant l'apprentissage automatique, la modélisation ou les tests d'hypothèses avec des données. Couvre la régression des moindres carrés, la recherche de valeurs propres pour prédire le comportement d'un système linéaire, l'exécution d'une descente de gradient pour ajuster un modèle aux données et l'exécution de tests t et de tests du chi carré pour déterminer si les différences entre les populations sont significatives. Comprend des applications aux méthodes d'apprentissage automatique populaires, y compris les modèles bayésiens et les réseaux neuronaux

Conditions préalables): CS 1800 avec une note minimale de D- CS 2500 avec une note minimale de D-

Les attributs): Analyser/utiliser des données NUpath, Raisonnement formel/quant NUpath

CS 2990. Optionnel. (1-4 heures)

Offre des crédits au choix pour les cours suivis dans d'autres établissements d'enseignement. Peut être répété sans limite.

CS 2991. Recherche en informatique. (1-4 heures)

Offre la possibilité de mener des recherches de niveau introductif ou des efforts créatifs sous la supervision du corps professoral.

CS 2992. Recherche. (0 heures)

Offre une opportunité de documenter les contributions des étudiants à des projets de recherche ou des efforts créatifs.

CS 3000. Algorithmes et données. (4 heures)

Présente les principes et techniques de base pour la conception, l'analyse et la mise en œuvre d'algorithmes et de représentations de données efficaces. Discute de l'analyse asymptotique et des méthodes formelles pour établir l'exactitude des algorithmes. Prend en compte les algorithmes de division pour régner, les algorithmes de parcours de graphes et les techniques d'optimisation. Introduit la théorie de l'information et couvre les structures fondamentales pour représenter les données. Examine les représentations plates et hiérarchiques, les représentations de données dynamiques et la compression de données. Se termine par une discussion sur la relation des sujets de ce cours avec la théorie de la complexité et la notion de dureté des problèmes.

Conditions préalables): ((CS 2510 avec une note minimale de D- ou DS 2500 avec une note minimale de D-) CS 1800 avec une note minimale de D-) ou EECE 2160 avec une note minimale de D-

Co-requis : CS 3001

CS 3001. Récitation pour CS 3000. (0 heures)

Accompagne CS 3000. Fournit aux étudiants des opportunités supplémentaires de poser des questions et de s'engager avec le matériel de cours.

Co-requis : CS 3000

CS 3200. Conception de base de données. (4 heures)

Étudie la conception d'une base de données à utiliser dans un système de gestion de base de données relationnelle. Le modèle entité-relation et la normalisation sont utilisés dans les problèmes. L'algèbre relationnelle puis le SQL (langage de requête structuré) sont présentés. Les rubriques avancées incluent les déclencheurs, les procédures stockées, l'indexation, l'optimisation des requêtes élémentaires et les principes fondamentaux de la concurrence et de la récupération. Les étudiants implémentent un schéma de base de données et de courts programmes d'application sur un ou plusieurs systèmes de gestion de bases de données relationnelles commerciales.

Conditions préalables): CS 2500 avec une note minimale de D- ou DS 2000 avec une note minimale de D- ou CS 1500 avec une note minimale de D- ou EECE 2560 avec une note minimale de D-

Les attributs): Analyser/utiliser des données NUpath, Raisonnement formel/quant NUpath

CS 3500. Conception orientée objet. (4 heures)

Présente une approche comparative de la programmation et de la conception orientées objet. Discute des concepts d'objet, de classe, de méta-classe, de message, de méthode, d'héritage et de généricité. Passe en revue les formes de polymorphisme dans les langages orientés objet. Compare l'utilisation de l'héritage et de la composition en tant que techniques doubles pour la réutilisation des logiciels : transfert vs délégation et sous-classement vs sous-typage. Favorise une compréhension plus approfondie des principes de la programmation et de la conception orientées objet, y compris les composants logiciels, les modèles de conception orientés objet et l'utilisation de notations de conception graphique telles que UML (langage de modélisation unifié). Les concepts de base de la conception orientée objet sont illustrés par des études de cas dans des cadres d'application et par l'écriture de programmes dans un ou plusieurs langages orientés objet.

Conditions préalables): CS 2510 avec une note minimale de D- ou CS 1500 avec une note minimale de D- ou EECE 2560 avec une note minimale de D-

Co-requis : CS 3501

Les attributs): NUpath Analyse/Utilisation des données, NUpath Natural/Designed World

CS 3501. Laboratoire pour CS 3500. (1 heure)

Accompagne CS 3500. Couvre les sujets du cours et offre aux étudiants des opportunités supplémentaires de s'engager avec le matériel de cours.

Co-requis : CS 3500

CS 3520. Programmation en C++. (4 heures)

Examine comment programmer en C++ de manière robuste et sûre. Passe en revue les bases, y compris la portée, le typage et les structures de données primitives. Discute des types de données (primitif, tableau, structure, classe, chaîne) des mécanismes d'adressage/paramètre (valeur, pointeur, référence) des piles des files d'attente des listes chaînées des arbres binaires des tables de hachage et de la conception des classes et de l'héritage de classe, en mettant l'accent sur l'héritage unique. Prend en compte l'instanciation des objets, les compromis entre l'allocation de pile par rapport à l'allocation de tas et la conception de constructeurs et de destructeurs. Souligne la nécessité d'une stratégie de gestion dynamique de la mémoire. Traite les modèles de surcharge de fonctions et d'opérateurs, la bibliothèque de modèles standard (STL) et les composants STL (conteneurs, algorithmes génériques, itérateurs, adaptateurs, répartiteurs, objets de fonction) diffusent la gestion des exceptions et les appels système pour les processus et les threads.

Conditions préalables): CS 1500 avec une note minimale de D- ou CS 2510 avec une note minimale de D- ou DS 2500 avec une note minimale de D-

CS 3540. Programmation de jeux. (4 heures)

Présente les différents sous-systèmes utilisés pour créer un jeu 3D, y compris le rendu, l'animation, la collision, la physique, l'audio, les systèmes de déclenchement, la logique de jeu, les arbres de comportement et l'intelligence artificielle simple. Offre aux étudiants l'opportunité d'apprendre le fonctionnement interne des moteurs de jeu et comment utiliser plusieurs bibliothèques telles que les bibliothèques physiques et graphiques pour développer un jeu. Discute du pipeline graphique, du graphe de scène, de la conception de niveaux, des scripts de comportement, de la conception de jeux orientés objet, des éditeurs de monde et des langages de script de jeux.

Conditions préalables): CS 2510 avec une note minimale de D-

CS 3620. Construire des systèmes extensibles. (4 heures)

Traite de la conception de systèmes logiciels extensibles, qui permettent aux clients d'ajouter des fonctionnalités à la fois statiquement et dynamiquement. Des exemples de tels systèmes sont les systèmes d'exploitation, les serveurs de jeux et les navigateurs Web. Décrit les systèmes classiques construits sur des langages de type C avec un contrôle manuel de la mémoire dangereux et les systèmes plus récents construits sur des langages de type Java avec une gestion de la mémoire automatisée et sécurisée. Présente le langage de programmation Rust, qui combine l'efficacité de C avec un contrôle manuel sécurisé de la mémoire via des spécifications de type et des contraintes de compilateur. Offre aux étudiants la possibilité de créer des systèmes en utilisant les trois paramètres, mais se concentre sur l'approche Rust. Les étudiants ont également la possibilité d'évaluer leur travail via des essais et des notes de service.

Conditions préalables): CS 2510 avec une note minimale de D- (ENGW 1111 avec une note minimale de C ou ENGW 1102 avec une note minimale de C ou ENGL 1111 avec une note minimale de C ou ENGL 1102 avec une note minimale de C)

Les attributs): NUpath Écriture intensive

CS 3650. Systèmes informatiques. (4 heures)

Présente la conception de base des systèmes informatiques, des systèmes d'exploitation informatiques et du langage d'assemblage à l'aide d'une architecture RISC. Décrit les caches et la mémoire virtuelle. Couvre l'interface entre le langage assembleur et les langages de haut niveau, y compris les cadres d'appel et les pointeurs. Couvre l'utilisation des appels système et de la programmation système pour montrer l'interaction avec le système d'exploitation. Couvre les structures de base d'un système d'exploitation, y compris les interfaces d'application, les processus, les threads, la synchronisation, la communication interprocessus, les interblocages, la gestion de la mémoire, les systèmes de fichiers et le contrôle des entrées/sorties.

Conditions préalables): CS 2510 avec une note minimale de D- ou CS 1500 avec une note minimale de D- ou EECE 2560 avec une note minimale de D-

CS 3700. Réseaux et systèmes distribués. (4 heures)

Présente les principes fondamentaux des réseaux informatiques, y compris les architectures de réseau, les topologies de réseau, les protocoles de réseau, les concepts de superposition (par exemple, les modèles de référence ISO/OSI, TCP/IP), les paradigmes de communication (point à point vs multidiffusion/diffusion, sans connexion vs . orientée connexion) et des API de mise en réseau (sockets). Couvre également la construction de programmes distribués, en mettant l'accent sur les protocoles de haut niveau et le partage d'état distribué. Les sujets comprennent les modèles de conception, les transactions, les compromis sur les performances, les implications en matière de sécurité et la fiabilité. Utilise des exemples de réseaux réels (TCP/IP, Ethernet, 802.11) et de systèmes distribués (Web, BitTorrent, DNS) pour renforcer les concepts.

Conditions préalables): CS 2510 avec une note minimale de D-

CS 3800. Théorie du calcul. (4 heures)

Présente la théorie derrière les ordinateurs et l'informatique visant à répondre à la question « Quelles sont les capacités et les limites des ordinateurs ? » Couvre la théorie des automates, la calculabilité et la complexité. La partie théorie des automates comprend les automates finis, les expressions régulières, le non-déterminisme, les langages non réguliers, les langages sans contexte, les automates à refoulement et les langages sans contexte. La partie calculabilité comprend les machines de Turing, la thèse de Church-Turing, les langages décidables et le théorème de Halting. La partie complexité comprend les notations big-O et small-o, les classes P et NP, la question P vs. NP et la complétude NP.

Conditions préalables): CS 1500 avec une note minimale de D- ou CS 2510 avec une note minimale de D- ou EECE 2160 avec une note minimale de D- ou EECE 2162 avec une note minimale de D- ou EECE 2164 avec une note minimale de D-

CS 3950. Introduction à la recherche en informatique. (2 heures)

Initie les étudiants à la recherche dans les domaines de l'informatique, des sciences de l'information, de la science des données et de la cybersécurité. Explore comment la méthode scientifique est appliquée à ces domaines et couvre l'étendue des sous-domaines de spécialité qui existent. Offre aux étudiants l'occasion de s'exercer à localiser et à lire la littérature scientifique dans différents sous-domaines. Offre également aux étudiants un aperçu des études supérieures dans ces domaines.

Conditions préalables): CS 2500 avec une note minimale de D-

CS 3990. Optionnel. (1-4 heures)

Offre des crédits au choix pour les cours suivis dans d'autres établissements d'enseignement. Peut être répété sans limite.

CS 4097. Réalité mixte. (4 heures)

Cherche à fournir une base solide dans les principes fondamentaux de la réalité virtuelle et augmentée, largement définie comme la réalité mixte (XR). Ces technologies ont récemment connu un regain d'intérêt. Offre aux étudiants la possibilité d'acquérir une expérience pratique du développement d'applications XR en plongeant dans ce domaine en plein essor de la recherche et de la pratique en informatique. Synthétise les connaissances théoriques et pratiques de diverses disciplines, notamment l'infographie, les interfaces 3D, l'interaction homme-machine, les systèmes de suivi et la psychologie perceptive.

Conditions préalables): CS 3540 avec une note minimale de D-

CS 4100. Intelligence artificielle. (4 heures)

Présente les problèmes fondamentaux, les théories et les algorithmes du domaine de l'intelligence artificielle. Comprend une représentation des connaissances de recherche heuristique à l'aide de la déduction automatisée du calcul des prédicats et de sa planification des applications et de l'apprentissage automatique. Des sujets supplémentaires incluent le jeu du raisonnement incertain et la logique de traitement du langage naturel des systèmes experts pour les ontologies de raisonnement de sens commun et les systèmes multi-agents.

Conditions préalables): CS 3500 avec une note minimale de D- ou DS 3500 avec une note minimale de D-

Les attributs): Expérience NUpath Capstone, NUpath Writing Intensive

CS 4120. Traitement du langage naturel. (4 heures)

Présente la modélisation informatique du langage humain, l'effort continu pour créer des programmes informatiques capables de communiquer avec les gens en langage naturel et les applications actuelles du domaine du langage naturel, telles que la classification automatisée des documents, le traitement intelligent des requêtes et l'extraction d'informations. Les sujets comprennent les modèles informatiques de grammaire et d'analyse automatique, les modèles de langage statistiques et l'analyse de grands corpus de textes, la sémantique du langage naturel et les programmes qui comprennent le langage, les modèles de structure du discours et l'utilisation du langage par des agents intelligents. Le travail du cours comprend l'analyse formelle et mathématique des modèles de langage et la mise en œuvre de programmes de travail qui analysent et interprètent le texte en langage naturel. La connaissance des statistiques est utile.

Conditions préalables): CS 3500 avec une note minimale de D- ou DS 3500 avec une note minimale de D-

CS 4150. Jeu d'intelligence artificielle. (4 heures)

Offre un aperçu des approches classiques et modernes de l'intelligence artificielle dans les jeux numériques. Se concentre sur la création d'agents et d'environnements crédibles dans le but de fournir une expérience amusante et engageante à un joueur. Couvre la modélisation des joueurs, la génération de contenu procédural, les arbres de comportement, la narration interactive, les systèmes de prise de décision, la modélisation cognitive et la planification de parcours. Explore différentes approches pour la génération de comportements, y compris l'apprentissage et les systèmes basés sur des règles. Exige que les étudiants effectuent plusieurs devoirs individuels dans ces domaines pour appliquer les concepts abordés en classe. Les élèves choisissent un projet final de groupe pour explorer plus en profondeur un aspect de l'intelligence artificielle pour les jeux. Offre aux étudiants l'occasion d'apprendre la gestion d'équipe et la communication. Les étudiants qui ne satisfont pas aux prérequis du cours peuvent demander l'autorisation de l'instructeur.

Conditions préalables): CS 2800 avec une note minimale de D- ou CS 3500 avec une note minimale de D-

Les attributs): Expérience NUpath Capstone, NUpath Writing Intensive

CS 4180. Apprentissage par renforcement. (4 heures)

Présente l'apprentissage par renforcement et le cadre du processus décisionnel de Markov (MDP). Couvre les méthodes de planification et d'apprentissage dans les MDP telles que la programmation dynamique, les méthodes basées sur un modèle et les méthodes sans modèle. Examine les représentations couramment utilisées, y compris les représentations d'apprentissage en profondeur. Les étudiants doivent avoir une connaissance pratique des probabilités, effectuer des travaux de programmation et terminer un projet de cours qui applique une forme d'apprentissage par renforcement à un problème d'intérêt.

Conditions préalables): CS 3000 avec une note minimale de D- (ECON 2350 avec une note minimale de D- ou ENVR 2500 avec une note minimale de D- ou MATH 3081 avec une note minimale de D- ou PSYC 2320 avec une note minimale de D- ou CS 2810 avec une note minimale de D-) (MATH 2331 avec une note minimale de D- ou CS 2810 avec une note minimale de D-)

CS 4200. Internes de la base de données. (4 heures)

Explore le fonctionnement interne des systèmes de gestion de bases de données. Explique comment les systèmes de base de données stockent les données sur les disques. Étudie comment améliorer l'efficacité des requêtes à l'aide de techniques d'indexation telles que l'arbre B+, les index de hachage et les index multidimensionnels. Décrit comment les requêtes sont exécutées en interne et comment les systèmes de base de données effectuent des optimisations de requête. Introduit des schémas de contrôle de concurrence mis en œuvre par verrouillage, tels que le verrouillage hiérarchique et le verrouillage de plage de clés. Décrit la structure de la table de verrouillage. Explique comment les systèmes de base de données peuvent effectuer la journalisation et la récupération pour éviter la perte de données en cas de panne du système.

Conditions préalables): CS 3000 avec une note minimale de D- CS 3650 avec une note minimale de D-

CS 4240. Traitement de données parallèle à grande échelle. (4 heures)

Couvre les techniques de gestion et d'analyse de très grands ensembles de données, en mettant l'accent sur les approches qui évoluent efficacement à mesure que davantage de nœuds de calcul sont ajoutés. Présente les principes de gestion des données distribuées et les stratégies de partitionnement des données axé sur les problèmes grâce à une sélection de modèles de conception provenant de divers domaines d'application, notamment l'analyse de graphes, les bases de données, le traitement de texte et l'exploration de données. Offre aux étudiants la possibilité d'acquérir une expérience de programmation pratique avec la technologie moderne de traitement des données volumineuses telles que MapReduce, Spark, HBase et le cloud computing (cette sélection est susceptible de changer à mesure que la technologie évolue).

Conditions préalables): (CS 3600 avec une note minimale de D- ou CS 3650 avec une note minimale de D- ou CS 5600 avec une note minimale de D- (CS 4800 (peut être pris en même temps) avec une note minimale de D- ou CS 3000 ( peut être suivi simultanément) avec une note minimale de D- ou CS 5800 (peut être pris simultanément) avec une note minimale de D-

CS 4300. Infographie. (4 heures)

Trace un chemin à travers chaque aspect majeur de l'infographie avec des degrés divers d'accent. Aborde les problèmes matériels : la taille et la vitesse des lignes, la modélisation des polygones et des régions, ou la visualisation des objets et de leurs relations, ou ce qui peut être vu (visibilité et perspective), ou à quoi cela ressemble (propriétés des surfaces, de la lumière et de la couleur) des transformations, ou déplacer, placer, déformer, animer et interagir, ou dessiner, sélectionner et transformer.

Conditions préalables): (CS 1500 avec une note minimale de D- ou CS 2510 avec une note minimale de D- ou CS 3500 avec une note minimale de D- ou EECE 2560 avec une note minimale de D-) (MATH 1260 avec une note minimale de D - ou MATH 2331 avec une note minimale de D- ou MATH 2341 avec une note minimale de D- ou CS 2810 avec une note minimale de D-)

Les attributs): Expérience NUpath Capstone, NUpath Writing Intensive

CS 4400. Langages de programmation. (4 heures)

Introduit une approche systématique pour comprendre le comportement des langages de programmation. Couvre les interpréteurs d'environnements de portée statique et dynamique, les fonctions de liaison et d'affectation et les objets de transmission de paramètres et de répartition de méthode de récursivité, les classes, l'héritage et les règles de type de polymorphisme, ainsi que la vérification de type et la concurrence.

Conditions préalables): CS 3500 avec une note minimale de D- (CS 3000 avec une note minimale de D- ou CS 4800 avec une note minimale de D-)

CS 4410. Compilateurs. (4 heures)

Étudie la construction de compilateurs et intègre le matériel des cours précédents sur les langages de programmation, la théorie des automates, l'architecture informatique et la conception de logiciels. Examine les arbres syntaxiques, la sémantique statique, la vérification des architectures de machines typiques et leurs structures logicielles, la génération de code, l'analyse lexicale et les techniques d'analyse. Utilise une approche pratique avec un projet à long terme substantiel.

Conditions préalables): CS 4400 avec une note minimale de D- ou CS 5400 avec une note minimale de C- ou CS 7400 avec une note minimale de C-

Les attributs): Expérience NUpath Capstone, NUpath Writing Intensive

CS 4500. Développement de logiciels. (4 heures)

Considére le développement de logiciels comme un processus systématique impliquant la spécification, la conception, la documentation, la mise en œuvre, les tests et la maintenance. Examine les méthodes des modèles de processus logiciels pour la modularité des spécifications logicielles, l'abstraction et la réutilisation des logiciels et les problèmes de qualité des logiciels. Les étudiants, éventuellement en groupe, conçoivent, documentent, implémentent, testent et modifient des projets logiciels.

Conditions préalables): CS 3500 avec une note minimale de D- (ENGW 1111 avec une note minimale de C ou ENGW 1102 avec une note minimale de C)

Les attributs): NUpath Écriture intensive

CS 4520. Développement d'applications mobiles. (4 heures)

Se concentre sur le développement d'applications mobiles sur un téléphone mobile ou une plate-forme connexe. Discute de la construction de l'interface utilisateur de gestion de la mémoire, y compris les principes MVC et les outils spécifiques de traitement des données d'événements tactiles, y compris les données de base, les techniques de réseau SQL, XML et JSON et le chargement d'URL et, enfin, des spécificités telles que le GPS et la détection de mouvement qui peuvent dépendre de la plate-forme mobile particulière. Les étudiants doivent travailler sur un projet qui produit une application mobile de qualité professionnelle. L'instructeur choisit une plate-forme mobile moderne à utiliser dans le cours.

Conditions préalables): CS 3500 avec une note minimale de D-

CS 4530. Principes fondamentaux du génie logiciel. (4 heures)

Couvre les principes fondamentaux du génie logiciel, y compris les modèles de cycle de vie du développement logiciel (par exemple, cascade, spirale, agile) l'analyse des exigences conception centrée sur l'utilisateur les principes de conception logicielle et les tests de modèles (tests fonctionnels, tests structurels, stratégies de test) refactorisation de code et débogage architecture logicielle et conception, intégration et déploiement. Comprend un projet de cours dans lequel certaines des méthodes de génie logiciel (de l'analyse des exigences aux tests) sont appliquées dans un cadre d'équipe.

Conditions préalables): CS 3500 avec une note minimale de D-

Les attributs): NUpath Écriture intensive

CS 4550. Développement Web. (4 heures)

Discute du développement Web pour les sites dynamiques, axés sur les données et interactifs. Se concentre sur les problèmes de développement de logiciels liés à l'intégration de plusieurs langues, de technologies de données assorties et d'interaction Web. Prend en compte les services ASP.NET, C#, HTTP, HTML, CSS, XML, XSLT, JavaScript, AJAX, RSS/Atom, SQL et Web. Demande à chaque étudiant de déployer des expériences Web conçues individuellement qui illustrent les technologies Web et au moins un grand projet de site Web intégratif. Les étudiants peuvent travailler en équipe avec la permission de l'instructeur. Chaque étudiant ou équipe doit également créer une documentation complète de leurs objectifs, plans, décisions de conception, réalisations et directives d'utilisation. Tous les fichiers sources doivent être ouverts et être automatiquement servis par un serveur de sources.

Conditions préalables): CS 3500 avec une note minimale de D-

Les attributs): Expérience NUpath Capstone, NUpath Writing Intensive

CS 4610. Science et systèmes robotiques. (4 heures)

Présente les robots mobiles autonomes, en mettant l'accent sur les algorithmes et le développement de logiciels, y compris le contrôle en boucle fermée, l'architecture logicielle du robot, la locomotion et la navigation sur roues, la détection tactile et visuelle de base, la détection et l'évitement d'obstacles, ainsi que la saisie et la manipulation d'objets. Offre aux étudiants la possibilité de construire progressivement des robots mobiles à partir d'un kit électromécanique préconçu. Les robots sont contrôlés sans fil par un logiciel conçu par les étudiants, construit dans un cadre logiciel de robotique fourni. Le cours se termine par une compétition de grand défi utilisant toutes les fonctionnalités des robots.

Conditions préalables): CS 3500 avec une note minimale de D-

CS 4700. Principes de base du réseau. (4 heures)

Présente les concepts fondamentaux des protocoles réseau et des architectures réseau. Présente les différentes fonctions d'harmonisation nécessaires à la communication et au bon fonctionnement des réseaux informatiques. Fournit une couverture approfondie du contrôle des liaisons de données, du contrôle d'accès au support, du routage, des protocoles de transport de bout en bout, de la congestion et du contrôle de flux, de la multidiffusion, du nommage, de la configuration automatique, de la qualité de service et de la gestion de réseau. Étudie les mécanismes abstraits et les algorithmes mis en œuvre dans les protocoles Internet du monde réel. Couvre également les protocoles d'application les plus courants (courriel, Web et ftp).

Conditions préalables): CS 3600 avec une note minimale de D- ou CS 3650 avec une note minimale de D- ou CS 5600 avec une note minimale de D-

CS 4710. Systèmes mobiles et sans fil. (4 heures)

Couvre à la fois les fondements théoriques des réseaux sans fil/mobiles et les aspects pratiques des systèmes sans fil/mobiles, y compris les normes actuelles, les plates-formes de développement mobile et les technologies émergentes. Intègre une forte composante pratique oblige les étudiants à travailler en équipe sur plusieurs tâches pratiques (par exemple, basées sur la détection Wi-Fi, les applications mobiles, les appareils Internet des objets et les applications radio définies par logiciel) et un projet final. Le projet final intègre des connaissances sur plusieurs technologies et mécanismes de communication sans fil.

Conditions préalables): CS 3700 avec une note minimale de D-

CS 4805. Principes fondamentaux de la théorie de la complexité. (4 heures)

Examine le matériel de base tel que les automates, les machines de Turing, la (in)décidabilité, la complexité temporelle, P vs. NP et la complétude NP. Étudie les principaux sujets de la complexité informatique, notamment la complexité temporelle et spatiale, la hiérarchie polynomiale, la complexité des circuits, le calcul probabiliste, les preuves interactives et la dureté de l'approximation. Les sujets facultatifs peuvent inclure le théorème d'incomplétude de Gödel, la complexité de Kolgomorov, la cryptographie, l'informatique quantique, la complexité de la communication, les limites inférieures ou le pseudo-aléatoire.

Conditions préalables): CS 3800 avec une note minimale de D-

CS 4810. Algorithmes avancés. (4 heures)

S'appuie sur CS 3000. Présente une étude avancée des algorithmes informatiques. Couvre les paradigmes algorithmiques de base (p.
algorithmes aléatoires et algorithmes d'approximation.

Conditions préalables): CS 3000 avec une note minimale de D-

CS 4820. Raisonnement assisté par ordinateur. (4 heures)

Couvre les concepts, techniques et algorithmes fondamentaux du raisonnement assisté par ordinateur, y compris la logique propositionnelle, les variantes de l'algorithme DPLL pour la vérification de la satisfiabilité, la logique du premier ordre, l'unification, les tableaux, la résolution, les clauses de Horn, la fermeture de congruence, la réécriture, la complétion Knuth-Bendix , procédures de décision, théories modulo de la satisfaction, récursivité, induction, terminaison, arithmétique de Presburger, élimination des quantificateurs et démonstration interactive de théorèmes. Offre aux étudiants la possibilité de développer et de mettre en œuvre un moteur de raisonnement dans une séquence de projets au cours du semestre.Couvre également comment formaliser et raisonner sur les systèmes de calcul à l'aide d'un prouveur de théorème interactif moderne.

Conditions préalables): CS 2800 avec une note minimale de D- CS 3000 avec une note minimale de D-

Les attributs): Expérience NUpath Capstone

CS 4830. Spécification, vérification et synthèse du système. (4 heures)

Couvre les thèmes fondamentaux de la modélisation formelle et de la spécification (systèmes de transition, logique temporelle, langages réguliers et oméga-réguliers, propriétés de sécurité et de vivacité, etc.) vérification assistée par ordinateur (exploration de l'espace d'état, vérification de modèle, vérification de modèle borné, -diagrammes de décision, vérification de modèle symbolique, etc.) compositionnalité et contrats de raisonnement d'hypothèse-garantie et conception à base de composants. Couvre également des sujets fondamentaux dans la synthèse assistée par ordinateur de systèmes corrects par construction, à partir de spécifications formelles de haut niveau ou d'exemples de scénarios. La conception de systèmes grands et complexes (circuits numériques, systèmes de contrôle embarqués tels que les véhicules automatisés, dispositifs de santé informatisés tels que les stimulateurs cardiaques, systèmes cyber-physiques tels que les carrefours automatisés, etc.) et leurs logiciels ne peuvent pas être réalisés à la main. Au lieu de cela, les concepteurs utilisent des techniques assistées par ordinateur qui leur permettent de créer des modèles de système et de vérifier l'exactitude de la conception avant que le système réel ne soit réellement construit.

Conditions préalables): CS 3000 avec une note minimale de D-

CS 4850. Création de moteurs de jeu. (4 heures)

Discute des composants des moteurs de jeu et des stratégies pour leur implémentation logicielle. Comprend des algorithmes de gestion graphique (animation, graphe de scène, niveau de détail), des algorithmes d'intelligence artificielle de base (recherche, prise de décision, détection) et des problèmes algorithmiques connexes (mise en réseau, threading, traitement d'entrée). Explore l'utilisation de la conception de logiciels pilotés par les données. Offre aux étudiants l'opportunité d'utiliser un moteur de rendu et de construire et intégrer plusieurs composants logiciels pour créer un moteur de jeu complet. Demande aux étudiants de travailler sur plusieurs travaux individuels pour appliquer les algorithmes puis développer un projet en équipe. Offre aux étudiants la possibilité d'apprendre la communication entre les équipes de la division du travail de gestion d'équipe/de projet et le cycle de développement de logiciels de mise en œuvre, de test, de critique et d'itération ultérieure. Les étudiants qui ne satisfont pas aux prérequis du cours peuvent demander l'autorisation de l'instructeur.

Conditions préalables): CS 3520 avec une note minimale de D- CS 3540 avec une note minimale de D-

CS 4910. Thèmes informatiques. (4 heures)

Offre un cours magistral en informatique sur un sujet qui n'est pas régulièrement enseigné dans un cours formel. Les sujets peuvent varier d'une offre à l'autre. Peut être répété jusqu'à trois fois.

Conditions préalables): CS 3500 avec une note minimale de D- CS 3800 avec une note minimale de D-

CS 4950. Séminaire de recherche en informatique. (1 heure)

Offre aux étudiants un examen approfondi de la recherche dans un sous-domaine particulier de l'informatique, des sciences de l'information, de la science des données ou de la cybersécurité. Le sous-domaine particulier varie d'un semestre à l'autre. Expose les étudiants à des sujets de recherche actuels, souvent par l'intermédiaire de membres du corps professoral invités. Offre aux étudiants l'occasion de s'entraîner à lire et à discuter de la littérature scientifique, de présenter des travaux scientifiques et de distiller les idées clés et les contributions des articles grâce aux résumés hebdomadaires requis.

Conditions préalables): CS 3950 avec une note minimale de D-

CS 4955. Séminaire d'enseignement de l'informatique. (1 heure)

Présente des techniques et des cadres pour préparer les étudiants de premier cycle à devenir des assistants d'enseignement plus efficaces dans le domaine de l'informatique. Les étudiants analysent et réfléchissent sur la littérature, des études de cas et des exemples réels d'enseignement de l'informatique. Offre aux étudiants la possibilité de participer à des activités en classe pour acquérir des compétences de présentation, de s'exercer à parler à différentes tailles d'auditoires et d'apprendre à travailler avec différents types d'auditoires. Se termine par un projet final dans lequel les étudiants préparent et présentent une conférence sur un sujet en informatique. Les étudiants qui réussissent sont préparés à des carrières dans l'enseignement, à présenter un contenu technique lors de la poursuite d'études supérieures et à présenter des informations techniques dans l'industrie.

Conditions préalables): CS 2500 avec une note minimale de D-

CS 4970. Junior/Senior Honours Project 1. (4 heures)

Se concentre sur un projet approfondi dans lequel un étudiant mène des recherches ou produit un produit lié au domaine principal de l'étudiant. Combiné avec Junior/Senior Project 2 ou l'équivalent défini par un collège pour 8 crédits de spécialisation dans le projet de discipline.

CS 4971. Junior/Senior Honours Project 2. (4 heures)

Se concentre sur le deuxième semestre d'un projet approfondi dans lequel un étudiant mène des recherches ou produit un produit lié au domaine principal de l'étudiant.

Conditions préalables): CS 4970 avec une note minimale de D-

CS 4990. Optionnel. (1-4 heures)

Offre des crédits au choix pour les cours suivis dans d'autres établissements d'enseignement. Peut être répété sans limite.

CS 4991. Recherche. (4,8 heures)

Offre la possibilité de mener des recherches sous la supervision du corps professoral. Peut être répété jusqu'à trois fois.

Conditions préalables): CS 3500 avec une note minimale de D- CS 3800 avec une note minimale de D-

Les attributs): NUpath Capstone Experience, NUpath Integration Experience, NUpath Writing Intensive

CS 4992. Étude dirigée. (1-6 heures)

Se concentre sur les étudiants examinant le matériel informatique standard de manière nouvelle ou le nouveau matériel informatique qui n'est pas couvert dans les cours formels. Peut être répété jusqu'à trois fois.

Conditions préalables): CS 3500 avec une note minimale de D- CS 3800 avec une note minimale de D-

CS 4993. Étude indépendante. (1-6 heures)

Offre un travail indépendant sous la direction des membres du département sur un sujet choisi. Le contenu du cours dépend de l'instructeur. Peut être répété jusqu'à trois fois.

Conditions préalables): CS 3500 avec une note minimale de D- CS 3800 avec une note minimale de D-

CS 4994. Stage. (4 heures)

Offre aux étudiants une opportunité de travail de stage. Peut être répété sans limite.

Les attributs): Expérience d'intégration NUpath

CS 4998. Recherche. (0 heures)

Offre une opportunité de documenter les contributions des étudiants à des projets de recherche ou des efforts créatifs.

CS 5001. Fondements intensifs de l'informatique. (4 heures)

Introduit la résolution systématique de problèmes par la programmation. Offre aux étudiants l'opportunité d'apprendre comment analyser un problème, comment diviser et organiser le problème en composants appropriés, comment décrire le problème dans un langage informatique, comment analyser et comprendre le comportement de leurs programmes, et comment tester que leur les programmes fonctionnent correctement. De plus, présente une méthode de conception de programme appelée programmation orientée objet et diverses façons d'organiser les données, y compris une discussion de leurs avantages et inconvénients. Pour mettre en pratique les concepts du cours, les étudiants entreprennent des tâches allant de petites tâches de programmation hautement spécifiées à des problèmes ouverts plus vastes où les étudiants conçoivent et codent leurs propres solutions.

Co-requis : CS 5003

CS 5002. Structures discrètes. (4 heures)

Présente les structures et les méthodes mathématiques qui constituent le fondement de l'informatique. Étudie les structures telles que les ensembles, les tuples, les séquences, les listes, les arbres et les graphiques. Discute des fonctions, des relations, de l'ordre et des relations d'équivalence. Examine les définitions inductives et récursives des structures et des fonctions. Couvre les principes de la preuve tels que les tables de vérité, la preuve inductive et la logique de base, ainsi que les techniques de comptage et les arguments nécessaires pour estimer la taille des ensembles, la croissance des fonctions et la complexité spatio-temporelle des algorithmes. Discute également des structures de données telles que les tableaux, les piles, les files d'attente, les listes et les algorithmes qui les manipulent.

CS 5003. Récitation pour CS 5001. (0 heures)

Fournit un format de discussion en petit groupe pour couvrir le matériel dans CS 5001. Coreq CS 5001..

Co-requis : CS 5001

CS 5004. Conception orientée objet. (4 heures)

Présente une approche comparative de la programmation et de la conception orientées objet. Discute des concepts d'objet, de classe, de métaclasse, de message, de méthode, d'héritage et de généricité. Passe en revue les formes de polymorphisme dans les langages orientés objet. Met en contraste l'utilisation de l'héritage et de la composition en tant que techniques doubles pour la réutilisation des logiciels : transfert par rapport à la délégation et sous-classement par rapport au sous-typage. Offre aux étudiants la possibilité d'acquérir une compréhension plus approfondie des principes de la programmation et de la conception orientées objet, y compris les composants logiciels, les modèles de conception orientés objet et l'utilisation de notations de conception graphique telles que UML (langage de modélisation unifié). Illustre les concepts de base de la conception orientée objet avec des études de cas dans des cadres d'application et en écrivant des programmes en Java.

Co-requis : CS 5005

CS 5005. Récitation pour CS 5004. (0 heures)

Fournit un format de discussion en petits groupes pour couvrir le matériel dans CS 5004.

Co-requis : CS 5004

CS 5006. Algorithmes. (2 heures)

Présente les principes et techniques de base pour la conception et la mise en œuvre d'algorithmes et de représentations de données efficaces. Prend en compte les algorithmes de division pour régner, les algorithmes de parcours de graphes, la programmation linéaire et les techniques d'optimisation. Couvre les structures fondamentales de représentation des données, telles que les tables de hachage, les arbres et les graphiques.

CS 5007. Systèmes informatiques. (2 heures)

Présente la conception de base des systèmes informatiques, des systèmes d'exploitation informatiques et du langage d'assemblage à l'aide d'une architecture RISC. Décrit les caches et la mémoire virtuelle. Couvre l'interface entre le langage assembleur et les langages de haut niveau, y compris les cadres d'appel et les pointeurs l'utilisation des appels système et de la programmation système pour montrer l'interaction avec le système d'exploitation et les structures de base d'un système d'exploitation, y compris les interfaces d'application, les processus, les threads, synchronisation, communication interprocessus, interblocage, gestion de la mémoire, systèmes de fichiers et contrôle des entrées/sorties.

CS 5008. Structures de données, algorithmes et leurs applications dans les systèmes informatiques. (4 heures)

Présente une approche intégrée de l'étude des structures de données, des algorithmes et de leur application au sein des sujets liés aux systèmes. Introduit une variété de techniques algorithmiques fondamentales (diviser pour régner, programmation dynamique, algorithmes de graphes) et de sujets liés aux systèmes (modèles de calcul, architecture informatique, compilation, logiciel système, réseau). Démontre l'intégration de sujets par le biais de tâches de programmation en langage C qui implémentent des structures de données fondamentales (listes, files d'attente, arbres, cartes, graphiques) et des algorithmes tels qu'ils sont appliqués dans les systèmes informatiques. Les sujets supplémentaires incluent la programmation d'applications qui exposent les étudiants aux primitives de différents sous-systèmes à l'aide de threads et de sockets.

Co-requis : CS 5009

CS 5009. Récitation pour CS 5008. (0 heures)

Fournit un format d'apprentissage actif en petit groupe pour augmenter le matériel dans CS 5008.

Co-requis : CS 5008

CS 5010. Paradigme de conception de programmation. (4 heures)

Présente les paradigmes de conception de programmes modernes. Commence par la conception de programmes fonctionnels, en introduisant la notion de recette de conception. Cette dernière se compose de deux parties : une organisation des tâches (allant de la description des données à la création d'une suite de tests) et une approche orientée données de l'organisation des programmes (allant des données atomiques aux définitions de données autoréférentielles et aux fonctions comme Les données). Le cours progresse ensuite vers la conception orientée objet, expliquant comment il se généralise et contraste avec la conception fonctionnelle. En plus d'étudier la conception de programmes, les étudiants ont également la possibilité de mettre en pratique les techniques de programmation par paires et de révision de code public, telles qu'on les trouve dans l'industrie aujourd'hui.

Co-requis : CS 5011

CS 5011. Récitation pour CS 5010. (0 heures)

Fournit un format de discussion en petits groupes pour couvrir le matériel dans CS 5010.

Co-requis : CS 5010

CS 5083. Gestion de projet logiciel avec Scrum. (2 heures)

Offre aux étudiants l'opportunité d'acquérir une compréhension de la méthodologie Scrum pour gérer des projets logiciels en utilisant les principes Lean. Explique le cadre Scrum ainsi que les cérémonies et les rôles clés. Montre quels aspects de Scrum sont requis et comment ils gèrent les risques du projet.

CS 5097. Réalité mixte. (4 heures)

Cherche à fournir une base solide dans les principes fondamentaux de la réalité virtuelle et augmentée, largement définie comme la réalité mixte (XR), et une expérience pratique du développement d'applications XR. Offre aux étudiants l'opportunité de se plonger dans ce domaine de recherche et de pratique en plein essor en informatique. Compte tenu de la nature complexe des environnements XR, ce cours synthétise les connaissances théoriques et pratiques de diverses disciplines, notamment l'infographie, les interfaces 3D, l'interaction homme-machine, les systèmes de suivi et la psychologie perceptive (pour n'en nommer que quelques-unes). Les technologies XR ont récemment connu un regain d'intérêt.

CS 5100. Fondements de l'intelligence artificielle. (4 heures)

Présente les problèmes fondamentaux, les théories et les algorithmes du domaine de l'intelligence artificielle. Les sujets comprennent la recherche heuristique et les arbres de jeu, la représentation des connaissances à l'aide du calcul des prédicats, la déduction automatisée et ses applications, la résolution de problèmes et la planification, et l'introduction à l'apprentissage automatique. Le travail de cours requis comprend la création de programmes de travail qui résolvent des problèmes, raisonnent logiquement et/ou améliorent leurs propres performances à l'aide des techniques présentées dans le cours. Nécessite une expérience en programmation Java.

Les attributs): Expérience NUpath Capstone, NUpath Writing Intensive

CS 5150. Intelligence artificielle de jeu. (4 heures)

Offre un aperçu des approches classiques et modernes de l'intelligence artificielle dans les jeux numériques. Se concentre sur la création d'agents et d'environnements crédibles dans le but de fournir une expérience amusante et engageante à un joueur. Couvre la modélisation des joueurs, la génération de contenu procédural, les arbres de comportement, la narration interactive, les systèmes de prise de décision, la modélisation cognitive et la planification de parcours. Explore différentes approches pour la génération de comportements, y compris l'apprentissage et les systèmes basés sur des règles. Exige que les étudiants effectuent plusieurs devoirs individuels dans ces domaines pour appliquer les concepts abordés en classe. Les élèves choisissent un projet final de groupe, qui nécessite un rapport, pour explorer plus en profondeur un aspect de l'intelligence artificielle pour les jeux. Offre aux étudiants l'occasion d'apprendre la gestion d'équipe et la communication. Nécessite une connaissance des algorithmes et une expérience de la conception orientée objet ou de la programmation fonctionnelle.

Les attributs): Expérience NUpath Capstone, NUpath Writing Intensive

CS 5170. Intelligence artificielle pour l'interaction homme-machine. (4 heures)

Offre un aperçu du large éventail de techniques d'IA qui exploitent les connaissances du domaine et des humains pour faciliter l'interaction entre les humains et les systèmes, arbitrer l'interaction humain-humain, tirer parti des humains pour améliorer les performances du système et promouvoir des résultats bénéfiques au niveau social et individuel. Les sujets peuvent inclure l'IA/le calcul humain, la reconnaissance des plans et des activités, la détection/les maisons intelligentes, l'apprentissage actif, l'élicitation des préférences, les interfaces utilisateur intelligentes/adaptatives et les simulations mixtes homme-agent. Étudie comment concevoir et développer des technologies d'interaction intelligentes tout en évaluant de manière critique leur impact social et éthique.

Conditions préalables): CS 5100 avec une note minimale de C- CS 6140 avec une note minimale de C-

CS 5180. Apprentissage par renforcement et prise de décision séquentielle. (4 heures)

Présente l'apprentissage par renforcement et les cadres de calcul sous-jacents et le cadre de processus décisionnel de Markov. Couvre une variété d'algorithmes d'apprentissage par renforcement, y compris les méthodes basées sur un modèle, sans modèle, fonction de valeur, gradient de politique, acteur critique et Monte Carlo. Examine les représentations couramment utilisées, y compris les représentations d'apprentissage en profondeur et les approches de problèmes partiellement observables. Les étudiants doivent avoir une connaissance pratique des probabilités et de l'algèbre linéaire, effectuer des travaux de programmation et terminer un projet de cours qui applique une forme d'apprentissage par renforcement à un problème d'intérêt.

CS 5200. Systèmes de gestion de base de données. (4 heures)

Présente les systèmes de gestion de bases de données relationnelles en tant que classe de systèmes logiciels. Prépare les étudiants à devenir des utilisateurs avertis des systèmes de gestion de bases de données. Couvre la théorie de la conception, le langage de requête et les problèmes de performances/réglage. Les sujets incluent l'algèbre relationnelle, SQL, les procédures stockées, les fonctions définies par l'utilisateur, les curseurs, les programmes SQL embarqués, les interfaces client-serveur, les diagrammes entité-relation, la normalisation, les arbres B, la concurrence, les transactions, la sécurité des bases de données, les contraintes, les SGBD relationnels objet , et des moteurs spécialisés tels que l'espace, le texte, la conversion XML et les séries chronologiques. Comprend des exercices utilisant un système de gestion de base de données commerciale relationnelle ou objet-relationnelle.

Les attributs): Analyser/utiliser des données NUpath, Raisonnement formel/quant NUpath

CS 5310. Infographie. (4 heures)

Présente les principes fondamentaux de l'infographie bidimensionnelle et tridimensionnelle, en mettant l'accent sur les approches permettant d'obtenir des images réalistes. Couvre les algorithmes bidimensionnels pour le dessin de lignes et de courbes, l'anticrénelage, le remplissage et l'écrêtage. Étudie le rendu de scènes tridimensionnelles composées de sphères, de polygones, de surfaces quadriques et de surfaces bicubiques à l'aide du lancer de rayons et de la radiosité. Inclut des techniques pour ajouter de la texture aux surfaces à l'aide de textures et de bump maps, de bruit et de turbulence. Nécessite des connaissances en algèbre linéaire.

Conditions préalables): MATH 2331 avec une note minimale de D- ou d'admission au programme d'études supérieures

Les attributs): Expérience NUpath Capstone, NUpath Writing Intensive

CS 5330. Reconnaissance de formes et vision par ordinateur. (4 heures)

Présente les techniques fondamentales pour la vision par ordinateur de bas et de haut niveau. Examine la formation d'images, le traitement précoce, la détection des limites, la segmentation d'images, l'analyse de texture, la forme à partir de l'ombrage, la stéréo photométrique, l'analyse de mouvement via le flux optique, la modélisation d'objets, la description de formes et la reconnaissance d'objets (classification). Discute des modèles de vision humaine (effets de la gestalt, perception de la texture, contours subjectifs, illusions visuelles, mouvement apparent, rotations mentales et vision cyclopéenne). Nécessite des connaissances en algèbre linéaire.

Conditions préalables): MATH 2331 avec une note minimale de D- ou d'admission au programme d'études supérieures

CS 5335. Science et systèmes robotiques. (4 heures)

Présente les robots mobiles autonomes en mettant l'accent sur les algorithmes et le développement de logiciels, y compris le contrôle en boucle fermée, l'architecture logicielle du robot, la locomotion et la navigation sur roues, la détection tactile et visuelle de base, la détection et l'évitement d'obstacles, ainsi que la saisie et la manipulation d'objets. Offre aux étudiants la possibilité de construire progressivement des robots mobiles à partir d'un kit électromécanique préconçu. Les robots sont contrôlés sans fil par un logiciel conçu par les étudiants, construit dans un cadre logiciel de robotique fourni.Se termine par un projet qui relie les algorithmes et le matériel développés dans le cours avec un sujet sélectionné dans la littérature de recherche en robotique actuelle.

CS 5340. Interaction ordinateur/humain. (4 heures)

Couvre les principes de l'interaction homme-machine et la conception et l'évaluation des interfaces utilisateur. Les sujets comprennent un aperçu des sous-systèmes de traitement de l'information humaine (perception, mémoire, attention et résolution de problèmes) comment les propriétés de ces systèmes affectent la conception des interfaces utilisateur les principes, les lignes directrices et les langages de spécification pour la conception de bonnes interfaces utilisateur, en mettant l'accent sur l'outil kits et bibliothèques d'objets d'interface utilisateur graphique standard et une variété de méthodologies d'évaluation d'interface qui peuvent être utilisées pour mesurer la convivialité du logiciel. D'autres sujets peuvent inclure les principes et outils de conception du World Wide Web, le travail coopératif assisté par ordinateur, les interfaces multimodales et « prochaine génération », les interfaces de parole et de langage naturel et les interfaces de réalité virtuelle. Le travail de cours comprend à la fois la création et la mise en œuvre de conceptions d'interface utilisateur originales et l'évaluation des interfaces utilisateur créées par d'autres. Nécessite une connaissance du langage de programmation C/UNIX.

CS 5400. Principes du langage de programmation. (4 heures)

Étudie les composants de base des langages de programmation, la spécification de la syntaxe et de la sémantique, ainsi que la description et la mise en œuvre des fonctionnalités du langage de programmation. Discute d'exemples dans une variété de langues.

Conditions préalables): CS 5010 avec une note minimale de D- ou CS 5004 avec une note minimale de B-

CS 5500. Fondements du génie logiciel. (4 heures)

Couvre les fondements de l'ingénierie logicielle, y compris les modèles de cycle de vie de développement de logiciels (par exemple, en cascade, en spirale, agile) l'analyse des exigences de conception centrée sur l'utilisateur les principes de conception de logiciels et les tests de modèles (tests fonctionnels, tests structurels, stratégies de test) la refactorisation de code et l'architecture logicielle de débogage et conception, intégration et déploiement. Comprend un projet de cours où certaines des méthodes de génie logiciel (de l'analyse des exigences aux tests) sont appliquées dans un cadre d'équipe. Nécessite l'admission au programme MS ou l'achèvement de tous les cours de transition.

Conditions préalables): CS 5010 avec une note minimale de D ou CS 5004 avec une note minimale de C

Les attributs): NUpath Écriture intensive

CS 5520. Développement d'applications mobiles. (4 heures)

Se concentre sur le développement d'applications mobiles sur un téléphone mobile ou une plate-forme connexe. Discute de la construction de l'interface utilisateur de gestion de la mémoire, y compris les principes MVC et les outils spécifiques de traitement des données d'événements tactiles, y compris les données de base, les techniques de réseau SQL, XML et JSON et le chargement d'URL et, enfin, des spécificités telles que le GPS et la détection de mouvement qui peuvent dépendre de la plate-forme mobile particulière. Les étudiants doivent travailler sur un projet qui produit une application mobile de qualité professionnelle et démontrer l'application qu'ils ont développée. L'instructeur choisit une plate-forme mobile moderne à utiliser dans le cours.

CS 5600. Systèmes informatiques. (4 heures)

Étudie la structure, les composants, la conception, la mise en œuvre et le fonctionnement interne des systèmes informatiques, en se concentrant principalement sur le niveau du système d'exploitation. Examine le matériel informatique et l'architecture, y compris l'unité arithmétique et logique et l'unité de contrôle. Couvre les composants actuels du système d'exploitation et les techniques de construction, y compris la mémoire et le contrôleur de mémoire, la gestion des périphériques d'E/S, les pilotes de périphérique, la gestion de la mémoire, les structures du système de fichiers et l'interface utilisateur. Présente les systèmes d'exploitation distribués. Discute des problèmes liés à la concurrence et à la distribution, tels que la planification des processus simultanés, la communication et la synchronisation interprocessus, le partage et l'allocation des ressources, ainsi que la gestion et la résolution des blocages. Comprend des exemples de systèmes d'exploitation réels. Expose les étudiants aux concepts du système à travers des exercices de programmation. Nécessite l'admission au programme MS ou l'achèvement de tous les cours de transition.

CS 5610. Développement Web. (4 heures)

Discute du développement Web pour les sites dynamiques, axés sur les données et interactifs. Se concentre sur les problèmes de développement de logiciels liés à l'intégration de plusieurs langues, de technologies de données assorties et d'interaction Web. Prend en compte les services ASP.NET, C#, HTTP, HTML, CSS, XML, XSLT, JavaScript, AJAX, RSS/Atom, SQL et Web. Chaque étudiant doit déployer des expériences Web conçues individuellement qui illustrent les technologies Web et au moins un grand projet de site Web intégratif. Les étudiants peuvent travailler en équipe avec la permission de l'instructeur. Chaque étudiant ou équipe doit également créer une documentation complète de leurs objectifs, plans, décisions de conception, réalisations et directives d'utilisation. Tous les fichiers sources doivent être ouverts et être automatiquement servis par un serveur de sources.

Les attributs): Expérience NUpath Capstone, NUpath Writing Intensive

CS 5700. Principes fondamentaux des réseaux informatiques. (4 heures)

Étudie les protocoles réseau, en se concentrant sur la modélisation et l'analyse, et les architectures. Présente les concepts de modélisation, en mettant l'accent sur la théorie des files d'attente, y compris le théorème de Little, les systèmes de files d'attente M/M/1, M/M/m, M/D/1 et M/G/1. Discute de l'évaluation des performances des réseaux informatiques, y compris les mesures de performance, les outils et la méthodologie d'évaluation, les techniques de simulation et les limites. Présente les différentes fonctions d'harmonisation nécessaires à la communication et au fonctionnement efficace des réseaux informatiques et examine des exemples de réseaux Ethernet, FDDI et sans fil. Couvre les protocoles de couche liaison, y compris le cadrage de paquets HDLC, PPP et SLIP couvrant l'arborescence et les ponts d'apprentissage, les techniques de détection d'erreurs et les algorithmes de demande de répétition automatique à fenêtre glissante et les services fiables/ordonnés et les disciplines de mise en file d'attente, y compris FQ et WFQ. Présente des schémas de contrôle de flux, tels que le contrôle de flux de fenêtre et des schémas de contrôle de débit de seau à fuite, et traite du contrôle de la congestion et de l'équité. Nécessite des connaissances en théorie des probabilités.

CS 5800. Algorithmes. (4 heures)

Présente les techniques mathématiques utilisées pour la conception et l'analyse d'algorithmes informatiques. Se concentre sur les paradigmes de conception algorithmique et les techniques d'analyse de l'exactitude, de la complexité temporelle et spatiale des algorithmes. Les sujets peuvent inclure la notation asymptotique, les récurrences, les invariants de boucle, les triplets de Hoare, le tri et la recherche, les structures de données avancées, les limites inférieures, le hachage, les algorithmes gloutonnes, la programmation dynamique, les algorithmes de graphes et la complétude NP.

CS 5850. Création de moteurs de jeu. (4 heures)

Discute des composants des moteurs de jeu et des stratégies pour leur implémentation logicielle. Comprend des algorithmes de gestion graphique (animation, graphe de scène, niveau de détail), des algorithmes d'intelligence artificielle de base (recherche, prise de décision, détection) et des problèmes algorithmiques connexes (mise en réseau, threading, traitement d'entrée). Explore l'utilisation de la conception de logiciels pilotés par les données. Offre aux étudiants l'opportunité d'utiliser un moteur de rendu et de construire et intégrer plusieurs composants logiciels pour créer un moteur de jeu complet. Oblige les étudiants à travailler sur des devoirs individuels puis à développer un projet en équipe, ce qui nécessite un rapport. Offre aux étudiants la possibilité d'apprendre la communication entre les équipes de la division du travail de gestion d'équipe/de projet et le cycle de développement de logiciels de mise en œuvre, de test, de critique et d'itération ultérieure. Nécessite une connaissance de l'infographie, du calcul différentiel, des concepts de systèmes d'exploitation et des algorithmes.

CS 5963. Sujets. (1 heure)

Offre aux étudiants l'occasion d'en apprendre davantage sur des problèmes d'actualité, de développer de nouvelles compétences ou d'explorer des domaines d'intérêt général dans un format de cours immersif et court. Le contenu et les instructeurs varient selon l'offre.

CS 5964. Projets pour les professionnels. (0 heures)

Offre aux étudiants un cadre de projet appliqué dans lequel appliquer leur apprentissage curriculaire. En travaillant avec un sponsor, les étudiants affinent un sujet de recherche appliquée, effectuent des recherches, élaborent des recommandations qui sont partagées avec un sponsor partenaire et créent un plan de mise en œuvre de leurs recommandations. Cherche à aider les étudiants avec un programme qui soutient le développement de compétences clés en communication d'entreprise, de compétences en gestion de projet et de client, et de cadres d'analyse commerciale. Offre aux étudiants l'opportunité d'apprendre des commentaires des sponsors, d'examiner les « leçons apprises » et d'intégrer les suggestions de cet examen pour améliorer et développer davantage leur développement de carrière et leur plan professionnel. Peut être répété deux fois.

CS 5965. S'engager avec des partenaires de l'industrie pour les professionnels en devenir. (0 heures)

Offre aux étudiants un cadre de projet appliqué amélioré dans lequel appliquer leur apprentissage du programme. En travaillant avec un sponsor partenaire, les étudiants affinent un sujet de recherche appliquée, effectuent des recherches, élaborent des recommandations qui sont partagées avec le sponsor partenaire et créent un plan de mise en œuvre de leurs recommandations. Le programme aide les étudiants à développer des compétences clés en communication d'entreprise, des compétences en gestion de projets et de clients et des cadres d'analyse commerciale. Offre aux étudiants la possibilité d'apprendre des commentaires des sponsors, de revoir les leçons apprises et d'intégrer des suggestions pour améliorer et perfectionner leur développement de carrière et leur plan professionnel. Des opportunités de développement de carrière par le biais d'ateliers de renforcement des compétences, de panels et de préparation aux entretiens sont disponibles. Les interactions partenaires-étudiants, y compris une présentation de projet culminant, permettent aux partenaires d'évaluer le potentiel des étudiants pour une coopérative, un stage ou d'autres opportunités d'emploi avec le partenaire.

CS 5976. Étude dirigée. (2-4 heures)

Se concentre sur les étudiants examinant le matériel informatique standard de manière nouvelle ou le nouveau matériel informatique qui n'est pas couvert dans les cours formels. Peut être répété jusqu'à trois fois.

CS 6120. Traitement du langage naturel. (4 heures)

Fournit une introduction à la modélisation informatique du langage humain, à l'effort continu pour créer des programmes informatiques capables de communiquer avec les gens en langage naturel et aux applications actuelles du domaine du langage naturel, telles que la classification automatisée des documents, le traitement intelligent des requêtes et l'extraction d'informations. Les sujets comprennent les modèles informatiques de grammaire et d'analyse automatique, les modèles de langage statistiques et l'analyse de grands corpus de textes, la sémantique du langage naturel et les programmes qui comprennent le langage, les modèles de structure du discours et l'utilisation du langage par des agents intelligents. Les travaux de cours comprennent l'analyse formelle et mathématique des modèles de langage et la mise en œuvre de programmes de travail qui analysent et interprètent le texte en langage naturel.

CS 6130. Informatique affective. (4 heures)

Étudie l'informatique affective — l'informatique qui se rapporte aux émotions, en découle ou les influence. Offre un aperçu de la théorie de l'émotion humaine (comment elle découle de et influence la cognition, le corps et l'environnement social) et des techniques informatiques pour modéliser les processus émotionnels humains ainsi que pour reconnaître et synthétiser le comportement émotionnel. Explique comment ceux-ci peuvent être appliqués à la conception d'applications. Offre aux étudiants la possibilité d'acquérir une solide expérience dans la théorie et la pratique de l'informatique centrée sur l'humain en ce qui concerne les jeux, les environnements immersifs et les applications pédagogiques. Réunit des étudiants de différentes disciplines pour travailler ensemble et apprendre les uns des autres. CS 6130 et PSYC 6130 sont inter-listés.

CS 6140. Apprentissage automatique. (4 heures)

Fournit un aperçu général d'une variété de techniques utilisées dans l'apprentissage automatique et l'exploration de données, et examine également les problèmes associés à leur utilisation. Les sujets comprennent des algorithmes pour l'apprentissage supervisé, y compris l'induction d'arbres de décision, les réseaux de neurones artificiels, l'apprentissage basé sur des instances, les méthodes probabilistes et les machines vectorielles de support pour l'apprentissage non supervisé et l'apprentissage par renforcement. Couvre également la théorie de l'apprentissage informatique et d'autres méthodes d'analyse et de mesure de la performance des algorithmes d'apprentissage. Le travail de cours comprend un projet de session de programmation.

Conditions préalables): CS 5800 avec une note minimale de C- ou CS 7800 avec une note minimale de C-

CS 6200. Recherche d'informations. (4 heures)

Fournit une introduction aux systèmes de recherche d'informations et aux différentes approches de la recherche d'informations. Les sujets abordés comprennent l'évaluation des systèmes de recherche d'informations modèles de recherche, de langage et d'indexation organisation de fichiers compression de pertinence rétroaction regroupement recherche distribuée et métarecherche approches probabilistes de recherche d'informations filtrage de recherche Web, filtrage collaboratif et systèmes de recommandation IR multilingue multimédia IR et apprentissage automatique pour récupération de l'information.

CS 6220. Techniques d'exploration de données. (4 heures)

Couvre divers aspects de l'exploration de données, notamment la classification, la prédiction, les méthodes d'ensemble, les règles d'association, l'exploration de séquences et l'analyse de cluster. Le projet de classe implique une pratique pratique de l'extraction de connaissances utiles à partir d'un grand ensemble de données.

Conditions préalables): CS 5800 avec une note minimale de C- ou CS 7800 avec une note minimale de C-

CS 6240. Traitement de données parallèles à grande échelle. (4 heures)

Couvre les techniques d'analyse de données volumineuses qui évoluent avec un nombre croissant de nœuds de calcul, par exemple pour le cloud computing. Met l'accent sur les approches de partitionnement des problèmes et des données qui répartissent efficacement le travail, tout en maintenant un coût total de calcul et de transfert de données bas. Étudie et analyse des algorithmes déterministes et aléatoires dans une variété de domaines, notamment les graphiques, l'exploration de données, l'algèbre linéaire et la recherche d'informations en termes de coût, d'évolutivité et de robustesse contre l'asymétrie. Le travail du cours met l'accent sur l'expérience pratique de la programmation avec une technologie de traitement de données volumineuses à la pointe de la technologie. Les étudiants qui ne satisfont pas aux prérequis du cours peuvent demander l'autorisation de l'instructeur.

Conditions préalables): CS 5800 avec une note minimale de C- ou CS 7800 avec une note minimale de C- ou EECE 7205 avec une note minimale de C-

CS 6350. Méthodes de recherche empirique. (4 heures)

Présente un aperçu des méthodes pour mener des recherches empiriques en informatique. Ces méthodes aident à fournir des réponses objectives aux questions sur la convivialité, l'efficacité et l'acceptabilité des systèmes. Le cours couvre les bases de la méthode scientifique, allant d'une enquête sur des mesures objectives aux principes fondamentaux des tests d'hypothèses en utilisant des conceptions de recherche relativement simples, et à des conceptions de recherche et des méthodes statistiques plus avancées. Le cours comprend également une quantité importante de travaux sur le terrain, couvrant la conception, la conduite et la présentation de petites études empiriques.

CS 6410. Compilateurs. (4 heures)

Attend que chaque élève écrive un petit compilateur. Les sujets comprennent la génération d'analyseurs, les arbres de syntaxe abstraite, les tables de symboles, la vérification de type, la génération de code intermédiaire, l'amélioration de code simple, l'allocation de registres, les structures d'exécution et la génération de code.

Conditions préalables): CS 5400 avec une note minimale de C- ou CS 7400 avec une note minimale de C-

Les attributs): Expérience NUpath Capstone, NUpath Writing Intensive

CS 6510. Développement de logiciels avancés. (4 heures)

Conçu pour intégrer des concepts académiques et une expérience pratique de la conception de logiciels en faisant travailler les étudiants au sein d'une équipe de programmation, avec la possibilité de diriger une sous-équipe. Offre aux étudiants la possibilité d'étudier en profondeur certains aspects du processus de développement. L'objectif est de faire participer les étudiants à un projet à grande échelle, en prenant le temps de réfléchir et d'analyser le travail et le processus, plutôt que de se concentrer exclusivement sur le produit final. Les étudiants qui ne satisfont pas aux prérequis du cours peuvent demander l'autorisation de l'instructeur.

Conditions préalables): (CS 5004 avec une note minimale de B- ou CS 5010 avec une note minimale de C-) CS 5500 avec une note minimale de C-

CS 6535. Logiciel d'ingénierie fiable. (4 heures)

Continue l'exploration de plusieurs thèmes de CS 5010 : tests unitaires, tests aléatoires et raisonnement logique sur les logiciels. Revoit spécifiquement l'idée de conception systématique et son lien avec l'affirmation logique du fonctionnement des programmes. Après une introduction au langage de programmation ACL2 et au démonstrateur de théorèmes, offre aux étudiants la possibilité de reconcevoir des jeux interactifs (par exemple, "Space Invaders") et de travailler à les transformer en projets fiables. Les étudiants qui ne satisfont pas aux prérequis du cours peuvent demander l'autorisation de l'instructeur.

Conditions préalables): CS 5010 avec une note minimale de C-

CS 6620. Fondamentaux du Cloud Computing. (4 heures)

Couvre les principes fondamentaux du cloud computing, y compris la virtualisation et les conteneurs, les systèmes de fichiers distribués et les magasins d'objets, les plates-formes d'infrastructure en tant que service, les plates-formes cloud open source, les principales plates-formes de données volumineuses et les sujets relatifs aux systèmes à l'échelle des centres de données. Combine le matériel de classe fourni via des conférences, des lectures de littérature, des présentations d'étudiants et un projet logiciel d'un semestre.

CS 6650. Création de systèmes distribués évolutifs. (4 heures)

Couvre les éléments essentiels des systèmes distribués et concurrents et s'appuie sur ces connaissances avec des principes d'ingénierie et une expérience pratique des technologies et des méthodes de pointe pour la construction de systèmes évolutifs. L'évolutivité est une qualité essentielle des systèmes Internet et nécessite des compétences et des connaissances spécialisées pour créer des systèmes évolutifs à faible coût.

CS 6710. Réseau sans fil. (4 heures)

Couvre à la fois les problèmes théoriques liés aux réseaux sans fil et les systèmes pratiques pour les réseaux de données sans fil et les systèmes de télécommunications sans fil cellulaires. Les sujets comprennent les principes fondamentaux des communications radio, les schémas d'accès à canaux multiples, les réseaux locaux sans fil, le routage dans les réseaux sans fil ad hoc multi-sauts, l'IP mobile et les améliorations TCP pour les liaisons sans fil, les systèmes de télécommunication cellulaires et la qualité de service dans le contexte des réseaux sans fil. Nécessite un projet qui aborde certains problèmes de recherche récents dans les réseaux sans fil et mobiles.

Conditions préalables): CS 5700 avec une note minimale de C-

CS 6760. Confidentialité, sécurité et convivialité. (4 heures)

Défie la sagesse conventionnelle et encourage les étudiants à découvrir des façons dont la sécurité, la confidentialité et la convivialité peuvent être mises en synergie dans la conception du système. La convivialité et la sécurité sont largement considérées comme deux objectifs de conception antagonistes pour les systèmes informatiques complexes. Les sujets comprennent la criminalistique informatique, la criminalistique de réseau, la conception d'interface utilisateur, les sauvegardes, la journalisation, les facteurs économiques affectant l'adoption de la technologie de sécurité, la gestion de la confiance et les politiques publiques connexes. Utilise des études de cas telles que PGP, S/MIME et SSL. Introduit la cryptographie de base et la fonction de hachage selon les besoins. Les travaux de cours comprennent l'analyse des documents, des ensembles de problèmes et un projet de session substantiel.

CS 6949. Préparation de carrière. (1 heure)

Conçu pour préparer les étudiants diplômés à l'alternance travail-études/stage en utilisant un modèle de préparation de carrière. Les sujets comprennent l'établissement d'objectifs, la rédaction de curriculum vitae, les entrevues, la stratégie de recherche d'emploi et le professionnalisme en milieu de travail.Offre aux étudiants la possibilité de développer des objectifs de carrière, d'apprendre à identifier et à acquérir les outils et la capacité d'évaluer ce qu'ils savent et doivent savoir par rapport à la réalisation de leurs objectifs de carrière, et de justifier ce qu'ils doivent apprendre dans leur programme coopératif/ expérience de stage à transférer vers/de leur programme universitaire à une future carrière. Les étudiants qui ont l'intention de participer à un programme coopératif ou à un stage doivent terminer ce cours de manière satisfaisante, qui est généralement suivi au cours du premier semestre de l'étudiant.

CS 6954. Expérience de travail coopératif - Mi-temps. (0 heures)

Offre aux étudiants admissibles une opportunité d'expérience de travail. Peut être répété sans limite.

CS 6962. Au choix. (1-4 heures)

Offre des crédits au choix pour les cours suivis dans d'autres établissements d'enseignement. Peut être répété sans limite.

CS 6964. Expérience de travail coopératif. (0 heures)

Offre aux étudiants admissibles une opportunité d'expérience de travail. Peut être répété sans limite.

CS 6965. Expérience de travail coopératif à l'étranger. (0 heures)

Offre aux étudiants éligibles la possibilité d'une expérience de travail à l'étranger. Peut être répété sans limite.

CS 7140. Apprentissage automatique avancé. (4 heures)

Couvre des sujets sur l'apprentissage automatique avancé. Présente du matériel dans la littérature actuelle sur l'apprentissage automatique. Se concentre sur les modèles graphiques, les modèles à variables latentes, l'inférence bayésienne et les méthodes bayésiennes non paramétriques. Cherche à préparer les étudiants à faire de la recherche en apprentissage automatique. Attend que les étudiants lisent des articles de conférences et de revues, présentent ces articles et rédigent un document de recherche individuel. Les CS 7140 et EECE 7397 sont croisées.

Conditions préalables): CS 6140 avec une note minimale de C- ou EECE 7204 avec une note minimale de C- ou EECE 7313 avec une note minimale de C-

CS 7150. Apprentissage en profondeur. (4 heures)

Présente l'apprentissage en profondeur, y compris le cadre d'apprentissage statistique, la minimisation empirique des risques, la sélection de la fonction de perte, les couches entièrement connectées, les couches convolutives, les couches de mise en commun, la normalisation par lots, les perceptrons multicouches, les réseaux de neurones convolutifs, les autoencodeurs, les réseaux U, les réseaux résiduels, la descente de gradient descente de gradient stochastique, rétropropagation, autograd, visualisation des caractéristiques du réseau neuronal, robustesse et exemples contradictoires, interprétabilité, apprentissage continu et applications en vision par ordinateur et traitement du langage naturel. Suppose que les étudiants ont déjà une connaissance de base de l'apprentissage automatique, de l'optimisation, de l'algèbre linéaire et des statistiques.

Conditions préalables): CS 6140 avec une note minimale de C- ou DS 5220 avec une note minimale de C-

CS 7180. Sujets spéciaux en intelligence artificielle. (4 heures)

Propose divers sujets sur l'intelligence artificielle. Peut être répété jusqu'à deux fois.

CS 7200. Méthodes statistiques pour l'informatique. (4 heures)

Introduit les concepts de la statistique appliquée. Couvre la caractérisation fréquentiste et bayésienne de l'incertitude pour les données continues et catégorielles, les principes de la conception expérimentale et les méthodes d'inférence causale. Discute des fondements méthodologiques, ainsi que des questions de mise en œuvre et d'utilisation pratiques.

CS 7240. Principes de gestion des données évolutives : théorie, algorithmes et systèmes de base de données. (4 heures)

Couvre les algorithmes, les principes de base et les concepts fondamentaux pour la gestion des données à grande échelle. Les sujets comprennent les modèles de données, les langages de requête, l'exécution et l'optimisation des requêtes, la complexité de l'exécution des requêtes et la résilience des requêtes, le traitement des flux de données, le traitement parallèle des données, les transactions, l'algèbre linéaire vs relationnelle, les factorisations et l'incertitude en logique. Nécessite une connaissance standard des algorithmes et de la dureté de CS (par exemple, une classe de premier cycle typique basée sur un manuel d'algorithmes standard tel que Ericson Cormen, Leiserson, Rivest et Stein ou Dasgupta, Papadimitriou et Vazirani). Offre aux étudiants la possibilité d'acquérir une expérience pratique grâce à des missions plus petites et un projet. Le projet est flexible pour permettre aux étudiants d'explorer les aspects évolutifs de la gestion et de l'analyse des données liés à leur recherche doctorale.

CS 7250. Visualisation de l'information : théorie et applications. (4 heures)

Couvre des sujets d'intérêt fondamentaux et contemporains dans la visualisation de données pour permettre la représentation efficace des données dans toutes les disciplines, y compris des exemples tirés de l'informatique, des sciences physiques, des sciences biomédicales, des sciences humaines et de l'économie. Les sujets comprennent la théorie et la méthodologie de la visualisation des données, la conception et l'évaluation de la visualisation, la perception visuelle et la cognition, les principes d'interaction et les techniques de codage et de représentation des données. Les étudiants qui ne respectent pas les restrictions du cours peuvent demander l'autorisation de l'instructeur.

CS 7260. Visualisation pour la science des réseaux. (4 heures)

Couvre les principes de la visualisation de l'information dans le contexte spécifique de la science des réseaux. Présente l'encodage visuel des données et notre compréhension des principes d'interaction de la vision et de la perception humaine, y compris le filtrage, le pivotement, l'agrégation et les techniques d'évaluation des sujets quantitatifs et humains. Couvre les techniques de visualisation pour plusieurs types de réseaux, y compris les réseaux multivariés avec des attributs pour les entités et les relations, les réseaux évolutifs et dynamiques qui changent au fil du temps, les réseaux hétérogènes avec plusieurs types d'entités et les réseaux géospatiaux. Offre aux étudiants l'occasion d'en apprendre davantage sur la conception d'algorithmes de mise en page pour les visualisations nœud-lien et matricielle.

CS 7280. Sujets spéciaux dans la gestion de base de données. (4 heures)

Propose divers sujets. Les domaines possibles incluent les systèmes de base de données orientés objet et les systèmes de base de données distribués. Peut être répété jusqu'à deux fois.

CS 7290. Sujets spéciaux en science des données. (4 heures)

Offre des sujets spéciaux en science des données, y compris l'apprentissage automatique, les statistiques, l'exploration de données, l'analyse de données parallèles et distribuées, les systèmes de bases de données, la recherche d'informations, la représentation des connaissances, la visualisation de l'information, le traitement du langage naturel, la biologie computationnelle et la bioinformatique, les sciences sociales computationnelles, les humanités numériques, l'informatique de santé, l'analyse commerciale et l'analyse prédictive. Peut être répété une fois pour un maximum de 8 crédits au total.

CS 7295. Sujets spéciaux dans la visualisation de données. (4 heures)

Propose divers sujets en visualisation de données. Peut être répété une fois.

CS 7340. Théorie et méthodes de l'interaction homme-machine. (4 heures)

Couvre les fondements des capacités humaines, les artefacts informatiques, la conception et l'évaluation. L'interaction homme-machine concerne la conception et l'évaluation de logiciels sur la base d'une compréhension approfondie de la façon dont les humains interagissent avec les ordinateurs, les appareils et les capteurs. Le domaine fusionne les théories de la psychologie et de l'informatique, en utilisant des méthodes de l'IA et du design. Présente les théories cognitives, perceptives et affectives et les théories des différences individuelles qui nous permettent de concevoir et de développer de meilleurs logiciels et systèmes informatiques. Couvre également les méthodes de recherche pour la conception et l'évaluation des systèmes logiciels informatiques. Les sujets abordés dans le contexte des modalités d'interaction de nouvelle génération incluent les capteurs, l'haptique, les dispositifs portables et les interfaces performatives. Les étudiants qui ne respectent pas les restrictions du cours peuvent demander l'autorisation de l'instructeur.

CS 7390. Sujets spéciaux dans l'informatique centrée sur l'humain. (4 heures)

Propose divers sujets en informatique centrée sur l'humain.

CS 7400. Principes intensifs des langages de programmation. (4 heures)

Étudie les composants de base des langages de programmation, la spécification de la syntaxe et de la sémantique, ainsi que la description et la mise en œuvre des fonctionnalités du langage de programmation. Discute d'exemples dans une variété de langues.

CS 7430. Spécification formelle, vérification et synthèse. (4 heures)

Couvre la modélisation des logiciels et des systèmes (comment décrire formellement le comportement des logiciels et des systèmes) la spécification (comment énoncer formellement les propriétés que le système devrait avoir) la vérification (comment vérifier si - et finalement prouver - qu'un système satisfait à sa spécification) et synthèse (comment générer automatiquement des logiciels et des systèmes "corrects par construction").

CS 7480. Sujets spéciaux en langage de programmation. (4 heures)

Propose divers sujets en langage de programmation. Peut être répété jusqu'à deux fois.

CS 7485. Sujets spéciaux dans les méthodes formelles. (4 heures)

Propose divers sujets en méthodes formelles. Peut être répété sans limite.

CS 7580. Sujets spéciaux en génie logiciel. (4 heures)

Offre divers sujets sur le génie logiciel. Peut être répété jusqu'à deux fois.

CS 7600. Systèmes informatiques intensifs. (4 heures)

Étudie la structure, les composants, la conception, la mise en œuvre et le fonctionnement interne des systèmes informatiques, en se concentrant sur le niveau du système d'exploitation. Examine le matériel informatique et l'architecture, y compris l'unité arithmétique et logique et l'unité de contrôle. Couvre les composants actuels du système d'exploitation et les techniques de construction, y compris la mémoire et le contrôleur de mémoire, la gestion des périphériques d'E/S, les pilotes de périphérique, la gestion de la mémoire, les structures du système de fichiers et l'interface utilisateur. Discute des systèmes d'exploitation distribués, des systèmes en temps réel et traite des processus simultanés, de la planification, de la communication interprocessus et de la synchronisation. Discute des algorithmes distribués pertinents. Couvre également les techniques de conception et d'analyse des propriétés souhaitables dans les systèmes informatiques, y compris l'exactitude fonctionnelle (en l'absence de défauts), les performances et le débit, la tolérance aux pannes et la fiabilité, la réponse en temps réel, la sécurité et la qualité de service. Tire des exemples de systèmes d'exploitation réels. Met l'accent sur l'abstraction, tandis que les exercices de programmation sont utilisés pour faciliter la compréhension des concepts.

CS 7610. Fondements des systèmes distribués. (4 heures)

Couvre les concepts fondamentaux de la conception et de la mise en œuvre de systèmes informatiques distribués efficaces et fiables. Couvre les protocoles de communication Internet, l'informatique tolérante aux pannes, les protocoles de synchronisation, l'informatique synchrone et asynchrone, les systèmes de communication de groupe dynamique, l'équilibrage de charge, les modèles byzantins, les tables de hachage distribuées, les systèmes de fichiers distribués et l'application de concepts fondamentaux aux systèmes distribués modernes sur le terrain. Nécessite une connaissance des systèmes d'exploitation, par exemple un cours de premier cycle en systèmes et réseaux, systèmes informatiques ou réseaux et systèmes distribués.

CS 7675. Maîtrise recherche. (4 heures)

Expose les étudiants à la recherche dans les domaines de l'informatique. Explore comment la méthode scientifique est appliquée à ces domaines et couvre l'étendue des sous-domaines de spécialité qui existent. Offre aux étudiants l'occasion de s'exercer à localiser et à lire la littérature scientifique dans différents sous-domaines.

CS 7680. Sujets spéciaux dans les systèmes informatiques. (4 heures)

Propose divers sujets sur les systèmes informatiques. Peut être répété jusqu'à deux fois.

CS 7775. Séminaire en sécurité informatique. (2-4 heures)

Donne aux étudiants l'occasion de lire et de présenter divers sondages et documents de recherche en cryptographie et en sécurité informatique. Le superviseur de la faculté et les sujets varient d'un semestre à l'autre. Peut être répété pour crédit pour les doctorants.

CS 7780. Sujets spéciaux dans les réseaux. (4 heures)

Propose divers sujets sur les réseaux. Peut être répété jusqu'à deux fois.

CS 7800. Algorithmes avancés. (4 heures)

Présente des techniques mathématiques avancées pour la conception et l'analyse d'algorithmes informatiques. Passe en revue une partie du matériel couvert dans CS 5800, puis couvre des sujets avancés. Met l'accent sur les fondements théoriques des techniques utilisées pour résoudre des problèmes survenant dans divers domaines. Les sujets comprennent l'analyse asymptotique, les structures de données avancées, la programmation dynamique, les algorithmes gloutonnes et la théorie des matroïdes, l'analyse amortie, la randomisation, la correspondance de chaînes, les algorithmes algébriques et les algorithmes d'approximation. Présente les machines de Turing, les classes P et NP, la réductibilité en temps polynomial et la complétude NP.

CS 7805. Théorie de la complexité. (4 heures)

Couvre les principaux sujets de la complexité computationnelle, y compris la complétude NP, la complexité temporelle et spatiale, la hiérarchie polynomiale, la complexité des circuits, le calcul probabiliste, les preuves interactives et la dureté de l'approximation. Passe à des sujets plus avancés qui peuvent inclure des limites inférieures, le pseudo-aléatoire, la cryptographie et la complexité de la communication.

Conditions préalables): CS 7800 avec une note minimale de C-

CS 7880. Sujets spéciaux en informatique théorique. (4 heures)

Couvre divers sujets, notamment la cryptographie avancée, les algorithmes d'approximation, la théorie de la complexité, l'algèbre computationnelle, l'informatique distribuée, la vérification formelle, les algorithmes de réseau, le calcul en ligne, le calcul parallèle, l'aléatoire et le calcul. Peut être répété jusqu'à deux fois.

CS 7962. Au choix. (2-4 heures)

Offre des crédits au choix pour les cours suivis dans d'autres établissements d'enseignement. Peut être répété sans limite.

CS 7976. Étude dirigée. (2-4 heures)

Se concentre sur les étudiants examinant le matériel informatique standard de manière nouvelle ou le nouveau matériel informatique qui n'est pas couvert dans les cours formels. Peut être répété sans limite.

CS 7980. Capstone. (4 heures)

Offre aux étudiants une expérience culminante pour démontrer leur maîtrise des concepts clés appris tout au long de leurs programmes dans les cours de base et au choix. Conçu pour renforcer les concepts d'éthique et les concepts de base de la recherche, au-delà de l'accent mis sur les principes techniques appris tout au long du programme.

CS 7990. Thèse. (4 heures)

Propose des travaux sélectionnés avec l'accord d'un chef de projet.

CS 7996. Poursuite de la thèse. (0 heures)

Offre des travaux de thèse poursuivis menés sous la supervision d'une faculté du département.

Conditions préalables): CS 7990 avec une note minimale de C-

CS 8674. Projet de maîtrise. (4 heures)

Propose des travaux sélectionnés avec l'accord d'un chef de projet. Peut être répété une fois.

CS 8949. Expérience de travail en recherche. (0 heures)

Fournit une opportunité à tous les doctorants de s'engager dans la recherche industrielle dans le domaine de leur thèse. Les doctorants s'inscrivent à cette formation avant de commencer leurs stages hors campus. Peut être répété sans limite.

CS 8982. Lectures. (1-8 heures)

Propose des lectures sélectionnées sous la supervision d'un membre du corps professoral. Peut être répété sans limite.

CS 8986. Recherche. (0 heures)

Offre la possibilité de mener des recherches à temps plein sous la supervision du corps professoral. Peut être répété sans limite.

CS 9000. Candidature au doctorat réalisée. (0 heures)

Indique la réussite de l'examen de synthèse doctoral.

CS 9990. Terme de thèse 1. (0 heures)

Propose des travaux sélectionnés avec l'accord d'un directeur de thèse.

Conditions préalables): CS 9000 avec une note minimale de S

CS 9991. Terme de thèse 2. (0 heures)

Offre une supervision de thèse par des membres du département.

Conditions préalables): CS 9990 avec une note minimale de S

CS 9996. Poursuite de la thèse. (0 heures)

Continue le travail avec l'accord d'un directeur de thèse.

Conditions préalables): CS 9991 avec une note minimale de S ou un contrôle de thèse avec un score de REQ


Exemples

Les exemples suivants montrent d'abord comment obtenir un système de référence de coordonnées (CRS) à partir de différents types de définitions. Les CRS contiennent les informations nécessaires pour localiser des points sur Terre. Ces informations comprennent le système géodésique, la projection cartographique (le cas échéant), les axes et leurs unités de mesure. Lorsque deux de ces CRS sont connus (le la source et le cible), il est possible de convertir ou de transformer des points entre ces SCR. Cependant, l'opération de coordonnées dépend non seulement du SCR source et cible, mais aussi de la lieu d'intérêt comme le montre l'exemple de transformation des coordonnées de villes aux USA et au Canada. Ensuite, un autre exemple montre comment obtenir un ensemble plus large de métadonnées, avec le CRS comme un seul élément spécifique de ces métadonnées.


Extraire des données de Natural Earth à l'aide de la classe Java de GeoTools ? - Systèmes d'information géographique

Ce sujet considère le temps à trois niveaux différents. Au niveau conceptuel, nous passons en revue diverses notions sur la nature du temps, de la mythologie primitive à la science moderne. Au niveau analytique, nous discutons de la mesure du temps et introduisons les cadres communs et universels des références temporelles. Au niveau pratique, nous couvrons la représentation et l'utilisation du temps dans les SIG pour suivre et modéliser la « dynamique » des phénomènes géographiques et des interactions homme-environnement. Compte tenu des avancées récentes de la technologie numérique, nous considérons la collecte, la gestion et l'analyse des données spatio-temporelles dans les SIG et met en évidence le rôle et l'importance du temps.

Le temps est un concept fondamental en géographie et dans de nombreuses autres disciplines. Cependant, la nature du temps a longtemps été une question ouverte. Peuquet (2002) dans son Représentation de l'espace et du temps a passé en revue les notions sur la nature du temps de la mythologie primitive à la science moderne. En somme, ces notions sont soit phénoménologiques, soit mathématiques, et elles sont étroitement liées à l'exploration et à l'interprétation humaines de l'univers. Cette section sélectionne et résume quelques notions pour faire avancer notre compréhension des représentations modernes du temps.

Les premières notions sur le temps proviennent de la mythologie grecque et de la vie quotidienne. Dans le mythe grec, le temps est si important qu'il est personnifié comme Kronos dans Hésiode. Théogonie (alias le dieu du temps, Father Time) (Hésiode 1999). L'homme perçoit et perçoit le temps à travers des successions de génération et de pouvoir et une révolution globale allant du Chaos au Cosmos. Dans ce cas, le temps est intégré dans de multiples processus linéaires et référencé par des événements discrets. Par conséquent, le temps a une nature discontinue et séquentielle. Au cours des mêmes périodes, les humains développent également la vision cyclique du temps pour refléter leurs observations de la nature et de leur vie quotidienne. Chez Hésiode Travaux et jours, le temps est perceptible à différentes échelles : activités humaines diurnes et nocturnes, événements naturels au fil des saisons, différentes étapes de la vie et répétition d'événements historiques (Richardson 1877, Tandy et Neale 1996). Ces notions cycliques et non linéaires sur le temps sont également mises en évidence dans la philosophie indienne et est-asiatique. Par exemple, Radhakrishnan et Moore (2014) dans le livre Un livre source en philosophie indienne discute du mouvement du monde et soutient que « Tous les systèmes acceptent le point de vue du grand rythme mondial. De vastes périodes de création, de maintien et de dissolution se succèdent sans fin ». La philosophie chinoise, et taoïste en particulier, est profondément enracinée dans une vision cyclique du temps et considère l'univers comme une infinité de cycles temporels imbriqués (Schipper et Hsiu-huei 1986). Ces premières notions sur le temps sont phénoménologiques, s'appuyant principalement sur des croyances ou des observations d'existences et d'évolutions de l'univers (Peuquet 2002).

Au cours de la période présocratique, il y a eu un intérêt croissant pour les mathématiques et la physique, y compris les questions entourant la divisibilité de l'espace, du temps et de la matière. Anaxagore introduit la divisibilité infinie à travers sa conception de la petitesse illimitée : « Car du petit il n'y a pas de plus petit, mais toujours un plus petit » (Curd 2015).En revanche, l'atomisme décompose tout en partiels infiniment petits et séparés (atomes) avec l'espace comme conteneur (vide). Construit sur l'atomisme, Platon considérait le temps comme l'image mouvante de l'éternité et distingua alors Being et Devenir (Cornford 2014). Aux yeux de Platon, le monde de Devenir est le monde que nous percevons à travers nos sens, et ce monde sensible est en constante évolution. Le monde de Étant est absolu et ne change jamais, pourtant il cause la nature essentielle des choses (formes) que nous appréhendons dans le monde de Devenir. Par conséquent, la notion de Platon a indiqué la numérique et discret nature du temps : le temps peut être mesuré à travers la révolution perçue de l'univers (actuellement, maintenant et ici).

Aristote, élève de Platon, a développé la fameuse conception de « l'espace comme lieu » : les objets sont localisés dans un endroit donc, le lieu coexiste avec les objets et est une condition nécessaire à l'existence des objets (Markosian 2016). Sur la base de cette conception, Aristote était d'accord avec le continu vues sur le temps et a rejeté la notion d'atomes et de vide qui peut conduire à des lacunes et du vide. Pour Aristote, un moment n'était pas un élément de discontinuité. Au lieu de cela, un moment reliait les durées temporelles successives et préservait la continuité du temps. A côté, Aristote a développé un modèle cosmologique qui consiste en un espace fini à deux niveaux – le terrestre et le céleste (Peuquet, 2002). Le temps dans le modèle aristotélicien est infini et, tout comme l'espace, est également présent partout. Les notions d'Aristote sur l'espace sont dominées depuis 2000 ans.

La réalisation de la Terre comme un ellipsoïde peut dater du 17ème siècle, comme décrit par Newton dans son Principia (Newton 1962). Ici, les notions de Newton sur l'espace et le temps sont similaires aux notions de Platon car elles distinguaient toutes deux l'espace et le temps absolus et relatifs. le Principia distingue le temps « absolu et relatif, vrai et apparent, mathématique et commun » :

  • Le temps absolu, vrai et mathématique, de lui-même et de sa propre nature, coule toujours également sans rapport avec quoi que ce soit d'extérieur et sous un autre nom est appelé durée : le temps relatif, apparent et commun, est quelque chose de sensible et d'extérieur (qu'il soit précis ou inégal) mesure de la durée par le moyen du mouvement, qui est couramment utilisé à la place du temps vrai tel qu'une heure, un jour, un mois, une année.
  • L'espace absolu, dans sa nature propre, sans rapport avec quoi que ce soit d'extérieur, reste toujours semblable et immobile. L'espace relatif est une dimension ou une mesure mobile des espaces absolus que nos sens déterminent par sa position par rapport aux corps et qui est communément prise pour un espace immobile telle est la dimension d'un espace souterrain, aérien ou céleste, déterminée par sa position par rapport à de la terre.

Sur la base des notions d'espace et de temps absolus, Newton a développé des lois du mouvement qui relient l'espace, le temps et les corps (objets) et a décrit le mouvement des corps (Friedman 2014). Bien que les lois du mouvement soient issues de la physique, elles ont des impacts beaucoup plus larges : elles conduisent à passer d'une vision cognitive centrée qui repose simplement sur l'abstraction d'observations à une vision positiviste qui repose sur des descriptions objectives à travers le processus de mesure et formulation mathématique.

Au cours des années 1880 et 1890, plusieurs expériences sur la lumière (un phénomène électromagnétique) ont montré que la lumière voyageait toujours à la même vitesse, quelle que soit la vitesse à laquelle la source lumineuse se déplace. Ces expériences étaient en conflit avec les lois du mouvement de Newton et ont été à la base de la théorie de la relativité d'Einstein. Du point de vue d'Einstein, l'espace et le temps sont relatifs et dépendent du mouvement de l'observateur qui les mesure. La lumière est plus fondamentale que l'espace et le temps : la vitesse de la lumière dans le vide est la même pour tous les observateurs, quel que soit le mouvement de l'observateur ou celui de la source lumineuse. Par conséquent, l'espace et le temps ne sont plus absolus et indépendants : « la matière dit à l'espace-temps comment se courber, et l'espace-temps courbe dit à la matière comment se déplacer ». (Friedman 2014)

En 1908, Minkowski a proposé le concept d'espace-temps à quatre dimensions qui intégrait l'espace et le temps (Stein 1968). Dans ce sujet, les termes espace-temps, espace-temps et spatio-temporel indiquent l'intégration de l'espace et du temps, termes utilisés ici à partir des littératures existantes. Dans l'espace-temps, alors qu'un éclair de lumière passe du passé au futur, le « présent » se définit. Toute réalité physique doit être contenue dans l'espace-temps « futur » et « passé », et « l'extérieur » est inaccessible car les corps doivent voyager plus vite que la lumière pour l'atteindre (ce qui est impossible). Une trajectoire en mouvement d'un observateur entraîne une « ligne du monde » à l'intérieur de l'espace-temps futur et passé. L'espace-temps devient plus tard un fondement essentiel de la théorie de la relativité générale d'Einstein discutée ci-dessus.

L'acquisition et l'agencement des connaissances reposent inévitablement sur nos expériences sensorielles. Malgré les débats sur la nature absolue ou relative, continue ou discrète de l'espace et du temps, l'espace et le temps constituent la base innée et intuitive pour que nous sentions et percevions le monde. En d'autres termes, les interprétations cognitives de l'espace et du temps reposent sur la conscience de leur existence. Ce point de vue a été proposé pour la première fois par Kant dans son principe de « subjectif a prior » (Kant 1955) et a été largement étudié plus tard dans le domaine de la psychologie cognitive. Il était d'accord avec la double nature de la réalité : à la fois externe (absolue, physique) et interne (perçue, interprétée, cognitive), et considérait l'espace et le temps comme le contexte dans lequel nous percevons, comprenons et représentons la réalité.

Cette section considère le temps comme une partie essentielle des cadres de référence pour nous permettre d'observer et de mesurer la réalité. Tout d'abord, cette section présente l'heure calendaire et l'heure de l'horloge comme les deux cadres les plus couramment utilisés en accord avec deux manières distinctes d'observer et de mesurer le temps physique externe. Ensuite, cette section présente l'heure standard comme référence universelle pour une utilisation internationale.

3.1 Heure du calendrier et heure de l'horloge

Le calendrier est un système de mesure qui organise des intervalles de temps à différents niveaux et leur donne des noms à des fins sociales, religieuses, commerciales et administratives. Les calendriers sont basés sur les mouvements perçus de la Lune et du Soleil en relation avec la Terre, la rotation de la Terre et la vision cyclique interprétée du temps. Les unités de mesure de base comprennent :

  • Date/Jour: l'unité de base qui correspond à l'alternance du jour et de la nuit.
  • Mois: le cycle observé des phases lunaires.
  • An: les changements saisonniers perçus dans le temps, l'écologie et les durées d'ensoleillement
  • Semaine: un intervalle de sept jours consécutifs exacts, chacun est un jour de la semaine qui porte le nom des planètes classiques ou des dieux d'un panthéon.

L'horloge est un mécanisme physique qui mesure la durée et le temps écoulé qui sont plus courts que les unités naturelles des calendriers. Par exemple, un cadran solaire utilise un gnomon pour projeter une ombre de soleil sur un ensemble de marques pour indiquer l'heure locale (en les heures) en une journée. L'horloge à eau, le sablier et l'horloge à pendule sont tous entraînés par la gravité de la Terre et utilisés pour indiquer les heures d'une journée et même minutes dans une heure. Le dispositif le plus précis de nos jours sont les horloges atomiques qui utilisent la fréquence des transitions électroniques dans certains atomes comme base pour définir le deuxième (dans une minute). Le Système international d'unités (SI) définit la seconde sur la base de l'atome 133 Cs et l'utilise comme unité de temps de base depuis 1967. Au-delà de la seconde, le plus petit intervalle de temps pouvant être mesuré directement, en novembre 2016, est le de l'ordre de 850 zeptosecondes (850×10 -21 secondes).

3.2 Heure normale

Depuis l'évolution industrielle, une compréhension et un accord universels sur la mesure du temps sont devenus de plus en plus nécessaires. En 1847, l'heure moyenne de Greenwich (GMT) a été développée comme la première heure standard utilisée par les chemins de fer, la marine et l'industrie maritime britanniques. L'heure GMT a été définie par l'heure solaire moyenne à l'Observatoire royal de Greenwich au Royaume-Uni. En utilisant GMT comme base, 41 nations ont officiellement convenu d'une heure universelle lors de la Conférence internationale des méridiens de 1884. Pendant ce temps, le méridien de Greenwich était couramment utilisé comme méridien principal.

En 1963, le temps universel coordonné a été officiellement adopté pour la première fois comme heure standard, et son abréviation UTC a été officiellement adoptée pour la première fois en 1967. Depuis lors, le système a été ajusté plusieurs fois. La version actuelle de l'UTC est basée sur le Temps Atomique International (TAI) et ajustée par seconde intercalaire compte tenu du ralentissement de la rotation de la Terre. Ici, les jours sont identifiés par le calendrier grégorien, les secondes sont des secondes SI, et les minutes et les heures sont ajustées pour refléter les longueurs irrégulières des jours. Les fuseaux horaires sont des régions avec la même heure standard utilisée localement à des fins juridiques, commerciales et sociales. Par conséquent, ces fuseaux horaires ont tendance à suivre les frontières des pays et les subdivisions de chaque pays. Les fuseaux horaires sont décrits comme des décalages positifs ou négatifs par rapport à UTC en heures entières (par exemple, UTC+08:00, UTC-06:00) et peuvent avoir d'autres noms conventionnels (par exemple, heure de Pékin, heure de Chicago). Certains des fuseaux horaires situés à des latitudes plus élevées adoptent également l'heure d'été (DST).

L'heure du système de positionnement global (GPS) est implémentée par des horloges atomiques qui ont commencé à chronométrer à minuit le 6 janvier 1980 (UTC00:00). Le temps GPS est transmis comme le nombre de semaines écoulées depuis l'heure de début et le nombre de secondes depuis le début de la semaine en cours. L'heure GPS est toujours en retard de 19 secondes sur l'heure TAI et les conversions entre l'heure GPS et l'heure UTC doivent tenir compte des secondes intercalaires (TAI=GPS+19s=UTC+LS).

Les discussions dans cette section révèlent que (1) les cadres temporels de référence sont soit cycliques soit linéaires (2) certaines unités de mesure universelles du temps incluent la seconde, la minute, l'heure, le jour, la semaine (jours de la semaine), le mois et l'année, (3 ) le plus petit intervalle de temps pouvant être mesuré directement existe et a déterminé la précision de la mesure, et (4) les intervalles de temps ont diverses relations temporelles pour décrire leurs « emplacements » relatifs dans le temps (par exemple, le temps TAI est de 19 secondes après le temps GPS ). La section suivante adoptera ces points de vue et discutera de la façon dont le temps est conceptualisé, représenté et utilisé dans les systèmes d'information géographique (GISystems) et GIScience.

Le premier GISystem était connu sous le nom de Système d'information géographique du Canada (CGIS) développé par le Dr Roger Tomlinson en 1968 pour recueillir, stocker, analyser et distribuer les données recueillies pour l'Inventaire des terres du Canada. Les informations contenues dans le système peuvent être ajoutées ou modifiées au fil du temps, mais ces changements peuvent ne pas être nécessairement maintenus. Par conséquent, le CGIS est « statique » en soi et se concentre uniquement sur le monde dans le Cadeau (Ici et À présent). Cependant, le monde est en constante évolution et notre connaissance du monde évolue. Cela nous oblige à choisir une perspective et une représentation du temps appropriées afin d'étudier la dynamique des phénomènes géographiques et les interactions homme-environnement. Cette section présente les trois perspectives sur le temps, les trois représentations du temps et les quatre types de modèles temporels dans les GISystems dynamiques. La section traite également de la façon dont les modèles temporels observés déterminent la perspective et la représentation appropriées du temps. Veuillez noter que les perspectives et les représentations du temps sont construites sur des notions conceptuelles et des mesures analytiques du temps discutées précédemment.

4.1 Temps discret, temps continu et espace-temps

La dynamique des phénomènes géographiques résulte de changements de lieux, d'entités ou des deux. Un changement est considéré comme un événement s'il est perceptible, mesurable et significatif pour le domaine d'études (par exemple, un changement de propriétaire d'une parcelle de terrain). La représentation des changements et des événements repose sur des visions différentes du temps et de son rapport à l'espace ainsi que des besoins pratiques. Les trois vues principales sur le temps (conceptuellement) sont le temps discret, le temps continu et l'espace-temps.

Comme discuté dans la section 3, le temps était traité comme une dimension indépendante de l'espace et considéré comme discret ou continu avant Minkowski. Dans la vue discrète, nous observons un phénomène et son état à des moments donnés, puis comparons les états observés à différents moments (points) pour comprendre le processus. Dans la vue continue, nous observons et comparons un phénomène et son état au début et à la fin de chaque période de temps, qui est généralement associé à la durée de vie d'une entité/événement. Par exemple,

  • Pour étudier les déplacements des individus en milieu urbain, on peut suivre leurs localisations à une certaine fréquence (vue discrète) ou enregistrer leurs localisations d'activité et les durées correspondantes à chaque localisation (vue continue).
  • Pour étudier les changements de propriété foncière, nous pouvons enregistrer chaque changement d'emplacement ou de propriété de chaque parcelle de terrain et l'horodatage correspondant de ce changement (vue discrète) ou nous pouvons archiver les emplacements et le statut de propriété de chaque parcelle de terrain et la durée correspondante de tel statut (vue continue).

La troisième vision du temps adopte l'espace-temps à quatre dimensions de Minkowski. Dans la vue de l'espace-temps, nous observons des changements dans l'espace et le temps simultanément au lieu de changements dans le temps. Par exemple,

  • Le cube de données de trafic (Shekhar et al. 2001) organise les volumes de trafic comme un cube multidimensionnel qui intègre l'espace et le temps. Chaque cellule du cube stocke le nombre total de véhicules dans une échelle spatiale donnée et un certain intervalle de temps. Le découpage du cube par le temps nous permet d'étudier les changements dans la distribution spatiale des véhicules Le découpage du cube par unité spatiale nous permet d'étudier les changements du volume de trafic à des emplacements spatiaux.
  • La géographie du temps (Hägerstrand 1970) représente le mouvement d'un individu dans l'espace-temps comme un chemin spatio-temporel. La figure 1 montre les trajectoires spatio-temporelles de deux adultes et d'un enfant dans une famille au cours d'un jour de semaine (modifié d'après Ellegård et Lenntorp 1993, p25). Chaque membre de la famille a son propre parcours spatio-temporel qui décrit ses activités et ses déplacements dans l'espace-temps. Les interactions entre les membres de la famille créent des faisceaux, soit sur un lieu d'activité, soit le long d'un voyage. Compte tenu des contraintes de capacité, de couplage et d'autorité d'un individu, un prisme spatio-temporel (STP) délimite tous les chemins spatio-temporels « faisables ». Étant donné qu'un STP contient tous les emplacements et toutes les heures accessibles à l'individu, il peut être utilisé pour mesurer l'accessibilité des individus aux ressources et aux opportunités disponibles dans des emplacements pendant certaines périodes (Miller 2005).
  • Pour la mobilité en milieu urbain, les déplacements des individus sont généralement limités par les réseaux de transport. Les prismes temporels du réseau (NTP) sont définis pour capturer les contraintes supplémentaires imposées par les réseaux telles que les limites de vitesse et les restrictions à sens unique (Kuijpers et Othman 2009). Des études récentes ont tenté d'améliorer la représentation analytique et informatique des STP et des NTP pour affiner les mesures d'accessibilité basées sur le prisme (par exemple, Liao 2019, Kuijpers et al. 2017, Miller 2017).

Figure 1. Trajectoires spatio-temporelles avec contraintes de trois membres de la famille en un jour de semaine. Source : auteur d'après Ellegård et Lenntorp (1993).

4.2 Temps ordinal, d'intervalle et cyclique

En observant des phénomènes dynamiques, on peut adopter différentes représentations du temps. Les trois représentations les plus courantes sont le temps ordinal, le temps d'intervalle et le temps cyclique. Ils reflètent la façon dont nous percevons le temps et les relations temporelles.

  • Temps ordinal: représentation métaphorique des événements et de leurs séquences. Par exemple, l'expression « ramasser les enfants après le travail » décrit la relation temporelle entre deux événements en utilisant le mot « après ». Ceci est en accord avec la forme la plus ancienne du temps dans notre cognition (par exemple, celle d'Hésiode. Travaux et jours discuté dans la section 3).
  • Temps d'interval: mesure de la durée des événements sur une échelle d'intervalle. Par exemple, l'heure UTC est un intervalle de temps utilisant la seconde SI comme unité de mesure de base (voir Section 3.2). L'expression « sommeil de 21h00 à 6h00 le lendemain » décrit la durée du statut « sommeil » en utilisant l'heure civile. La figure 2 montre les principales catégories de relation temporelle entre les durées de deux événements X et Y (Allen 1984).

Figure 2. Relations temporelles entre les intervalles de temps. Source : auteur, d'après Allen (1984).

  • Temps cyclique : représentation du temps pour le processus cyclique. Les mois et les saisons, les jours de la semaine et les heures sont basés sur des processus cycliques astronomiques. Le cycle annuel de migration des oiseaux et la montée et la descente quotidiennes de l'océan (marées) peuvent également être représentés par le temps cyclique avec des étapes répétitives (événement). Et chacune de ces étapes peut encore être représentée par un intervalle de temps.

4.3 Modèles temporels statiques, oscillants, chaotiques et stochastiques

Le monde est un système dynamique qui change et évolue, tout comme les systèmes naturels et nos interactions avec eux. Les comportements de ces systèmes dynamiques conduisent aux modèles temporels que nous observons et affectent la façon dont nous conceptualisons et représentons le temps. Les comportements du système dynamique peuvent être classés en quatre classes (Wolfram 1984), et cette section discute des vues et des représentations appropriées du temps pour chaque classe.

  • Statique : l'évolution conduit à un état stable et homogène, tout caractère aléatoire du motif initial disparaît finalement. Dans ce cas, nous observons et enregistrons le moment quand le système devient stable et quand d'autres systèmes « secouent » cet état stable. Un écosystème (dans une région spatiale) en équilibre est un exemple de système statique, qui repose sur l'équilibre des espèces à trois niveaux du réseau trophique et peut être affecté par d'autres écosystèmes et systèmes naturels.
  • Oscillant : l'évolution conduit à un ensemble de structures simples séparées, stables ou périodiques. Dans ce cas, nous observons et enregistrons les séquences (temps ordinal) et éventuellement les durées (intervalles de temps) de ces structures séparées. Les processus cycliques astronomiques, le cycle annuel et/ou journalier de la migration animale, et les heures d'ouverture des services publics dans une semaine sont des exemples de comportements oscillants.
  • Chaotique : l'évolution conduit à un modèle chaotique qui est déterministe mais sensible aux états initiaux du système. Dans ce cas, nous observons généralement l'état du système à une fréquence donnée (temps discret) ou la durée et l'emplacement de chaque événement (temps continu), puis modélisons les changements observés et leurs modèles temporels pour prédire l'état du système dans un « avenir proche. ”. Un exemple le plus typique est la prévision météorologique en météorologie, qui prédit l'état de l'atmosphère à un endroit donné en collectant des données sur son état « actuel » et en interprétant les modèles temporels des conditions collectées.En raison de la nature chaotique du système, il est presque peu probable d'obtenir une prédiction « vraiment précise ».
  • Stochastique : l'évolution conduit à des structures localisées complexes, parfois pérennes, qui ne peuvent être modélisées que statistiquement. Semblable aux comportements chaotiques, nous observons des comportements stochastiques à des moments donnés ou pendant certains intervalles de temps. Mais en raison de la nature stochastique, nous ne pouvons modéliser le comportement du système qu'à l'aide d'une collection de variables aléatoires indexées par le temps. Les processus d'érosion-sédimentation, les changements dans l'utilisation des terres/la couverture des terres (LULC) et la mobilité résidentielle humaine et les déplacements quotidiens en milieu urbain sont des exemples typiques qui sont modélisés comme des processus stochastiques. Certains modèles stochastiques utilisent des représentations discrètes du temps (par exemple, marche aléatoire, chaîne de Markov, alignement séquentiel), tandis que d'autres adoptent un temps continu (par exemple, mouvement brownien, processus semi-markovien, réseau de mémoire à long terme (LSTM)).

4.4 Collecte, gestion et analyse des données spatio-temporelles

Les progrès de la technologie numérique nous permettent de collecter des données spatio-temporelles massives, d'en tirer des informations utiles et de faire progresser nos connaissances sur la « dynamique » des phénomènes géographiques et les interactions homme-environnement. Cette section se concentre sur l'aspect temporel et traite de la collecte, de la gestion et de l'analyse des données spatio-temporelles.

  • Collecte de données: Comme discuté dans la section 3, l'appareil le plus précis de nos jours sont les horloges atomiques qui utilisent deuxième comme unité de mesure de base pour le temps, et le plus petit intervalle de temps pouvant être mesuré directement est de l'ordre de 850 zeptosecondes à partir de 2016. Cependant, la collecte de données applique généralement des intervalles de temps plus grands comme résolution temporelle. Pour les systèmes de télédétection, la résolution temporelle fait référence à la durée (intervalle de temps) pendant laquelle un satellite effectue un cycle d'orbite complet (c'est-à-dire la période de revisite) et collecte des données pour le même « lieu » (la zone couverte par une image satellite). Chaque système de télédétection a sa ou ses propres résolutions temporelles. Par exemple, le capteur d'imagerie à résolution moyenne (MODIS) a une résolution grossière de 1 jour à 2 jours. Le satellite terrestre (Landsat) a une résolution moyenne de 16 jours et Quickbird a une résolution élevée de 1 jour à 3 jours.

Outre les images satellites, les appareils de localisation tels que les smartphones peuvent collecter des emplacements géographiques d'objets mobiles à des horodatages discrets. La résolution temporelle des données collectées par ces appareils est déterminée par le système de navigation par satellite qui envoie des signaux (par exemple GPS, Galileo, BeiDou). Par exemple, les messages de navigation du système de positionnement global (GPS) ont une résolution de 1,5 seconde. Les appareils (récepteurs) ont également leurs propres fréquences pour recevoir ou transmettre des signaux. Par exemple, les systèmes de localisation automatique des véhicules (AVL) suivent généralement l'emplacement des véhicules toutes les 30 secondes à 2 minutes pour prendre en charge la gestion de la flotte de transport en commun et l'évaluation des performances du transport en commun (Tilocca et al. 2016).

D'autres types de données spatio-temporelles telles que les recensements et les enquêtes sur l'utilisation des terres ont généralement une résolution temporelle beaucoup plus faible, qui est déterminée par la fréquence à laquelle les données sont collectées et publiées par les agences correspondantes. Par exemple, la Constitution des États-Unis exige qu'un recensement de la population soit effectué tous les 10 ans, tandis que l'American Community Survey (ACS) fournit des estimations sur 1 an, 3 ans et 5 ans dans les 10 ans. Pour la mobilité humaine à des résolutions temporelles plus élevées (par exemple toutes les heures, tous les jours), des études récentes ont appliqué les données collectées par les appareils mobiles et les services basés sur la localisation (par exemple, Gonzalez et al. 2008, Hasan et al. 2013, Greenblatt et Shaheen 2015).

  • Gestion de données: Des bases de données spatio-temporelles ont été développées pour intégrer des modèles de données spatiaux et temporels. Les modèles de données spatio-temporelles définissent les types de données, les relations, les opérations et les règles qui nous permettent de maintenir l'intégrité des données et d'interroger et d'analyser les données collectées (Pelekis et al. 2004). Les trois types de temps dans les bases de données spatio-temporelles sont le temps de validité (quand un événement se produit/observé), le temps de transaction (quand un événement est enregistré) et le temps utilisateur (quand un événement supplémentaire est enregistré par les utilisateurs) (Snodgrass et Ahn 1985). Et les trois principales formes de requêtes temporelles sont la requête temporelle simple (à un moment donné), la requête de plage temporelle (pendant un intervalle de temps) et la requête de relation temporelle (proximité ou topologie) (Yuan et McLntosh 2002). Siabato et al. (2018) passe en revue les modèles spatio-temporels dans les SIG et résume les 18 grandes tendances de la modélisation de la dynamique des phénomènes géographiques (tableau 1, version complète dans le tableau E de Siabato et al. 2018). Ces approches reconnaissent les cinq dimensions (niveaux) de la modélisation : processus, événements, actions, mouvements et objets dynamiques (Pelekis et al. 2004, Worboys 2005) et reflètent le rôle du temps pendant que nous sentons et percevons la réalité externe (comme discuté dans Section 3).

Tableau 1. Tendances de la modélisation spatio-temporelle (Siabato et al. 2018)
Approches de modélisation Approches de modélisation Approches de modélisation
Méthode d'instantané Basé sur la sémantique Objets en mouvement
Horodatage Basé sur les événements Basé sur des graphiques
Vecteurs de modification d'état de base Basé sur les processus Basé sur la durée de vie
Modèle composite espace-temps Basé sur l'ontologie Basé sur des agents
Modélisation basée sur le domaine Basé sur les fonctionnalités (basé sur l'entité) Cinématique
Orienté objet Basé sur l'identification Fondements ontologiques
Extensions de modélisation conceptuelle

  • L'analyse des données: Poussés par la disponibilité croissante des données spatio-temporelles, de nombreuses méthodes et outils ont été développés pour analyser les données, extraire des informations utiles et découvrir des connaissances. Les trois approches de base sont l'exploration visuelle, l'analyse/la modélisation statistique et l'exploration de données/l'apprentissage automatique. Andrienko et al (2003) se concentrent sur la dimension temporelle et proposent un catalogue de techniques et d'outils de visualisation pour soutenir l'analyse exploratoire des données spatio-temporelles. Les données sont organisées en composantes « quand » et « quoi + où », les deux niveaux de recherche sont des niveaux élémentaires et généraux et les deux opérations cognitives sont l'identification et la comparaison. Différentes combinaisons de ces éléments peuvent soutenir certaines tâches exploratoires. Par exemple, l'élémentaire « quand » et l'élémentaire « quoi + où » décrivent les caractéristiques d'un objet/emplacement à un moment donné, tandis que le général « quand » et l'élémentaire « quoi + où » décrivent la dynamique des caractéristiques de cet objet/emplacement sur temps. Un outil de visualisation peut se concentrer sur une ou plusieurs tâches exploratoires et avoir les combinaisons correspondantes de ces éléments essentiels. Des outils de visualisation récents (frameworks) suivent ce catalogue et sont généralement créés pour un domaine pratique spécifique (par exemple VAUD pour les données urbaines par Chen, et al. 2017), certains types de données (PerSE pour les données calendaires par Swedberg et Peuquet 2017), ou certaines tâches (par exemple Viola pour la détection d'anomalies par Cao et al. 2017).

L'analyse exploratoire visuelle peut fournir des connaissances préliminaires sur les modèles dynamiques et soutenir une analyse quantitative et une modélisation supplémentaires des modèles temporels. Les statistiques et l'exploration de données sont deux approches courantes. Les statistiques se concentrent sur les tests d'hypothèse et la qualité de l'ajustement du point de vue mathématique, tandis que l'apprentissage automatique se concentre sur les algorithmes et les modèles du point de vue informatique. Cressie et Wikle (2015) présentent des méthodes statistiques spatio-temporelles existantes dans leur livre Statistiques pour les données spatio-temporelles. Certaines de ces méthodes sont exploratoires comme le LISA spatio-temporel (Local Indicator of Spatial Association). Certaines méthodes examinent la covariance spatio-temporelle (par exemple, l'hypothèse de turbulence gelée de Taylor qui relie les fluctuations temporelles et spatiales dans les écoulements turbulents). Et certaines méthodes reposent sur la modélisation hiérarchique de séries chronologiques, connues sous le nom de modèles spatio-temporels dynamiques hiérarchiques (DSTM) (par exemple, DSTM à dimension réduite pour la prévision à long terme des températures de surface de la mer du Pacifique tropical).

Par rapport à l'analyse statistique et à la modélisation, l'exploration de données se concentre sur l'extraction de modèles et d'associations intéressants au lieu d'enquêter sur la corrélation/causalité, et comprend trois phases : apprentissage, test et validation (Fayyad et al. 1996). Pour les données avec des composantes spatiales et temporelles, la nature multidimensionnelle des données, les dépendances spatiales sous-jacentes et les corrélations spatio-temporelles potentielles posent de nouveaux défis pour l'exploration de données spatio-temporelles (Shekhar et al. 2010). Des études ont développé de nombreuses méthodes d'exploration de données pour faire progresser notre compréhension de la dynamique dans les environnements physiques (voir, par exemple, la revue de Lausch et al 2015) et la mobilité humaine (voir, par exemple, la revue de Lin et Hsu 2014). Et de nombreux langages de programmation incluent également des packages pour l'exploration de données tels que Scikit-learn en Python (Pedregosa et al. 2011), Weka pour Java (Hall et al. 2009) et CLARANS en R (Ng et al. 2002).

Allen. J. F. (1984) Vers une théorie générale de l'action et du temps. Intelligence artificielle, 23, 123–54

Cao, N., Lin, C., Zhu, Q., Lin, Y. R., Teng, X. et Wen, X. (2017). Voila : Détection et surveillance visuelles des anomalies avec flux de données spatio-temporelles. Transactions IEEE sur la visualisation et l'infographie, 24(1), 23-33.

Chen, W., Huang, Z., Wu, F., Zhu, M., Guan, H. et Maciejewski, R. (2017). VAUD : Une approche d'analyse visuelle pour explorer des données urbaines spatio-temporelles. Transactions IEEE sur la visualisation et l'infographie, 24(9), 2636-2648.

Cornford, F. M. (2014). La cosmologie de Platon : le Timée de Platon. Routledge.

Cressie, N., et Wikle, C. K. (2015). Statistiques pour les données spatio-temporelles. John Wiley & Sons.

Caillé, Patricia, (2015), Anaxagore, L'Encyclopédie de philosophie de Stanford, Edward N. Zalta (éd.), https://plato.stanford.edu/archives/win2015/entries/anaxagoras, consulté en juin 2019

Ellegård, K. et Lenntorp, B. (1993) Transformation de la vie quotidienne. Dans L'Atlas National de Suède, 10, 22-39.

Fayyad, U. G. et Shapiro, P. S. (1996) Le processus KDD pour extraire des connaissances utiles à partir de volumes de données, Commun. ACM, 39, 27-34

Frank, A. U. (1998). Différents types de « temps » dans les SIG. Dans Raisonnement spatial et temporel dans les SIG, édité par M. J., Egenhofer et R. G, Golledge, Oxford University Press : 40-61

Friedman, M. (2014). Fondements des théories de l'espace-temps : Physique relativiste et philosophie des sciences (Vol. 113). Presse universitaire de Princeton.

Gonzalez, M.C., Hidalgo, C.A. et Barabasi, A.L. (2008). Comprendre les modèles de mobilité humaine individuelle. nature, 453(7196), 779.

Greenblatt, J. B. et Shaheen, S. (2015). Véhicules automatisés, mobilité à la demande et impacts environnementaux. Rapports actuels sur l'énergie durable/renouvelable, 2(3), 74-81.

Hägerstrand, T. (1970). Qu'en est-il des personnes dans la science régionale? Documents de l'Association scientifique régionale. 24 (1): 6–21.

Hall, M., Frank, E., Holmes, G., Pfahringer, B., Reutemann, P. et Witten, I. H. (2009). Le logiciel de data mining WEKA : une mise à jour. Newsletter des explorations ACM SIGKDD, 11(1), 10-18.

Hasan, S., Zhan, X. et Ukkusuri, S. V. (2013). Comprendre l'activité humaine urbaine et les modèles de mobilité à l'aide de données de localisation à grande échelle provenant des médias sociaux en ligne. Dans Actes du 2e atelier international ACM SIGKDD sur l'informatique urbaine, 6.

Kuijpers, B., Miller, H.J. et Othman, W. (2017). Prismes cinétiques : intégration des limites d'accélération dans les prismes spatio-temporels. Revue internationale des sciences de l'information géographique, 31(11), 2164-2194.

Kuijpers, B., et Othman, W. (2009). Modélisation de l'incertitude des objets en mouvement sur les réseaux routiers via des prismes spatio-temporels. Revue internationale des sciences de l'information géographique, 23(9), 1095-1117.

Lausch, A., Schmidt, A. et Tischendorf, L. (2015). Exploration de données et données ouvertes liées–Nouvelles perspectives pour l'analyse des données dans la recherche environnementale. Modélisation écologique, 295, 5-17.

Liao, F. (2019). Limites prismatiques spatio-temporelles des programmes d'activité : une recherche orientée vers un objectif dans les superréseaux multi-états. Revue internationale des sciences de l'information géographique 33, 900-921.

Lin, M., et Hsu, W.J. (2014). Exploitation des données GPS pour les modèles de mobilité : une enquête. Informatique omniprésente et mobile, 12, 1-16.

Markosian, N., (2016). Temps, L'Encyclopédie de philosophie de Stanford, Edward N. Zalta (éd.), https://plato.stanford.edu/archives/fall2016/entries/time/, consulté en juin 2019.

Miller, H.J. (2005), Place-Based Versus People-Based Accessibility, dans David M. Levinson, Kevin J. Krizek (éd.) Access to Destinations, 63-89

Miller, H.J. (2017). Géographie du temps et prisme espace-temps. Dans : D. Richardson, et al., éd. L'encyclopédie internationale de géographie. Sussex : Wiley, 1–19.

Newton, I. (1962). Principia (Vol. 1): II The System of the World (1686) (Traduit en anglais par A. Motte, Londres, Angleterre (1729). University of California Press, Ltd.

Ng, R.T. et Han, J. (2002). CLARANS : méthode de regroupement d'objets pour l'exploration de données spatiales. Transactions IEEE sur la connaissance et l'ingénierie des données, (5), 1003-1016.

Pedregosa, F., et al. (2011). Scikit-learn : Apprentissage automatique en Python. Journal de recherche en apprentissage automatique, 12 (octobre), 2825-2830.

Pelekis, N., Theodoulidis, B., Kopanakis, I. et Theodoridis, Y. (2004). Revue de la littérature des modèles de bases de données spatio-temporelles. La revue d'ingénierie des connaissances, 19(3), 235-274.

Peuquet, D.J. (2002). Représentations de l'espace et du temps. Presse Guilford.

Radhakrishnan, S. et Moore, CA (2014). Un livre source de philosophie indienne. Presse de l'Université de Princeton

Richardson, B. (1877). Sur les phénomènes de répétition historique : une étude du rapport de la recherche historique à la recherche scientifique. Transactions de la Royal Historical Society, 5, 339-353.

Rokach, L., et Maimon, O. (2010). Méthodes de clustering, chapitre 15, dans Manuel d'exploration de données et de découverte des connaissances.

Schipper, K., et Hsiu-huei, W. (1986). Cycles temporels progressifs et régressifs dans le rituel taoïste. Temps, science et société en Chine et en Occident, 185-205.

Shekhar, S., Lu, C.T., Chawla, S. et Zhang, P. (2001). Exploration de données et visualisation des données de trafic des villes jumelles (N° TR-01-015). Université du Minnesota Minneapolis, États-Unis.

Shekhar, S., Zhang P. et Huang Y. (2010) Spatial Data Mining, dans Maimon, O., Rokach, L. (eds.) Manuel d'exploration de données et de découverte des connaissances, Springer, 837-854.

Siabato, W., Claramunt, C., Ilarri, S. et Manso-Callejo, M.Á. (2018). Une enquête sur les tendances de modélisation dans les SIG temporels. Enquêtes informatiques ACM (CSUR), 51(2), 30.

Snodgrass, R.T. et Ahn, I. (1985). Une taxonomie des bases de données temporelles. ACM SIGMOD Rec. 14, 4, 236–246.

Stein, H. (1968). Sur Einstein--Minkowski Espace-Temps. Le Journal de Philosophie, 65(1), 5-23.

Swedberg, B., et Peuquet, D. (2017). PerSE : analyse visuelle pour la détection et l'analyse de la périodicité spatio-temporelle liée au calendrier. Géoinformatique, 21(3), 577-597.

Tandy, D. et Neale, W. (1996). Les travaux et les jours d'Hésiode. Berkeley : Presse de l'Université de Californie.

Tilocca, P., et al. (2017). Gérer les données et repenser les applications dans une flotte de bus innovante de taille moyenne. Procédures de recherche sur les transports, 25, 1899-1919.

Torgo, L. (2011). Data mining avec R : apprendre avec des études de cas. Chapman et Hall/CRC.

Yuan, M., et McIntosh, J. (2002). Une typologie des requêtes d'informations spatio-temporelles. Dans Systèmes d'information spatio-temporels miniers, Springer, Boston, MA, 63-81.

West, M. L. (1999). Théogonie et travaux et jours. Oxford University Press, États-Unis.

Wolfram, S. (1984). Universalité et complexité des automates cellulaires. Physica D : Phénomènes non linéaires, 10(1-2), 1-35.


Liste des cours en ligne

Les diplômes en ligne disponibles sont accrédités aux États-Unis. Les diplômes ne sont accrédités dans aucun autre pays et l'accréditation n'est pas demandée en dehors des États-Unis.

BYU-Idaho propose plusieurs autres cours grâce à ses études sur le campus. Cette page contient des informations concernant les offres en ligne de BYU-Idaho. Pour en savoir plus sur tous les cours proposés par BYU-Idaho, consultez le catalogue de l'université.

Cliquez sur un cours pour voir les détails du cours en haut et le comparer aux autres.

Cette liste de cours est destinée à fournir aux étudiants des informations générales sur les cours en ligne disponibles. Pour obtenir les informations les plus précises, les étudiants doivent se référer aux informations réelles sur la planification des cours lors de l'inscription chaque semestre.

Pour les options de manuels, veuillez visiter l'outil de comparaison de manuels de l'University Store.

Cliquez sur un cours ci-dessous pour voir plus de détails.
Nom du cours Code de cours Crédits Disponibilité Programme Comparer Prix ​​du manuel Description du cours

Cliquez sur un cours pour voir les détails du cours en haut et le comparer aux autres.

Cette liste de cours est destinée à fournir aux étudiants des informations générales sur les cours en ligne disponibles. Pour obtenir les informations les plus précises, les étudiants doivent se référer aux informations réelles sur la planification des cours lors de l'inscription chaque semestre.

Pour les options de manuels, veuillez visiter l'outil de comparaison de manuels de l'University Store.


Un cadre pour le partage et l'intégration de modèles de télédétection et de SIG basés sur un service Web

Le partage et l'intégration de modèles de télédétection (RS) et de système d'information géographique/scientifique (SIG) sont essentiels pour développer des systèmes d'application pratiques. Faciliter le partage et l'intégration de modèles est un problème pour les éditeurs de modèles et les utilisateurs de modèles, respectivement. Pour résoudre ce problème, un cadre basé sur un service Web pour le partage et l'intégration de modèles RS et SIG est proposé dans cet article. L'idée fondamentale du cadre est de publier des modèles RS et SIG hétérogènes dans des services Web standard pour le partage et l'interopérabilité, puis d'intégrer les modèles RS et SIG à l'aide de services Web. Pour les premiers, une « boîte noire » et une méthode visuelle sont employées pour faciliter la publication des modèles en tant que services Web. Pour ce dernier, l'intégration de modèle basée sur le workflow géospatial et la méthode de marche sémantique prise en charge est introduite. Dans ce cadre, le partage et l'intégration de modèles sont appliqués pour développer le système de surveillance de l'environnement aquatique du delta de la rivière des Perles. Les résultats montrent que le cadre peut faciliter le partage de modèles et l'intégration de modèles pour les éditeurs de modèles et les utilisateurs de modèles.

1. Introduction

Le partage et l'intégration de modèles de télédétection (RS) et de système d'information géographique/scientifique (SIG) sont importants pour résoudre des problèmes complets, complexes et multidisciplinaires, tels que la croissance urbaine [1] et les applications environnementales [2, 3]. Cependant, avec les caractéristiques naturelles inhérentes, telles que l'hétérogénéité (par exemple, la structure et l'environnement d'exécution) et la dispersion (par exemple, le propriétaire et le serveur en cours d'exécution), et les caractéristiques artificielles, telles que la confidentialité (par exemple, autorisation requise et classifiée), des modèles RS et SIG, le partage et l'intégration simples et efficaces des modèles RS et SIG restent des défis, bien que de nombreux efforts aient été faits pour améliorer les stratégies de partage et d'intégration des modèles [4-6].

Des études récentes se sont concentrées sur les problèmes de partage et d'intégration de modèles [7, 8].Il y a des décennies, un certain nombre d'approches et de langages de représentation de modèles, tels que les langages de modélisation algébrique [9–11], les systèmes logiques [12], les approches relationnelles [13, 14], les langages basés sur des graphes [4, 15– 18], et la modélisation structurée [19, 20], ont été proposés pour gérer les problèmes de partage et d'intégration de modèles en fournissant une méthode de représentation cohérente, mais ils ont un support limité pour le partage de modèles dans un environnement distribué [21]. Des technologies d'objets distribués ont été utilisées pour accéder à des objets distants dans un environnement distribué, telles que l'architecture de courtier de demandes d'objets communs (CORBA) [22], le modèle d'objets de composants distribués (DCOM) [23] et l'invocation de méthode à distance Java RMI) [24] l'utilisation directe de ces trois technologies par les programmeurs est de moins en moins courante en raison de leurs défauts : les protocoles étroitement couplés sont efficaces pour créer une application spécifique mais ne sont pas suffisamment flexibles, et les protocoles sont limités par les implémentations, langues [25].

Ces dernières années, des technologies, des spécifications et des cadres standard ont été développés pour le partage de modèles et des exemples d'intégration incluent l'architecture pilotée par le modèle (MDA) et l'interface de modélisation ouverte (OpenMI) ainsi que plusieurs cadres de modélisation. MDA est une approche de conception logicielle développée par l'Object Management Group pour fournir une approche ouverte et indépendante des fournisseurs pour les systèmes logiciels utilisant des spécifications telles que le langage de modélisation unifié, la fonction de méta-objet, l'échange de métadonnées XML et le méta-modèle d'entrepôt commun. qui a construit des schémas cohérents pour la création, la publication et la gestion de modèles avec le modèle indépendant de la plate-forme PIM et le modèle PSM spécifique à la plate-forme [26, 27]. Le MDA est prometteur, mais le PIM et le PSM n'incluent pas de mappage de spécifications standard, ce qui complique l'application du MDA. L'interface de modélisation ouverte (OpenMI) est une interface de composant logiciel qui permet aux modèles dépendants du temps de partager et d'échanger des informations au moment de l'exécution, ce qui rend l'intégration du modèle possible au niveau opérationnel. OpenMI met l'accent sur l'interopérabilité entre des modèles par ailleurs indépendants [28]. Des dizaines de cadres de modélisation et de réutilisation, tels que l'environnement de modélisation spatiale (SME) [29, 30] et le système de modélisation de composants interactifs (ICMS) [31], ont été développés pour gérer les problèmes de partage et d'intégration de modèles, mais la plupart d'entre eux sont fortement liés au domaine, à la plate-forme et inaccessibles à Internet, ce qui limite leur application [5].

Avec le développement des technologies de l'information (TI), les services Web et l'architecture orientée services (SOA) sont plus couramment utilisés dans le partage de modèles et l'intégration de modèles [2, 32-34]. Certains avantages incluent le partage de modèles en tant que services mondiaux appliqués à diverses applications populaires [35] et l'intégration de données et de modèles de n'importe où dans le monde [36]. De plus, avec l'avènement de la notion avancée de « Modèle en tant que service » [37-40], la méthode des services Web crée de nouvelles opportunités de partage et d'intégration de modèles, y compris les modèles SIG et RS.

L'objectif de cet article est de concevoir une méthode basée sur les services Web pour partager et intégrer des modèles RS et SIG. L'idée principale du partage et de l'intégration de modèles basés sur le service Web est de publier divers modèles RS et SIG hétérogènes en tant que services Web pour le partage de modèles, puis d'intégrer les services Web homogènes pour l'intégration de modèles. Suivant cette idée, cet article publie le modèle de méthodes et l'intégration du modèle en tant que services Web et l'applique à la surveillance de l'environnement aquatique dans la région du delta de la rivière des Perles en Chine.

L'organisation de cet article est la suivante : la section 2 aborde l'idée principale du partage et de l'intégration de modèles basés sur des services Web et la méthode proposée. La section 3 décrit la mise en œuvre de la méthode proposée pour le système de surveillance de l'environnement aquatique du PRD. Enfin, la section 4 conclut cet article et présente les travaux futurs.

2. Méthodologies

Un modèle est une représentation d'un ou plusieurs processus qui sont censés se produire dans le mot réel [41]. Du point de vue de l'utilisateur, un modèle peut être formalisé comme un tuple comme

, où est le modèle, présente l'identification unique du modèle, est son nom, et , , , et sont respectivement l'entrée, la sortie, l'implémentation (programmes exécutables) et les métadonnées du modèle.

Le service Web offre un moyen de partager et d'interopérer des modèles [40]. La méthode est basée sur le protocole SOAP (Simple Object Access Protocol) et le langage de description des services Web (WSDL). WSDL fournit une description centrée sur les fonctions des services Web, y compris leurs entrées, sorties et gestion des exceptions [42], qui correspondent à la structure du tuple de modèle formalisé. Parce que la méthode est standardisée et faiblement couplée [40], les modèles hétérogènes RS et SIG deviennent des services Web « homogènes » après leur publication. Intégrer des modèles RS et SIG hétérogènes revient à intégrer des services Web « homogènes » car les modèles sont publiés en tant que services Web. La composition de services Web est une méthode d'intégration de services Web [33, 34, 43]. La composition de service Web agrège plusieurs services en un seul nouveau service pour une certaine fonctionnalité qu'un seul service principal ne peut pas fournir [44]. Si un modèle qui s'exécute sur un environnement de bureau ou de réseau local est appelé modèle local et qu'un modèle publié avec le service Web est appelé modèle Web, l'objectif du partage et de l'intégration des modèles SIG et RS est de publier le modèle local. à un modèle Web, puis combiner les modèles Web. Le cadre de partage et d'intégration des modèles SIG et RS basés sur le service Web est illustré à la figure 1.


2.1. Partage de modèle avec le service Web

Le partage de modèle est la publication de modèles locaux en tant que modèles Web à l'aide d'un service Web. Développer un service Web est chronophage et nécessite des compétences professionnelles spécifiques. En outre, de nombreux experts en modèles SIG et RS visent à concentrer leurs efforts sur le développement de modèles plus puissants plutôt que sur l'amélioration de leurs compétences en programmation. Compte tenu de ces facteurs, une approche boîte noire combinée à une méthode visuelle est introduite pour faciliter la publication de modèles locaux vers des services Web. Une boîte noire [45] est une méthode qui peut être utilisée sans connaître le fonctionnement de son algorithme interne, l'utilisateur n'a besoin de connaître que les caractéristiques d'entrée et de sortie. L'entrée exposée de la boîte noire est une interface utilisateur visuelle qui est illustrée à la figure 2. Une méthode visuelle pour manipuler un modèle est un moyen efficace de réduire le temps de développement et la formation [46]. L'interface visuelle masque la lourdeur de la mise en œuvre du service Web.


Pour cette méthode, « à l'intérieur » de la boîte noire est essentiel, générant des services Web à partir de modèles SIG et RS avec leurs noms, entrées, sorties et programmes exécutables. Les entrées de la boîte noire incluent des paramètres de description et la sortie inclut les fonctions Web. Une méthode d'interface est introduite pour exécuter ces fonctions. La programmation basée sur l'interface est une méthode de programmation courante dans les langages de programmation de haut niveau. Une interface est un objet de type référence qui définit des méthodes sans définir l'implémentation. C'est une signature pour interagir avec d'autres classes ou interfaces. Une méthode basée sur une interface sépare une définition de méthode et son implémentation et rend le code plus réutilisable, robuste, révisable et abstrait. Les objectifs de l'adoption d'une méthode basée sur l'interface sont (1) de fournir une méthode uniforme de description des entrées et des sorties d'un modèle « en dehors » de la boîte noire, ce qui facilite l'interaction entre un modèle et la boîte noire et (2) de facilitez la mise en œuvre du service Web avec une interface unifiée « à l'intérieur » de la boîte noire. Deux éléments importants pour la méthode basée sur l'interface sont la définition de l'interface et l'implémentation de l'interface.

Pour la définition de l'interface, la clé de la publication d'un modèle sur un service Web consiste à mapper les structures de description entre le modèle et le service Web. le Opération dans un document WSDL est similaire à une méthode ou une fonction dans un langage de programmation traditionnel. Un modèle exécutable est également similaire à une méthode ou une fonction dans un langage de programmation traditionnel. Le schéma de mappage de la relation entre un modèle et un service Web est illustré à la figure 3. L'entrée, la sortie et le code d'exécution d'un modèle correspondent respectivement au code d'entrée, de sortie et d'exécution d'un service Web. Le code d'exécution du modèle est son implémentation de programmation, qui est cohérente avec le service Web.


Dans la figure 2, le nom, l'entrée et la sortie d'un modèle correspondent respectivement au nom, à l'entrée et à la sortie d'une interface. Les paramètres d'entrée et de sortie sont définis avec des noms et des types. Les types sont des types de programmation de base, tels que chaîne, double, et entier. Ces noms et types de paramètres sont cohérents avec ceux des entrées et sorties du programme exécutable du modèle.

Pour la mise en œuvre de l'interface, les modèles déployés sur un serveur local peuvent se présenter sous l'une des nombreuses formes, par exemple, un fichier exécutable (EXE), un script, une bibliothèque de liens dynamiques (DLL) ou d'autres langages de programme écrits. Ces programmes exécutables sous forme de formulaires sont appelés programmes tiers. L'invocation d'un programme tiers est essentielle pour exécuter un modèle local. Les langages de programmation de haut niveau sont capables d'invoquer des programmes tiers. Par exemple, Java utilise des classes d'exécution et de processus pour exécuter des programmes tiers, et en C#, DllImport est utilisé pour exécuter des programmes tiers. Une bibliothèque de développement de services Web prend en charge le développement de services Web. C# inclut des classes de service Web dans le .NET Framework en tant que classes de bibliothèque pour le développement de services Web. Java a également des classes de bibliothèque pour le développement de services Web. Java a de nombreux projets open source tels que Axis2 qui peuvent être utilisés pour développer et déployer des services Web. Dans la figure 2, un squelette de service Web est illustré pour la méthode de programmation d'interface qui mappe un modèle à un service Web. Lorsqu'une interface concrète est définie, le programme tiers remplit le squelette pour réaliser le service Web.

2.2. Intégration de modèle à l'aide d'un service Web

Les modèles RS et SIG sont des services Web homogènes une fois les modèles publiés dans des modèles Web. Le défi d'intégration de modèle est équivalent à l'intégration de services Web. L'intégration de services Web consiste à combiner des services Web différents mais associés sur le Web. Un service Web démontre ses capacités par WSDL avec des opérations. La composition de services Web comprend la combinaison d'opérations à l'aide d'un processus logique. L'intégration de services Web crée une combinaison logique de commande de services Web associés.

La composition des services Web est étudiée depuis des années. L'industrie et le milieu universitaire ont chacun présenté de nombreuses méthodes de composition de services Web. Les méthodes de composition de services Web peuvent être divisées en compositions de services basées sur le workflow et en compositions de services basées sur l'intelligence artificielle (IA) en fonction de leurs bases techniques et théoriques. Pour la méthode de workflow, un service composite est similaire à un workflow qui contient un ensemble de services Web ainsi que le contrôle et le flux de données entre les services (par exemple, [33, 34, 46, 47]). Pour la méthode IA, la composition de services Web peut être considérée comme une méthode automatique pour trouver la solution à un problème de planification : étant donné un état initial et l'état cible, chercher un chemin pour atteindre le portefeuille de services de l'état initial à l'état cible dans un ensemble de services (par exemple, [48-50]). La méthode de composition de service Web automatique et intelligente basée sur l'IA développe la tendance et l'objectif final, cependant, la méthode de workflow est plus mature dans l'industrie. Dans cet article, un cadre de composition de services Web basé sur ces deux méthodes est proposé.

Chen et al. [33, 34] ont introduit une méthode de workflow de traitement géospatial (GPW) pour intégrer des services Web géo-dépendants pour une tâche complexe. Cette méthode présente des avantages notables par rapport à d'autres méthodes : interopérabilité, flexibilité et réutilisabilité. La méthode GPW fournit un cadre général appelé GPW abstrait, qui définit le processus de conception d'une tâche et instancie un GPW concret dans une application spécifique. Résumé Le GPW se compose de trois phases : la connaissance, l'information et les données [33]. La phase de connaissance définit les modèles et processus géospatiaux. La phase d'information intègre les processus géospatiaux dans une chaîne de services géospatiaux. La phase de données exécute une chaîne de services géospatiales pour générer des données. Cet article se concentre sur la méthode GPW pour la composition de services Web SIG et RS. Un cadre pour l'intégration de modèles SIG et RS basés sur un service Web à l'aide de la méthode GPW est proposé comme le montre la figure 4.


De manière analogue aux rôles dans SOA, il existe trois rôles de modèle dans le cadre illustré à la Figure 4 : le fournisseur de modèle, le courtier de modèle et le consommateur de modèle. (i) Le fournisseur de modèles publie des modèles sur des services Web (décrits à la section 2.1) et les enregistre auprès du courtier de modèles. (ii) Le consommateur modèle est un utilisateur qui trouve une solution pour une tâche auprès du courtier de services. (iii) Le courtier de modèles est un référentiel de méta-informations de modèle et un résolveur de tâches.

Les éléments essentiels du courtier de modèles sont les connaissances géospatiales, le référentiel de services et le moteur de traitement géospatial. (i) La connaissance géospatiale fournit des connaissances géospatiales pour traiter intelligemment l'intégration du modèle, elle comprend une bibliothèque sémantique et une bibliothèque de connaissances sur la chaîne de processus géospatiale. (ii) Le référentiel de services est un centre qui accepte l'enregistrement de modèles dans un format de service Web avec annotation sémantique. (iii) Le moteur de traitement géospatial est responsable de la gestion de la tâche du consommateur du modèle.

Le but de ce cadre n'est pas seulement de permettre au propriétaire du modèle et au consommateur de modèle d'effectuer peu de travail, mais aussi de profiter du partage et de l'intégration du modèle, laissant le défi du partage et de l'intégration au courtier de modèle. Pour y parvenir, certaines stratégies sont intégrées dans les trois parties principales du modèle de courtier sur la base des trois phases du GPW illustrées à la figure 4.

2.2.1. Phase de connaissance

Les modèles géospatiaux isolés ne sont pas conçus pour être combinés. Les connaissances géospatiales, y compris une bibliothèque de connaissances sur la chaîne de processus géospatiale et une bibliothèque sémantique géospatiale, aident à combiner les modèles et sont préparées par le courtier en modèles. Un modèle est ici considéré comme un processus. Une chaîne de processus (

) est une combinaison de modèles logiques ordonnés en sémantique. est formalisé comme un tuple comme

, où est l'identification unique du , est son nom, est les vecteurs de relation pour les modèles,

présente un modèle (mentionné au début de la section 2) avec un indice

(un nombre fini), et indique les métadonnées du fichier . Par exemple, la chaîne de processus d'inversion de la chlorophylle-a de la figure 4 est , le de l'est

, où , , , et désignent respectivement le modèle de correction atmosphérique, le modèle de correction radiométrique, le modèle de correction géométrique et le modèle d'inversion de la chlorophylle-a. Pour rechercher efficacement une chaîne de processus, la bibliothèque sémantique contient des ontologies, qui représentent formellement la connaissance comme un ensemble de concepts dans un domaine, en utilisant un vocabulaire partagé pour désigner les types, les propriétés et les interrelations de ces concepts [51]. Une bibliothèque sémantique permet d'éliminer les incohérences entre les noms de processus et les noms de modèles. Pour une tâche d'application, les responsabilités de la phase de connaissance sont de trouver des chaînes de processus et des services Web appropriés en trois étapes : étape (1) rechercher dans la bibliothèque de connaissances pour trouver une chaîne de processus appropriée pour la tâche, étape (2) trouver des services Web appropriés pour chaque processus dans la chaîne de processus, et l'étape (3) forment des chaînes de service des chaînes de processus. A l'étape (1), les termes sémantiques pour décrire une tâche sont trouvés ou définis par le consommateur de modèle selon la bibliothèque sémantique fournie par le courtier de modèle. Il existe une interface utilisateur graphique (GUI) développée par le courtier de modèles que le consommateur de modèles peut utiliser lors de la soumission d'une tâche. Le courtier modèle choisit une tâche parmi celles qui ont déjà été répertoriées dans l'interface graphique ou soumet un terme de base décrivant la tâche à l'interface graphique, puis trouve la tâche à partir des retours de l'interface graphique. La bibliothèque de chaîne de processus partage la même bibliothèque sémantique. Par conséquent, le travail de l'étape (1) est la correspondance sémantique. L'étape (2) collecte tous les modèles ou services Web associés de chaque processus et forme ensuite les chaînes de services Web des chaînes de processus. Cette étape est automatiquement complétée par le courtier de modèles.

2.2.2. Phase d'information

Les chaînes de services Web originales dérivées de la phase de connaissance sont principalement des chaînes sémantiques. La transition des chaînes sémantiques à une chaîne de workflow exécutable nécessite la composition des services Web, le traitement des incohérences des données et l'optimisation et la sélection de la chaîne de services, comme illustré à la figure 4.

Composition des services Web. Les processus d'intégration de services Web sont illustrés à la figure 5. Un moteur d'analyse de services Web est conçu par le courtier de modèles pour analyser les services Web RS et SIG avec leurs WSDL. Ensuite, l'interface de service Web extrait les modèles appropriés et compose les modèles avec les interfaces WSDL. La figure 6 montre trois relations de composition de base entre deux interfaces, l'interface IName1 et l'interface IName2, avec le diagramme pseudo-Unified Modeling Language (UML). Si la sortie d'une opération dans une interface fait partie ou la totalité de l'entrée de l'autre interface, les deux interfaces sont associées comme indiqué sur la figure 6(a). Leur composite est séquentiel. Si les sorties de deux interfaces sont les entrées d'une autre interface, les deux interfaces fonctionnent ensemble pour former une relation de collaboration comme le montre la figure 6(b). Contrairement à leur apparence concurrente, la relation choisie choisit une interface pour un autre composite, comme le montre la figure 6(c). Sur la base de ces relations composites de base, de nombreux services Web s'intègrent pour chaque tâche.


Présentation des LOB

Les types de données d'objets volumineux (LOB) BLOB , CLOB , NCLOB et BFILE vous permettent de stocker et de manipuler de gros blocs de données non structurées (telles que du texte, des images graphiques, des clips vidéo et des signaux sonores) au format binaire ou caractère. Ils fournissent un accès efficace, aléatoire et par morceaux aux données.

Avec la croissance d'Internet et des applications riches en contenu, il est devenu impératif que la base de données prenne en charge un type de données remplissant les conditions suivantes :

Peut stocker des données non structurées

Est optimisé pour de grandes quantités de telles données

Fournit un moyen uniforme d'accéder à de grandes données non structurées au sein de la base de données ou à l'extérieur


Konecny ​​M, Nyapola H. Renforcement des capacités pour le développement de la géo-information, E/CONF.97/6/IP.2. Conseil économique et social des Nations Unies. Actes de la dix-septième Conférence cartographique régionale des Nations Unies pour l'Asie et le Pacifique. 2006.

Piragnolo M, Masiero A, Fissore F, Pirotti F. Modélisation de l'irradiance solaire avec l'environnement GIS de la NASA WW. ISPRS Int J Géo-Information. 20154:711-24. doi:10.3390/ijgi4020711.

Pirotti F, Guarnieri A, Vettore A. Conception collaborative de SIG Web : une étude de cas pour l'analyse et la surveillance des risques routiers. TransSIG. 201115:213-26. doi: 10.1111/j.1467-9671.2011.01248.x.

Pirotti F, Brovelli MA, Prestiphilippo G, et al.Un moteur de rendu de globe virtuel open source pour les applications 3D : NASA World Wind. Open Geospatial Data, Software Stand (en version imprimée).

Goldin SE, Rudahl KT. Dragon et Phoenix : traitement d'images à faible coût pour les pays en développement. Actes de la conférence informatique régionale de l'Asie du Sud-Est. Bangkok : Association Informatique de Thaïlande. 1986. 41–42.

Goldin SE, Rudahl KT. Rapport sur l'atelier du lycée sur la télédétection pour l'évaluation de la sécheresse. Bangkok : Université de technologie du roi Mongkut Thonburi 2005.

Rudahl KT, Goldin SE. Apprendre la télédétection avec Dragon/ips® et OpenDragon TM . Hadley : Global Software Institute 2011. ISBN 9781453862940.

Ekahitanonda I, Goldin S, Rudahl KT. Amélioration de la classification du riz à l'aide de données multi-temporelles avec logique floue et algorithmes génétiques. Actes de la 28 e conférence asiatique sur la télédétection. 2007.

Tanathong S. Détection de changement basée sur les objets : le cas de la catastrophe du tsunami. Actes de la 28 e conférence asiatique sur la télédétection. 2007.

Latif DA, Goldin S, Sumaryono. Classification basée sur la texture des images de télédétection haute résolution à l'aide de Weber Local Descriptor. Actes de la 10e Conférence internationale sur les SIG en Asie. 2014.

Disponibilité des données et des matériaux

Contributions des auteurs

Écrit et édité par KR et SG. Illustrations sélectionnées et/ou générées par KR et SG. Processus de soumission géré par KR. Les deux auteurs ont lu et approuvé le manuscrit final.


Voir la vidéo: Getting started with using IntelliJ IDEA 2020