14 research outputs found

    Photo Enhancement On Mobile Devices Using Deep Neural Networks

    Get PDF
    In recent years, the return of the usage of Artificial Neural Networks has lead to the greatest improvements in the field of Artificial Intelligence, due to the huge diversity of different applications that deep learning models has in a large variety of research fields, and also the evolution of information processing systems capacity. This thesis aims to study which deep neural networks models are most suitable for photo enhancement, to generate images with certain desired characteristics. Model selection has been done by comparing the both supervised, Convolutional Neural Networks, and unsupervised models, Generative Adversarial Networks. It has been demonstrated that Generative Adversarial Networks have great potential by showing results that compete with the state of the art. The chosen model is a Generative Adversarial model which outperforms the rest in terms of a combination of enhancement quality and time taken in the process. Moreover, since the model is compatible with mobile devices it has been integrated and evaluated in a BQ smartphone, to proof its viability on mobile devices.Doble Grado en IngenierĂ­a InformĂĄtica y AdministraciĂłn de Empresa

    Support Vector Machines. Similarity functions to work with heterogeneous data and classifying documents

    Get PDF
    Projecte fet en col.laboraciĂł amb University of Southern DenmarkThe objective of Data Mining (DM) is to classify information from the real world. That kind of information is commonly heterogeneous data: information that needs different kind of data to be represented. How to deal with heterogeneous data has been usually something DM lacks about because DM is not deeply used with real world problems. Different solutions has been shown and our objective is to show a new one using similarities and Support Vector Machines (SVM). How to use similarities instead of kernels in SVM and later how to combine similarities to work with heterogeneous data. The idea is that any type of data will have a similarity related and then all this similarities will be combined to output a result. What makes this idea powerful is the way we can combine similarities, it can be practically anything while other methods to work with heterogeneous data only do linear combinations.First of all understand how SVM works and what does it means to use similarities instead of Kernels. Later implement in a SVM library what explained before and show it working with an example. We will work with documents so it would be also required to do some NLP, learn about a NLP is another of my goals. Another of our goals is to use OO techniques and get a good design. Make our framework easy to be modified by anybody. Make an easy implementation. The objective is to extend the library used not to fork it

    Impacts and Detection of Design Smells

    Full text link
    Les changements sont faits de façon continue dans le code source des logiciels pour prendre en compte les besoins des clients et corriger les fautes. Les changements continus peuvent conduire aux dĂ©fauts de code et de conception. Les dĂ©fauts de conception sont des mauvaises solutions Ă  des problĂšmes rĂ©currents de conception ou d’implĂ©mentation, gĂ©nĂ©ralement dans le dĂ©veloppement orientĂ© objet. Au cours des activitĂ©s de comprĂ©hension et de changement et en raison du temps d’accĂšs au marchĂ©, du manque de comprĂ©hension, et de leur expĂ©rience, les dĂ©veloppeurs ne peuvent pas toujours suivre les normes de conception et les techniques de codage comme les patrons de conception. Par consĂ©quent, ils introduisent des dĂ©fauts de conception dans leurs systĂšmes. Dans la littĂ©rature, plusieurs auteurs ont fait valoir que les dĂ©fauts de conception rendent les systĂšmes orientĂ©s objet plus difficile Ă  comprendre, plus sujets aux fautes, et plus difficiles Ă  changer que les systĂšmes sans les dĂ©fauts de conception. Pourtant, seulement quelques-uns de ces auteurs ont fait une Ă©tude empirique sur l’impact des dĂ©fauts de conception sur la comprĂ©hension et aucun d’entre eux n’a Ă©tudiĂ© l’impact des dĂ©fauts de conception sur l’effort des dĂ©veloppeurs pour corriger les fautes. Dans cette thĂšse, nous proposons trois principales contributions. La premiĂšre contribution est une Ă©tude empirique pour apporter des preuves de l’impact des dĂ©fauts de conception sur la comprĂ©hension et le changement. Nous concevons et effectuons deux expĂ©riences avec 59 sujets, afin d’évaluer l’impact de la composition de deux occurrences de Blob ou deux occurrences de spaghetti code sur la performance des dĂ©veloppeurs effectuant des tĂąches de comprĂ©hension et de changement. Nous mesurons la performance des dĂ©veloppeurs en utilisant: (1) l’indice de charge de travail de la NASA pour leurs efforts, (2) le temps qu’ils ont passĂ© dans l’accomplissement de leurs tĂąches, et (3) les pourcentages de bonnes rĂ©ponses. Les rĂ©sultats des deux expĂ©riences ont montrĂ© que deux occurrences de Blob ou de spaghetti code sont un obstacle significatif pour la performance des dĂ©veloppeurs lors de tĂąches de comprĂ©hension et de changement. Les rĂ©sultats obtenus justifient les recherches antĂ©rieures sur la spĂ©cification et la dĂ©tection des dĂ©fauts de conception. Les Ă©quipes de dĂ©veloppement de logiciels doivent mettre en garde les dĂ©veloppeurs contre le nombre Ă©levĂ© d’occurrences de dĂ©fauts de conception et recommander des refactorisations Ă  chaque Ă©tape du processus de dĂ©veloppement pour supprimer ces dĂ©fauts de conception quand c’est possible. Dans la deuxiĂšme contribution, nous Ă©tudions la relation entre les dĂ©fauts de conception et les fautes. Nous Ă©tudions l’impact de la prĂ©sence des dĂ©fauts de conception sur l’effort nĂ©cessaire pour corriger les fautes. Nous mesurons l’effort pour corriger les fautes Ă  l’aide de trois indicateurs: (1) la durĂ©e de la pĂ©riode de correction, (2) le nombre de champs et mĂ©thodes touchĂ©s par la correction des fautes et (3) l’entropie des corrections de fautes dans le code-source. Nous menons une Ă©tude empirique avec 12 dĂ©fauts de conception dĂ©tectĂ©s dans 54 versions de quatre systĂšmes: ArgoUML, Eclipse, Mylyn, et Rhino. Nos rĂ©sultats ont montrĂ© que la durĂ©e de la pĂ©riode de correction est plus longue pour les fautes impliquant des classes avec des dĂ©fauts de conception. En outre, la correction des fautes dans les classes avec des dĂ©fauts de conception fait changer plus de fichiers, plus les champs et des mĂ©thodes. Nous avons Ă©galement observĂ© que, aprĂšs la correction d’une faute, le nombre d’occurrences de dĂ©fauts de conception dans les classes impliquĂ©es dans la correction de la faute diminue. Comprendre l’impact des dĂ©fauts de conception sur l’effort des dĂ©veloppeurs pour corriger les fautes est important afin d’aider les Ă©quipes de dĂ©veloppement pour mieux Ă©valuer et prĂ©voir l’impact de leurs dĂ©cisions de conception et donc canaliser leurs efforts pour amĂ©liorer la qualitĂ© de leurs systĂšmes. Les Ă©quipes de dĂ©veloppement doivent contrĂŽler et supprimer les dĂ©fauts de conception de leurs systĂšmes car ils sont susceptibles d’augmenter les efforts de changement. La troisiĂšme contribution concerne la dĂ©tection des dĂ©fauts de conception. Pendant les activitĂ©s de maintenance, il est important de disposer d’un outil capable de dĂ©tecter les dĂ©fauts de conception de façon incrĂ©mentale et itĂ©rative. Ce processus de dĂ©tection incrĂ©mentale et itĂ©rative pourrait rĂ©duire les coĂ»ts, les efforts et les ressources en permettant aux praticiens d’identifier et de prendre en compte les occurrences de dĂ©fauts de conception comme ils les trouvent lors de la comprĂ©hension et des changements. Les chercheurs ont proposĂ© des approches pour dĂ©tecter les occurrences de dĂ©fauts de conception, mais ces approches ont actuellement quatre limites: (1) elles nĂ©cessitent une connaissance approfondie des dĂ©fauts de conception, (2) elles ont une prĂ©cision et un rappel limitĂ©s, (3) elles ne sont pas itĂ©ratives et incrĂ©mentales et (4) elles ne peuvent pas ĂȘtre appliquĂ©es sur des sous-ensembles de systĂšmes. Pour surmonter ces limitations, nous introduisons SMURF, une nouvelle approche pour dĂ©tecter les dĂ©fauts de conception, basĂ© sur une technique d’apprentissage automatique — machines Ă  vecteur de support — et prenant en compte les retours des praticiens. GrĂące Ă  une Ă©tude empirique portant sur trois systĂšmes et quatre dĂ©fauts de conception, nous avons montrĂ© que la prĂ©cision et le rappel de SMURF sont supĂ©rieurs Ă  ceux de DETEX et BDTEX lors de la dĂ©tection des occurrences de dĂ©fauts de conception. Nous avons Ă©galement montrĂ© que SMURF peut ĂȘtre appliquĂ© Ă  la fois dans les configurations intra-systĂšme et inter-systĂšme. Enfin, nous avons montrĂ© que la prĂ©cision et le rappel de SMURF sont amĂ©liorĂ©s quand on prend en compte les retours des praticiens.Changes are continuously made in the source code to take into account the needs of the customers and fix the faults. Continuous change can lead to antipatterns and code smells, collectively called “design smells” to occur in the source code. Design smells are poor solutions to recurring design or implementation problems, typically in object-oriented development. During comprehension and changes activities and due to the time-to-market, lack of understanding, and the developers’ experience, developers cannot always follow standard designing and coding techniques, i.e., design patterns. Consequently, they introduce design smells in their systems. In the literature, several authors claimed that design smells make object-oriented software systems more difficult to understand, more fault-prone, and harder to change than systems without such design smells. Yet, few of these authors empirically investigate the impact of design smells on software understandability and none of them authors studied the impact of design smells on developers’ effort. In this thesis, we propose three principal contributions. The first contribution is an empirical study to bring evidence of the impact of design smells on comprehension and change. We design and conduct two experiments with 59 subjects, to assess the impact of the composition of two Blob or two Spaghetti Code on the performance of developers performing comprehension and change tasks. We measure developers’ performance using: (1) the NASA task load index for their effort; (2) the time that they spent performing their tasks; and, (3) their percentages of correct answers. The results of the two experiments showed that two occurrences of Blob or Spaghetti Code design smells impedes significantly developers performance during comprehension and change tasks. The obtained results justify a posteriori previous researches on the specification and detection of design smells. Software development teams should warn developers against high number of occurrences of design smells and recommend refactorings at each step of the development to remove them when possible. In the second contribution, we investigate the relation between design smells and faults in classes from the point of view of developers who must fix faults. We study the impact of the presence of design smells on the effort required to fix faults, which we measure using three metrics: (1) the duration of the fixing period; (2) the number of fields and methods impacted by fault-fixes; and, (3) the entropy of the fault-fixes in the source code. We conduct an empirical study with 12 design smells detected in 54 releases of four systems: ArgoUML, Eclipse, Mylyn, and Rhino. Our results showed that the duration of the fixing period is longer for faults involving classes with design smells. Also, fixing faults in classes with design smells impacts more files, more fields, and more methods. We also observed that after a fault is fixed, the number of occurrences of design smells in the classes involved in the fault decreases. Understanding the impact of design smells on development effort is important to help development teams better assess and forecast the impact of their design decisions and therefore lead their effort to improve the quality of their software systems. Development teams should monitor and remove design smells from their software systems because they are likely to increase the change efforts. The third contribution concerns design smells detection. During maintenance and evolution tasks, it is important to have a tool able to detect design smells incrementally and iteratively. This incremental and iterative detection process could reduce costs, effort, and resources by allowing practitioners to identify and take into account occurrences of design smells as they find them during comprehension and change. Researchers have proposed approaches to detect occurrences of design smells but these approaches have currently four limitations: (1) they require extensive knowledge of design smells; (2) they have limited precision and recall; (3) they are not incremental; and (4) they cannot be applied on subsets of systems. To overcome these limitations, we introduce SMURF, a novel approach to detect design smells, based on a machine learning technique—support vector machines—and taking into account practitioners’ feedback. Through an empirical study involving three systems and four design smells, we showed that the accuracy of SMURF is greater than that of DETEX and BDTEX when detecting design smells occurrences. We also showed that SMURF can be applied in both intra-system and inter-system configurations. Finally, we reported that SMURF accuracy improves when using practitioners’ feedback

    Extracting a knowledge from source code comprehesion using data mining methods

    No full text

    General Course Catalog [July-December 2020]

    Get PDF
    Undergraduate Course Catalog, July-December 2020https://repository.stcloudstate.edu/undergencat/1132/thumbnail.jp

    General Course Catalog [January-June 2020]

    Get PDF
    Undergraduate Course Catalog, January-June 2020https://repository.stcloudstate.edu/undergencat/1131/thumbnail.jp

    General Course Catalog [July-December 2019]

    Get PDF
    Undergraduate Course Catalog, July-December 2019https://repository.stcloudstate.edu/undergencat/1130/thumbnail.jp

    Retrieval-, Distributed-, and Interleaved Practice in the Classroom:A Systematic Review

    Get PDF
    Three of the most effective learning strategies identified are retrieval practice, distributed practice, and interleaved practice, also referred to as desirable difficulties. However, it is yet unknown to what extent these three practices foster learning in primary and secondary education classrooms (as opposed to the laboratory and/or tertiary education classrooms, where most research is conducted) and whether these strategies affect different students differently. To address these gaps, we conducted a systematic review. Initial and detailed screening of 869 documents found in a threefold search resulted in a pool of 29 journal articles published from 2006 through June 2020. Seventy-five effect sizes nested in 47 experiments nested in 29 documents were included in the review. Retrieval- and interleaved practice appeared to benefit students’ learning outcomes quite consistently; distributed practice less so. Furthermore, only cognitive Student*Task characteristics (i.e., features of the student’s cognition regarding the task, such as initial success) appeared to be significant moderators. We conclude that future research further conceptualising and operationalising initial effort is required, as is a differentiated approach to implementing desirable difficulties

    General Course Catalog [January-June 2019]

    Get PDF
    Undergraduate Course Catalog, January-June 2019https://repository.stcloudstate.edu/undergencat/1129/thumbnail.jp

    General Course Catalog [July-December 2018]

    Get PDF
    Undergraduate Course Catalog, July-December 2018https://repository.stcloudstate.edu/undergencat/1128/thumbnail.jp
    corecore