MODULEW IJZER HOGESCHOOL ROTTERDAM/CMI HOGESCHOOL ROTTERDAM/CMI Praktijkgestuurd Project 1 (Webproject) TIRPGS01 Goedgekeurd door: (namens toetscommissie) Aantal studiepunten: 3 ects Modulebeheerder: A. van der Padt TIRPGS01 23-7-2017 Datum: 1 MODULEW IJZER HOGESCHOOL ROTTERDAM/CMI Modulebeschrijving: Modulenaam: Modulecode: Aantal studiepunten en studiebelastinguren: Vereiste voorkennis: Werkvorm: Toetsing: Leermiddelen: Draagt bij aan (HBO-i) competentie: Leerdoelen: Inhoud: Opmerkingen: Modulebeheerder: Datum: Praktijkgestuurd Project 1 (Webproject) TIRPGS02 Dit studieonderdeel levert de student 3 studiepunten op, hetgeen overeenkomt met een studielast van 84 uren. De verdeling van deze 56 uren over de collegeweken is als volgt: Begeleide uren project: gedurende 10 weken: 10 * 3 uur 30 uur Project uitwerken 10 weken: 10 * 5 uur 50 uur Presentatie 4 uur Totaal 84 uur tircps01,tircms02/03,tirlin01,tirana01, tirpro01/03,tirdat01/02,tirebs0, tirpif01, tirrea01 Werkinstructies en opdrachten (projectopdrachten) 3 u/week gedurende 10 wk Uitwerkingen van de opdrachten Dictaat Computertalen Deze module draagt bij tot het verwerven van de volgende competenties: Analyseren (niveau 3) Adviseren (niveau 3) Ontwerpen ( niveau 3) Realiseren (niveau 3 ) Exploitatie en beheer (niveau 3) De module praktijkgestuurd project 1 heeft als doel om de student inzicht en vaardigheid te geven in het zelfstandig oplossen van een praktijkgestuurde opdrachten op het gebied van webapplicaties Het kunnen opstellen van eenvoudige en geavanceerde reguliere expressies. Het kunnen opstellen en toepassen van patroonherkenning voor beheeren gebruiksproblemen, onderzoek van DNA-strings, tekstverwerking en bestandsconversie. Het kunnen opstellen en interpreteren van grammatica's in (E)BNF voor protocollen, programmeer- en opmaaktalen Het kunnen genereren van een scanner met flex . Het kunnen genereren van een parser met bison. Het kunnen maken van een eenvoudige vertaler of interpreter. Het kunnen ontwerpen en realiseren van programmatuur zoals: Foutdetectie en correctie in teksten en protocollen, plagiaatcontrole, XML-parsing en Data Mining en KI en daarvan de beperkingen kennen. Het kunnen programmeren in assemblertaal in verband met snelheid- en ruimtebeperkingen in embedded systemen. Er dient een project te worden uitgevoerd , waarbij deze competenties door de student verworven kan worden. Alle programmatuur is vrij verkrijgbaar op Internet (zie dictaat en literatuur) A. van der Padt 17-02-2011 Inhoudsopgave 1. 1.1 Algemene omschrijving ______________________________________________4 Inleiding _______________________________________________________________ 4 TIRPGS01 23-7-2017 2 MODULEW IJZER HOGESCHOOL ROTTERDAM/CMI 1.2 Inhoud _________________________________________________________________ 4 1.3 Relatie met andere onderwijseenheden _____________________________________ 5 1.4 Leerdoelen en competenties ______________________________________________ 5 1.5 Werkvorm(en) ___________________________________________________________ 6 1.6 Toetsing _______________________________________________________________ 6 1.7 Literatuur ______________________________________________________________ 6 2. Programma _________________________________________________________7 2.1 Opdracht(en) ___________________________________________________________ 7 2.2 Software _______________________________________________________________ 8 2.3 Verklaringen van begrippen _______________________________________________ 8 TIRPGS01 23-7-2017 3 MODULEW IJZER HOGESCHOOL ROTTERDAM/CMI 1.Algemene omschrijving 1.1 Inleiding Het praktijkgestuurd project 1 is bedoeld om de relatie school bedrijfsleven te vergroten. Het kan als onderdeel gebruikt worden van een verlengde stage of als onderdeel van de het voorbereidende afstuderen. Het kan onderdeel zijn van het leerwerkbedrijf ASIMO en een differentiatie. In deze module wordt het raamwerk gegeven waaraan het project dient te voldoen. De voorbeelden van projecten die hieronder gegeven worden zijn projecten die geadopteerd zijn vanuit het bedrijfsleven. Genoemd worden de bedrijven: JOA, Dutch Space , Imtech , Kuijpers Electronics. Indien een nieuwe opdracht vanuit het bedrijfsleven geadopteerd wordt ( Real Life Case) dient het project bij te dragen om onderstaande competenties te behalen De competenties van deze module zijn: Het kunnen opstellen van eenvoudige en geavanceerde reguliere expressies. Het kunnen opstellen en toepassen van patroonherkenning voor beheer- en gebruiksproblemen, onderzoek van DNA-strings, tekstverwerking en bestandsconversie. Het kunnen opstellen en interpreteren van grammatica's in (E)BNF voor protocollen, programmeer- en opmaaktalen Het kunnen genereren van een scanner met flex . Het kunnen genereren van een parser met bison. Het kunnen maken van een eenvoudige vertaler of interpreter. Het kunnen ontwerpen en realiseren van programmatuur zoals: Foutdetectie en correctie in teksten en protocollen, plagiaatcontrole, XML-parsing en Data Mining en KI en daarvan de beperkingen kennen. Het kunnen programmeren in assemblertaal in verband met snelheid- en ruimtebeperkingen in embedded systemen. 1.2 Inhoud Deze module dient om competenties op het gebied van computer interfacing te verwerven. Dit wordt door middel van de werkvorm praktijkgestuurde projecten verkregen. De student kan zelf een projectvoorstel doen om de competenties te verwerven. Men kan ook onderstaande onderwerpen nemen: Project: genereren van `pseudo-realistische' teksten Namen Gedichten Reclameteksten Verslagen en notulen Tentamenopdrachten Journalistieke stukken Stappen bij het genereren 1. Maak een grammatica voor het gekozen onderwerp, 2. Begin met het startsymbool, 3. Pas een reeks van willekeurige productieregels toe totdat er alleen nog maar terminals over zijn, 4. Het gebruik van woordtripletten en zinsneden uit bestaande teksten geven het geheel een zeer pseudo-realistisch tintje, 5. Gebruik een pseudo-randomgenerator. Verfijning Het Perlscript `Travesty' maakt gebruik van `woordtripletten' 1. Maak een tabel van woordtripletten (T1; T2; T3) waarbij T3 adresseerbaar is met (T1; T2), 2. Kies een willekeurig (T1; T2) en bepaal T3, TIRPGS01 23-7-2017 4 MODULEW IJZER HOGESCHOOL ROTTERDAM/CMI 3. Bepaal met (Tn1; Tn) het woord Tn+1 etc. Project: automatisch opvragen van informatie van het internet Scripttaal (Perl, Python, PHP e.d.), Weerberichten, orkanen, weersatelieten e.d., Vulkaanuitbarstingen, aardbevingen e.d., Cartoons, grappen, weblogs e.d., nanci•ele informatie zoals koersen e.d., Aankondigingen van nieuwe releases e.d. Stappen bij het opvragen 1. Maak een script om de informatie van het web te halen, 2. Gebruik gedocumenteerde reguliere expressies om te itereren, 3. Het resultaat moet in XHTML-formaat inclusief headers, gegenereerd worden met links naar de actuele informatie, 4. Bronnen vermelden, 5. Geen onbegrijpelijke of onbekende code gebruiken, 6. Kies een (Perl/Python/PHP)-cursus op het W W W . 1.3 Relatie met andere onderwijseenheden Voorkennis Traject computertechniek programmeren problemsolving Technische informatica modulen cps01,cms02, cms03, pro01, pro02, pro03, dat01, dat02 log01 ebs01,pif01, rea01 Toepassing in andere leerstof en projecten Projecten Interfacing, web en beheers projecten praktijkgestuurd webproject Afstuderen modulen Bpf01, (interfacing technieken zoals completion, aanpassingen voor gehandicapten met speciale randapparatuur, bestandsconversie, operationele beheersproblemen, datamining, CGI en webagents, kunstmatige intelligentie, plagiaatcontrole, patroonherkenning, biologisch onderzoek in grote DNA-strings). pgs01 Veel van de behandelde onderwerpen komen tijdens de afstudeerprojecten aan de orde. 1.4 Leerdoelen en competenties Beroepscompetentie Software systeem 11 implementeren niveau 16 Embedded systemengineering expert 17 Automatiseringsdeskundige expert 24 Operationeel systeembeheeer 33 Kunstmatige Intelligentie Expert Expert 34 Mens-machine interactie Expert TIRPGS01 23-7-2017 expert keuze programmeertaal, oplossen van implementatieproblemen t.g.v. taalkeuze ontwerpen met beperkingen van de architectuur kennis van- en vaardigheid met- middelen Implementatie van maatwerksystemen kennis van- en vaardigheid met- hulpmiddelen Kennis van- en vaardigheid met- hulpmiddelen Instrueren van systemen Interface aanpassingen maken, opstellen van specificatie van interfaces., implementeren en testen interfaces 5 MODULEW IJZER HOGESCHOOL ROTTERDAM/CMI 1.5 Werkvorm(en) Als voorbeeld van een praktijkgestuurde project (3 ects) kunnen onderstaand projecten worden uitgevoerd ( of een ander bedrijfsproject ): Project: genereren van `pseudo-realistische' teksten Namen Gedichten Reclameteksten Verslagen en notulen Tentamenopdrachten Journalistieke stukken Project: automatisch opvragen van informatie van het internet Scripttaal (Perl, Python, PHP e.d.), Weerberichten, orkanen, weersatelieten e.d., Vulkaanuitbarstingen, aardbevingen e.d., Cartoons, grappen, weblogs e.d., nanci•ele informatie zoals koersen e.d., Aankondigingen van nieuwe releases e.d. Algemene voorwaarden Groepen van minimaal 2 en maximaal 4 studenten, Een project dient minimaal 3 deelproblemen te bevatten, Er dient een korte beschrijving van het onderwerp en een planning gegeven te worden. Aangegeven moet worden welke technieken en deelproblemen worden gebruikt De docent moet de beschrijvingen goed keuren goedkeuren en voortgang controleren, ( Het is niet nodig om na afloop een uitgebreid verslag te geven. Wat wel nodig is :een analyse, broncode, demonstratie met toelichting.) Bronnen vermelden en geen onbegrijpelijke of onbekende code gebruiken Voorbeeld van een projectvoorstel: Namen: . . . Doel: Het maken van een spellingscontrole, Realisatie: 1. Het detecteren van woorden in de tekst, 2. Het zoeken naar een woord in een woordenlijst met 200000 woorden, 3. Het geven van alternatieven, 4. Het wijzigen van een fout woord of het editten van een fout woord. Indien een nieuw project wordt aangedragen door bedrijf of student dienen bovenstaande richtlijnen in acht te worden genomen. 1.6 Toetsing Getoetst wordt op het product: welke deelgebieden zijn gebruikt , creativiteit , analyse van de programmasource, enz Een kort demonstratie met toelichting dient te worden gegeven Er wordt een groepscijfer gegeven en een individueel cijfer Studenten die in aanmerking komen voor een herkansing, kunnen een inhaalopdracht (maximaal 2 studenten per inhaalopdracht ) met extra voorwaarden krijgen. 1.7 Literatuur In principe is in het dictaat computer interfacing voldoende materiaal te vinden. Indien er behoefte is aan achtergrondinformatie kan men de volgende lijst raadplegen: [1] Alfred V. Aho and Jeffrey D. Ullman: Principles of Compiler Design, AddisonWesley, Reading, MA; 1977 [2] Alfred V. Aho, Ravi Sethi and Jeffrey D. Ullman: Compilers: Principles, Techniques, TIRPGS01 23-7-2017 6 MODULEW IJZER HOGESCHOOL ROTTERDAM/CMI and Tools, Addison-Wesley, Reading, MA; 1986. [3] Andrew W. Appel, Maia Ginsburg: Modern Compiler Implementation in C,Cambridge University Press, Cambridge, 1998 [4] AndrewW. Appel:Modern Compiler Implementation in Java,Cambridge University Press, Cambridge, 1998 [5] Dan Appleman, Daniel Appleman: Regular Expressions with .NET, O’Reilly, Cambridge, MA; 2003 [6] Tom Christiansen, Nathan Torkingson: Perl Cookbook, O’Reilly, Cambridge, MA; 1998 [7] Jeffrey E. F. Friedl: Mastering Regular Expressions, O’Reilly, Cambridge, MA; 2003 [8] Mehran Habibi: Java Regular Expressions, Apress; 2003 [9] Seymour Lipschutz,Marc Lipson: Discrete Mathematics, Schaum’s Outlines Series, McGraw-Hill, NY; 1997 [10] Emil Post: A variant of a recursively unsolvable problem, Bull. of Amer.Math. Soc., 52:264*268, 1946. [11] Peter H. Salus e.a.: Handbook of Programming Languages VOL III: Little Languages and Tools, Macmillan Technical Publishing, Indianapolis, IN; 1998 [12] Robert Sedgewick: Algorithms, Addison-Wesley, Reading, MA; 1983 [13] Ellen Siever: Linux in a Nutshell, O’Reilly, Cambridge, MA; 1999 [14] Niklaus Wirth: Algorithms+DataStructures=Programs, Prentice-Hall, Englewood Cliffs, NJ; 1976 Andere bronnen [15] http://directory.fsf.org/GNU/ [16] http://www.gnu.org/software/m4/m4.html [17] http://www.perl.org/ [18] http://www.python.org/ [19] http://www.php.net/ [20] http://www.tcl.tk/ [21] http://www.regexlib.com/DisplayPatterns.aspx [22] http://java.sun.com/j2se/1.4.2/docs/api/java/util/regex/Pattern.html [23] http://ftp.gnu.org/pub/gnu/regex/ [24] http://www.lysator.liu.se/c/ANSI-C-grammar-l.html [25] http://www.gnu.org/software/fl ex/manual/ [26] http://www.cs.princeton.edu/ appel/modern/java/JLex/ [27] http://www.lysator.liu.se/c/ANSI-C-grammar-y.html [28] http://www.gnu.org/software/bison/manual/ [29] http://www.cs.princeton.edu/ appel/modern/java/CUP/ [30] http://java.sun.com/docs/books/vmspec/2nd-edition/html/VMSpecTOC.doc.html [31] http://www.ecma-international.org/standards/ecma-335/Ecma-335-part-i-iv.pdf [32] http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-335.pdf [33] http://gcc.gnu.org/ [34] http://gcc.gnu.org/onlinedocs/gccint/File-Framework.html [35] http://nasm.sourceforge.net/wakka.php?wakka=HomePage [36] http://gcc.gnu.org/onlinedocs/gccint/RTL.html [37] ftp://download.intel.com/design/Pentium4/manuals/25366514.pdf [38] http://www.free-definition.com/IEEE-fl oating-point-standard.html 2.Programma 2.1 Opdracht(en) De opdrachten worden gekoppeld aan een project. De theorie dient ter ondersteuning hiervan ieder week wordt een hoorcollege gegeven. In het project dient de theorie toegepast te worden TIRPGS01 23-7-2017 7 MODULEW IJZER HOGESCHOOL ROTTERDAM/CMI Activiteiten Tabel Lesweek Docent(en) Introductie project en toelichting geven. 1 Algemene afspraken maken over spreekuren e.d. Administratie groepsindelingen. Maken van 2 groepsafspraken. 3 Adviseren, Verwijzen naar literatuur e.d. Adviseren. Verwijzen naar literatuur e.d. 4 Adviseren. Verwijzen naar literatuur e.d. 5 Adviseren. Verwijzen naar literatuur e.d. 6 Adviseren. Verwijzen naar literatuur e.d. 7 Adviseren. Verwijzen naar literatuur e.d. 8 9 Aanvang beoordelingen van de demonstraties Beoordeling van het projectverslag, projectmanagement en demonstratie. 10 Projectgroep Bestuderen opdracht en samenstellen groepen. Globale analyse van het project. Opstellen pakket van eisen + kwaliteitscriteria. Opstellen werkverdeling + planning. Globale analyse en achitectuurontwerp. Gedetailleerde analyse en ontwerpactiviteiten. Gedetailleerde analyse en ontwerpactiviteiten. Implementeren en testen van deelprojecten. Implementeren en testen van totaalsysteem. Demonstratievoorbereiding. Testen opstelling Testen opstelling. Demonstratie. Mondelinge toelichting 2.2 Software Microsoft: Studenten die onder MS-Windows willen werken wordt aanbevolen om de programma's Cygwin met sed, awk, gcc met flex en bison, en Perl te installeren. Linux: Studenten die onder met Linux werken kunnen gebruik maken van de standaard distributies die sed, grep, awk, gcc en Perl ondersteunen. Java Studenten die met Java willen werken in plaats van met C/C++ , flex en bison, kunnen gebruik maken van jlex en CUPS. Alle programma's zijn vrij op Internet verkrijgbaar. 2.3 Verklaringen van begrippen Woordtripletten De verzameling woordtripletten van de eerste file is A en van de tweede file is B. De mate van overeenkomst (resemblance R): R | A B | | A B | sterke overeenkomst signicante overeenkomst zwakke overeenkomst 0,8 < R ≤1,0 0,4 < R ≤0,8 0,04< R Bron: http://trec.nist.gov/pubs/trec11/papers/hertfordshire.lyon.pdf Soundexalgoritme gebruikt voor type- en klankfouten, woorden die hetzelfde klinken krijgen dezelfde code, zoeken of invoeren op codewoorden (een vorm van hashing), woorden uit spreektaal vertalen in codewoorden van één letter gevolgd door drie cijfers, TIRPGS01 23-7-2017 8 MODULEW IJZER HOGESCHOOL ROTTERDAM/CMI `brok', `brock', `broek' geven code B620, Werking van het Soundexalgoritme 1 eerste letter van het bronwoord is beginletter codewoord 2 volgende 3 cijfers komen in volgorde uit tabel 3 twee letters naast elkaar gelijk zijn, dan één cijfer 4 codewoord eventueel aanvullen met 0-en code 1 2 3 4 5 6 geen letter bpfv cskgjqxz dt l mn r aehiouyw uitspraakorgaan lippen keel tanden tong voor neus tong achter Edit-distance of `Levenshtein distance' Gelijke woorden hebben een afstand 0. Elk verschil tussen twee ongelijke woorden dat die gecorrigeerd kan worden door één : spatie tussen te voegen twee buurletters te verwisselen letter te vervangen door een andere letter te verwijderen letter toe te voegen geeft een toename van de afstand met 1. Plagiaat TIRPGS01 23-7-2017 collusion: afgesproken recycling van teksten, cut & paste: stukken tekst copieren zonder bronvermelding, fraude: onder eigen naam door anderen geschreven teksten inleveren. 9