1. Algemene omschrijving

advertisement
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
Download