Blog: Toby


BLOG 100101 (37) – Laatste blog

4 juli 2016

Een jaar voorbij
Dat was alweer een jaar aan colleges! Mijn BSA heb ik nog niet met zekerheid, er moeten nog wat cijfers terugkomen, maar dat komt vast wel goed. Ik hoop dat ik jullie ook genoeg inzicht heb gegeven over wat er allemaal bij TI gedaan wordt. Mocht het je nou bevallen, dan zou ik zeker een meeloopdag aanraden (meeloopdagen.tudelft.nl). Ik ga van mijn vakantie genieten, en hopelijk zie ik jullie over twee jaar (of volgend jaar als je je al hebt ingeschreven en toch nog steeds deze blog leest!).

Raytracer
Tot slot nog even over onze raytracer, hij functioneert uiteindelijk ongeveer. Refractie werkte niet helemaal, maar reflectie, normal interpolation en sphere- en triangle intersections wel. Uiteindelijk hebben we dan ook de afbeelding van de hand met bol ingeleverd voor de raytracing competition. Verder zie je nog een paar afbeeldingen die wij hebben geraytracet met onze raytracer.

Ik wens jullie verder veel geluk met het volgende schooljaar, welk jaar dat dan ook mag zijn en misschien zie ik jullie ook ooit rondlopen op het EWI.

Groetjes,
Toby


BLOG 100100 (36) – Project Multi Agent Systemen – Het Tournament

27 juni 2016
Afgelopen woensdag was de competitie van het Project Multi Agent Systemen. In vier tegen vier Capture-The-Flag wedstrijden werd er gestreden om de titel. Eerst werden er drie wedstrijden per team in poule-verband gespeeld, waarna de twee beste teams van de poule door gingen naar de afval-race.

Aangezien beide agent-systemen op één laptop werden gedraaid, kregen we helaas niet zoveel rekenkracht van de CPU. Hierdoor konden we een hele hoop fancy stuff al niet meer doen, zoals ronddraaien. Ook duurde het hierdoor in eerste instantie een minuut om onze agents in te laden, waardoor we nog maar 4 minuten hadden om die wedstrijd te winnen.

Helaas hadden we het afgelegd in de eerste wedstrijd, maar met goede moed gingen we de tweede wedstrijd tegemoet. Deze wedstrijd hadden we gelijk gespeeld, net als de derde wedstrijd. Hierdoor stonden we op een gedeelde tweede plaats met een ander team. Na een spannende Tie-Breaker hadden we dan toch gewonnen van het andere team en mochten we door naar het tweede deel!

Ook in dit deel werd alles op één laptop gedraaid, dus ook hier konden we niet veel mee. We verloren dan helaas ook in de eerste ronde. Ook waren we niet de enige die er last van hadden. Een van de andere groepjes had ook geïmplementeerd dat er achter muurtjes werd verscholen, wat dus ook niet werkte vanwege een gebrek aan rekenkracht. Uiteindelijk heeft één van de simpelere agent-systemen gewonnen. De uitslagen kun je hier vinden. Wij zaten in groep nummer 3.

Voor aanstaande woensdag moet er nog een raytracer geschreven worden. Gelukkig zijn we al hard op weg, en kan deze nu zowel voor driehoeken als bollen reflecties uitrekenen. Aan refractie wordt nog hard gewerkt, maar dat is wel af voor aanstaande woensdag.

Ik ga dus nog even een mooie scène maken voor onze raytracer!

Groetjes,
Toby


BLOG 100011 (35) – Project Multi Agent Systemen – Onze bot

20 juni 2016
Het MAS-project is ingeleverd, en dus kan er niets meer aangepast worden. Mooie reden om onze bot volledig uit te leggen. Hieronder twee filmpjes van onze bot.

 

De bots
Wat je misschien wel opvalt is dat onze bots ronddraaien tenzij ze een tegenstander zien. Dit is zo gedaan zodat ze ook tegenstanders achter zich kunnen zien. In eerste instantie was dit niet gedaan, dus toen er in de rug van de bot geschoten werd, liep deze gewoon door zonder om te kijken. Ten tweede lopen we verschillende routes zodra we een vlag hebben gepakt. Aan het begin van de wedstrijd kijken we naar de Tier 5 neighbours (buren van buren van buren van buren van buren van het startpunt) van de enemyflag, zodra we deze dan oppakken kiezen we hier een willekeurig NavPoint uit.

De rollen
Ook hebben we verschillende rollen, al zijn in deze filmpjes slechts Attacker - Tier 1 en Attacker – Flag Carrier belicht. Attacker slaat hier op het feit dat deze bot actief naar de vlag gaat zoeken, en Tier – 1 slaat erop dat deze de Tier 1 Neighbours van de tegenstander’s vlaggenbasis blijft afgaan totdat deze de vlag heeft. Tegen de door Unreal geïmplementeerde bots was dit een betere strategie, terwijl tegen andere GOAL bots een Defender – Tier 1 erbij beter werkte. Uiteraard slaat het Defender hier op het verdedigen van de eigen vlag, ook weer op Tier 1 Neighbours. We hebben dus twee versies, één tegen de bots en de andere voor de competitie die deze woensdag plaatsvindt.

Bots gaan niet actief op zoek naar pickups, echter zullen ze pickups wel oppakken als ze deze zien en binnen een vooraf gedefineerde afstand zijn. Deze afstand is dan ook weer verschillend voor verschillende bots.

Het wisselen van rollen gebeurt op basis van de locatie van beide vlaggen. Indien beide vlaggen op de basis zijn, gaan we erop af met 3 Attackers – Tier 1, 1 Defender – Tier 1 blijft achter. Indien zij wel onze vlag hebben maar wij niet die van hun, gaan we erop af met 4 Attackers in een zogenoemde “Kamikaze - modus”. In deze rol zullen ze geen pickups oppakken maar met zijn allen de enemy flag gaan campen. Indien wij wel hun vlag hebben maar zij niet de onze, of allebei de vlaggen zijn opgepakt lopen we met 1 Attacker – FlagCarrier, 2 Attackers – Tier 1 en 1 Defender – Tier 1.

Tot slot worden deze rollen zo efficient mogelijk gewisselt. Zodra er overgestapt wordt op een andere strategie wordt er gekeken welke bot welke rol heeft, welke rollen nog missen en welke bots dus een overbodige rol hebben. De bots met overbodige rollen worden dan gekoppelt aan rollen die nog niet opgenomen zijn door andere bots.

Woensdag dus de competitie, ik hoop dat we winnen!

Toby


BLOG 100010 (34) – SjaarCiebarbecue, Laptopproject en Projecten

13 juni 2016
Afgelopen woensdag had één van de eerstejaarscommissies van Christiaan Huygens (de studievereniging) weer een activiteit georganiseerd. Deze keer was het een eerstejaarsbarbecue, georganiseerd door de SjaarCie.

De SjaarCiebarbecue
Voor één luttele euro kreeg je drie stuks vlees (of vega-stuff). Dit was natuurlijk uitgezonderd dranken en ijsjes, die je ook voor één euro per stuk erbij kon kopen. Uiteraard was dit hartstikke gezellig.

Laptopproject
Uiteraard heb je voor deze studie een laptop nodig. Nu zijn er geen harde eisen gesteld aan een laptop, maar het is wel handig om bepaalde specificaties te hebben. Deze minimumspecificaties kun je vinden op laptopproject.tudelft.nl. Ook biedt de TU twee laptops aan, deze zijn, relatief tot de markt, met grote korting te kopen op dezelfde site.

Projecten
Tot slot moeten wij in deze week bijna alle projecten inleveren. Woensdag moeten we het verslag voor Project MAS inleveren, waarna wij vrijdag de code zelf in moeten leveren die tegen drie level drie bots gaat vechten. Ook moet woensdag de code voor Softwarekwaliteit en Testen ingeleverd worden, die de geleverde PacMan-framework test en checkt met behulp van JUnit, Cucumber, Mockito en CheckStyle.

Ik ga dus nog even wat projecten afmaken!

Toby


BLOG 100001 (33) – Project MAS

6 juni 2016
Deze week gaat weer over Project Multi Agent Systems. We zijn ondertussen zo ver met dit project, dat we een eindelijk een controller hebben geïmplementeerd. Volgende week is de laatste week van MAS, dus er is nog veel te doen.

Gelukkig werken onze bots effectief tegen Unreal Bots, we kunnen 3 bots van Level 4 verslaan. Echter hoeft dit natuurlijk niet te betekenen dat ze dan ook effectief werken tegen bots van andere TI studenten. Studenten zijn slim (vinden we zelf vooral) en kunnen dus alvast nadenken over geïmplementeerde strategieën en reacties daarop, vandaar dat het tegen hen moeilijker is om te winnen. Onze bot heeft ondertussen een controller, maar toch vindt er nog bijna geen communicatie plaats. Zodra een bot een vlag oppakt of verliest wordt dat wel naar de controller gestuurd en wordt zijn rol aangepast, maar verdere rollen zijn nog niet geïmplementeerd. Ook zijn verschillende strategieën met verschillende rollen nog niet geïmplementeerd, er is dus nog zat te doen die laatste week. Echter is er in die paar weken wel hard gewerkt. Zie de cijfers hieronder:

  • Er 38 bestanden met code toegevoegd, samen goed voor 1260 regels code.
  • Deze regels zijn toegevoegd en verwijderd in ongeveer 255 commits. (Een commit is een soort “sla veranderingen op”-actie op Git)
  • En dit allemaal voor 2 hoofdrollen met beide ongeveer 4 substrategieën

Je ziet dat je ook voor iets kleins als iets een spelletje laten spelen, al best veel code nodig hebt. Gelukkig leer je dit allemaal goed lezen en begrijpen op de studie.

Toby


BLOG 100000 (32) – Tentamens, CG en SKT

30 mei 2016
Afgelopen week waren, zoals genoemd in de vorige blog, de tentamens. Voor mijn gevoel gingen deze best goed, al hebben wij nog geen cijfers terug. Ik sta dan nu dus op 35 EC’s (studiepunten), ik kan er nog 10 halen met herkansingen, en de laatste 15 komen van Project MAS, Computer Graphics en Softwarekwaliteit en Testen. Mijn BSA (Bindend StudieAdvies, 45 van de 60 EC’s) halen moet dus wel lukken.

We zijn nu een paar weken verder en ik kan dus wat meer vertellen over wat je doet bij de vakken. Zo werk je bijvoorbeeld bij Computer Graphics in C++, een taal die je jezelf even aan moest leren. Gelukkig lijkt deze taal relatief veel op Java (of andere Object Georienteerde Talen). Het begon hierbij net als bij OOP in kleine opdrachten.

Afbeelding 1; Één van de Introductory C++ opgaven; Stel dat dit een reliëf van een landschap is, hoeveel water kun je dan opslaan in de dalen? Bron: Eisemann, E. (2016) Introduction to C++. Retrieved from the Computer Graphics (2015-2016) BB page.

Nadat je dan ongeveer door had hoe C++ werkt, was het tijd om OpenGL te leren. Zo was een van de opgaven om Toon-shading te implementeren. 

Afbeelding 2; Implementeer "Toon-shading". Bron: Eisemann, E. (2016) Shading and Light Design. Retrieved from the Computer Graphics (2015-2016) BB page.

Tot slot beginnen we over een paar dagen met de eindopdracht van CG, waarbij je in teamverband een zo mooi mogelijke afbeelding gaat maken in OpenGL.

Ook hebben we dit kwartaal Softwarekwaliteit en Testen. Bij dit vak worden verschillende vormen van testen uitgelegd aan de hand van een meegeleverde versie van Pacman. Dit testen is zeer belangrijk, denk bijvoorbeeld aan de softwarefouten van de JSF. (KLIK (Engels)) Als er van het begin af aan goed getest was, was er nu waarschijnlijk niets aan de hand. Verschillende vormen van testen komen aan bod. Denk hierbij aan end-to-end testing, UNIT, integration tests, acceptance tests, etc.

Volgende week vertel ik nog wat over ons MAS project.

Groetjes,
Toby


BLOG 011111 (31) – Open Dag en Tentamens

23 mei 2016
Afgelopen donderdag en vrijdag waren er de oriënterende Open Dagen van de TU Delft. Tijdens deze open dagen kon je langsgaan bij de stands en de presentaties van verschillende studies, om zo meer informatie te verkrijgen over de studie van jouw interesse.

De brochures die te verkrijgen waren op de open dag zijn ook hier en hier te vinden. Voor verdere informatie kun je ook kijken op de TI-site.
Mocht de studie je nou leuk lijken, zou ik adviseren een meeloopdag te volgen. Inschrijven kan via meeloopdagen.tudelft.nl.

Tevens hebben we deze week weer (her-)tentamens. Afgelopen donderdag was Lineaire Algebra (her), maandag was Logic Based Artificial Intelligence (her), dinsdag is Algoritmen en Datastructuren (her). Woensdag is Softwarekwaliteit en Testen aan de beurt en tot slot is donderdag het tentamen van Computer Graphics. Afgezien van Algoritmen en Datastructuren moet ik al deze tentamens doen, en voor het genot van de studenten zijn alle tentamens dit kwartaal in de avonden gepland.

Dus ik ga nog even lekker verder met leren,

Toby


BLOG 011110 (30) – Antwoorden Blog 011100

16 mei 2016 

Opdracht 1:

Ook hier zijn er meerdere oplossingen, waarvan dit een van de makkelijkste is.

Opdracht 3:

Negeer hier de waarschuwing bij de initialisatie van de Scanner.

Opdracht 4:

 

En zodra je weet hoe je de ene kant op moet draaien, lukt de andere kant ook wel.

Veel geluk met het verder oefenen van Java, en je examens! (In volgorde van belangrijkheid)

Toby


BLOG 011101 (29) – Unreal Tournament

9 mei 2016
We hebben onderhand groepjes met het MAS-project en dat betekent dus… helemaal opnieuw beginnen met het programmeren van je bot. Echter gaat het nu niet om 1 bot Deathmatch, maar om een team van hoogstens 4 Capture-the-Flag-spelende bots (+ eventuele control bots).

In de eerste twee weken met het team wordt geadviseerd de basisfunctionaliteit te programmeren. Denk hierbij aan lopen, vlaggen oppakken, wapens oppakken, etc.

Zelf hebben wij ook al strategieën geschreven als onze vlag wordt gestolen en strategieën voor als één van onze bots een vlag vast heeft. Hier kan ik helaas niet te veel over uitweiden, het blijft natuurlijk een wedstrijd tussen alle eerstejaars TI. Het komt erop neer dat bots zo optimaal mogelijk kiezen of ze achter de vlag aan gaan als deze gestolen wordt en of ze de teamgenoot verdedigen als deze een vlag steelt.

Uiteraard wordt het een stuk makkelijker die vlag te pakken als de bots onderling kunnen communiceren. Helaas kunnen de bots niet via de chat van Unreal Tournament chatten. (Alhoewel er een mede-sjaarsch is die de bytecode heeft aangepast opdat zijn bots wel konden chatten, voor het nuttige gebruik van het roasten van andere bots). Gelukkig is het wel geïmplementeerd in de programmeertaal GOAL, waardoor ze via de backend wel onderling (en met eventuele controlbots) kunnen overleggen over strategieën en rollen.

Ik ga nog even zorgen dat er geoptimaliseerd gelopen wordt naar vlaggen, wapens, ammo en powerups. Tot de volgende blog!

Groetjes,
Toby


BLOG 011100 (28) – Cursusje Java – Part 3

3 mei 2016
Hoppa! Nog een week Java! Deze week een paar opgaven, die je met behulp van de vorige cursusjes wel zou moeten kunnen schrijven.

Opdracht 1
Schrijf een programma dat de volgende output geeft met behulp van een loopje:

* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *

Opdracht 2
Schrijf een programma dat de volgende output geeft met behulp van twee loopjes:

*
* *
* * *
* * * *
* * * * *

Opdracht 3
Schrijf een klasse waarbij in de main methode wordt de waarde van twee temperaturen opgevraagd bij de gebruiker (denk aan System.in!). De eerste temperatuur is in graden Celsius, de tweede temperatuur is in Fahrenheit. De twee temperaturen worden afgedrukt samen met de eenheid. Daarna wordt de temperatuur in graden Celsius omgerekend naar de temperatuur in Fahrenheit, en de temperatuur in Fahrenheit omgerekend naar de temperatuur in graden Celsius. De omgerekende temperaturen worden nu afgedrukt.

Aanwijzing: F = 9/5 * C + 32.0

Opdracht 4
Schrijf een klasse die alleen een main methode bevat. Binnen main worden 4 integer variabelen gedeclareerd met de namen getal1, getal2, getal3 en temp. Er mogen geen extra variabelen worden gebruikt!

Variabelen getal1 t/m getal3 krijgen een willekeurige maar wel onderling verschillende beginwaarde. De inhoud van getal1 t/m getal3 wordt afgedrukt, samen met een toelichting. Daarna wordt de inhoud van getal1 t/m getal3 doorgeschoven: getal1->getal2, getal2->getal3, getal3-> getal1. Dan wordt de inhoud van getal1 t/m getal3 opnieuw afgedrukt, weer met een toelichting.

Volgende week antwoorden, en gebrabbel over mijn MAS project.

Groetjes,
Toby


BLOG 011011 (27) – Cursusje Java – Part 2

25 april 2016
Deze week ga ik weer verder met het cursusje Java. Tevens zal ik wat laten zien over hoe het gaat met mijn MAS Project. Hierbij was er een nogal komische bug in mijn code geslopen die ik jullie graag mede wil delen.

Zoals je ziet respawnt de bot continu. Dit komt omdat ik als doel heb aangegeven dat zodra hij vast zit, hij moet respawnen… Het schijnt alleen handig te zijn, na het respawnen dat doel weg te halen.

Verder met Java. Zoals beloofd ging ik vertellen over Objecten, if-statements en loopjes.

If/Else-statements
Begin weer met een nieuwe klasse aan te maken, en schrijf dan binnen de main-methode de volgende dingen:

En run de code. Zoals je ziet wordt er “Three is smaller than five!” weergegeven. Een if-statement werkt dus zo, dat als het geen tussen de ronde haakjes waar is, het gedeelte binnen de accolades wordt uitgevoerd, en anders (else!) het andere stuk. Nu is het niet perse verplicht een else te schrijven, ook het volgende is mogelijk;

Tot slot is het ook mogelijk om de else te limiteren (if (X) / else if (Y) / else).

While-loops
Ongeveer gelijk aan een if-statement is een while-loop.

Schrijf het volgende binnen een main methode:

Wij programmeurs zijn lui, dus hebben we een shortcut gemaakt om 1 bij een getal op te tellen. In plaats van “counter = counter +1;” kun je dus gewoon “counter++;” gebruiken. Zo bestaat ook “counter--”.

Run de code nu en kijk wat hij doet. Omdat counter (strikt!) kleiner mocht zijn dan 5 telt hij van 1 tot en met 4. Nu gaan we binnen de while-loop nog wat aanpassen. Ik wil daar namelijk als counter 1 is, “counter” + “st time.”. Als counter 2 is “counter” + “nd time.” etc.

Hoe zou je dat kunnen doen? (Nota bene: getallen vergelijken is met dubbel is “==”)

Let erop dat ik de voorwaarde nu op < 10 heb gezet om het duidelijker te maken. Ook valt je misschien op dat ik geen accolades heb geplaatst. Die mogen er wel staan, maar als ze er niet staan wordt slechts de regel onder “if” of “else” uitgevoerd, in plaats van de gehele code erachter.

Verander regel 4 nu eens in 99, wat gebeurt er nu en waarom?

Mocht je nu willen dat je code in het while-block ten minste één keer wordt uitgevoerd, kun je een do { } while(X); statement gebruiken

Do – while
Verander hiervoor regel 5 in “do{” en regel 15 in “}while(counter<10);” en kijk wat er gebeurt.

Verander nu ook weer counter terug in 1 en de while-voorwaarde in < 5. Je ziet dan ook dat, zodra je hem runt, de uitkomst gelijk is aan die van de while-loop eerder.

Maar nu zie ik je denken. “Ik vind twee regels veel te veel om simpelweg op te tellen!” Wees niet bang, ook daar hebben ze iets op gevonden!

For-loops
Verander regel 5 in “for(int counter = 1; counter < 5; counter++){” en regel 15 in “}”. Verwijder vervolgens regels 4 en 13.

Run de code weer, wat valt zie je?

Er is ook een andere versie van een for-loop; een zogeheten advanced for-loop. Maak hiervoor je main methode leeg en schrijf het volgende:

In regel 4 maak ik gebruik van een string array. Dit kun je zien als een soort van lijstje van strings. Zo bestaat er bijvoorbeeld ook een int-array (int[]) of boolean-array (boolean[]).

In regel 5 zeg je nu eigenlijk het volgende: “voor elke String in deze String-array, doe het volgende:”

Classes
Ik had beloofd uit te leggen hoe classes werken. Dit ga ik doen aan de hand van een “huis”-object. Echter bestaat deze niet in Java en zullen we deze dus zelf maken. Klik hiervoor op file > new > class. Achter name zet je nu House, waarna je op finish klikt.

Je ziet nu een hele lege klasse. Hier kunnen we in gaan schrijven. We gaan een aantal eigenschappen van dat huis in deze klasse zetten. Ik ga hier voor de eigenschappen “roomAmount”, “material” en “isAvailable”. Schrijf nu het volgende:

In regel 7 zie je een methode staan met exact dezelfde naam als de klasse. Dit wordt een constructor genoemd. In regels 13, 16 en 19 zie je nog een paar methoden staan, vanwege de specifieke vorm noemen we deze getters.

Ga nu terug naar HelloWorld.java. Typ binnen de main methode “House huisje = new House(10,false,”Candy”);” en daaronder “System.out.println(huisje.getRooms());”

Run deze code nu, wat zie je nu?

Stel, het huis is verkocht en is dus niet meer beschikbaar, dan moeten we dat kunnen aanpassen. Ga hiervoor terug naar de House class. Schrijf hier zogeheten setters. (regel 23 – 31)

Ga nu terug naar HelloWorld en gebruik één van deze setters.

Wat zie je nu?

Tot slot moeten we nog kunnen testen of twee huizen gelijk zijn aan elkaar. Doe dit als volgt: Ga naar House.java, hier gaan we een equals(House x) methode schrijven.

Wat gebeurt hier nu? In regel 45 wordt eerst gekeken of er niet toevallig een leeg object gegeven werd. Mocht dit namelijk wel zo zijn en we testen er niet voor dan krijgen we een NullpointerException.

In regel 47 wordt gekeken of dat object dat ik meekrijg in de Equals eigenlijk wel een huis is, waarna het in regel 49 wordt gecast naar een House. Vervolgens kijken we of de onderlinge waarden overeenkomen. Als dit allemaal klopt, returnt hij true. Anders is hij eerder afgebroken en returnt hij false.

In HelloWorld:

Zoals je ziet returnt alleen de laatste een true. (let op regel 8, vandaar dat ze overeenkomen!)

Ik vind het wel weer genoeg voor 1 week, Hájè!

Toby

*kuchkuch* Al mocht je nou vaker programmeren, getters/setters/equals/toString methodes kun je genereren in zowel Eclipse als IntelliJ *kuchkuch*

BLOG 011010 (26) – Kwartaal vier

18 april 2016
Vanaf deze week begint er weer een nieuw kwartaal, daarin weer drie vakken die deze week behandeld worden. Volgende week ga ik verder met uitleg over Java.

Project Multi Agent Systems
Bij dit vak wordt er voortgeborduurd op de opgedane kennis bij Logic Based Artificial Intelligence uit het derde kwartaal. Je gaat hierbij in groepsverband een bot schrijven voor Unreal Tournament. Dit is een first person shooter ontwikkeld door Epic Games. In deze FPS spelen we een Capture-The-Flag scenario, waarbij je dus zo vaak mogelijk de vlag van de tegenstander te pakken moet krijgen. Op het eind van het project laten we alle bots dan ook tegen elkaar vechten.

Softwarekwaliteit en Testen
Bij dit vak wordt er uitgelegd op hoe je je code goed kunt testen en hoe de testtechnieken zelf werken. Ook wordt er uitgelegd hoe je een testbaar systeem kunt maken. Dit alles wordt gedaan aan de hand van een klein spel, geschreven in groepsverband in Java.

Computer Graphics
Het laatste vak van dit kwartaal is computer graphics, waarbij er uitgelegd wordt hoe computer graphics werken. Hierbij zal de focus liggen op het real-time genereren van fotorealistische beelden, echter is de informatie algemeen en toepasbaar op veel onderwerpen in de Computer Graphics. Ook hierbij is er een practicum.

Tot zover de uitleg van de vakken van het volgende kwartaal, volgende week dus weer verder met Java!

Groetjes,
Toby

BLOG 011001 (25)– Cursusje Java - Part 1

11 april 2016
Hallooooo, deze week ga ik jullie een hele korte uitleg geven over Java. Java wordt namelijk in het eerste jaar veel gebruikt, waardoor het handig is als je al wat voorkennis hebt. Programmeren kan worden gedaan in een tekstverwerker zoals kladblok. Echter werken programma’s als Eclipse en IntelliJ fijner aangezien je hierbij direct de code om kunt zetten naar machinetaal (compilen) en deze kunt laten runnen. In deze guide zullen we Eclipse gebruiken, aangezien deze gratis is.

Het project instellen
Zodra Eclipse is opgestart klik je linksbovenin op File > New > Java Project. Vervolgens wordt er gevraagd om een Project name, hierin kun je eigenlijk elke naam die je wilt invullen, maar handiger is het om het een duidelijke, descriptieve naam te geven. “HelloWorld” is wel een goede naam. Aanbevolen wordt om de projectnamen met een hoofdletter te beginnen, en elk volgend woord in de naam ook met een hoofdletter aan te duiden. (UpperCamelCase / PascalCase) De rest van de instellingen kun je gewoon zo laten staan. Klik op finish. Indien er nu gevraagd wordt om een perspective te openen, klik op ja. Klik op het kleine kruisje van het tabblad welkomstscherm indien deze niet automatisch weg gaat.

Nu ziet je scherm er als het goed is zo uit:

Klik nu rechts op het gemaakte project in de Project Explorer en kies New > Class. Vul ook hier weer een naam in. Ook hier wordt UpperCamelCasing aanbevolen. Ik kies voor “HelloWorldClass”. Verder kun je de instellingen gewoon op origineel laten staan. Klik op Finish.

Een Javaproject bestaat uit één of meerdere classes, geordend in packages. Die classes bevatten dan weer methodes die uitgevoerd kunnen worden. We hebben zojuist de lege class “HelloWorldClass” gemaakt. Echter doet deze nog niets. Zodra een Java programma opgestart wordt, wordt er gezocht naar de main methode. Aangezien deze methode in elk programma hetzelfde aangeroepen moet kunnen worden luistert het nauw met hoe je de naam van methode schrijft. Nu gaan wij binnen de accolades (“{“ en “}”) van de klasse deze main methode schrijven. Binnen de accolades typ je “public static void main(String[] args){ }”. Let hierbij op de hoofdletters, want programmeren in Java is hoofdlettergevoelig.

Deze regel zal ik even uitleggen. Public staat voor het feit dat deze methode voor de buitenwereld te zien is, anders zou je hem niet kunnen aanroepen. Static staat er zodat je niet eerst de klasse aan hoeft te roepen voordat je de methode kunt gebruiken. Void staat er omdat er geen waarde teruggestuurd wordt nadat de methode is aangeroepen. Main spreekt voor zich. String[] args staat voor eventuele argumenten die je met het opstarten meegeeft. Deze worden opgeslagen in een array (tabel) van Strings (reeksen met karakters, dus zinnen).

Hello World!
Binnen deze methode main gaan wij nu het programma de bekende woorden laten zeggen. Typ hiervoor “System.out.println(“Hello World!”);”

Nu nog even het programma opslaan en dan kunnen we het laten draaien. Om het te laten runnen klik je bovenin in de werkbalk op het groene pijltje.

Je ziet nu dat er onderin in de console de woorden “Hello World!” verschijnen!

Meerdere methoden
Nu gaan we het programma ietwat aanpassen, we gaan namelijk een tweede methode schrijven die de String voor ons terugstuurt.

Typ hiervoor, buiten de accolades van de main methode, maar binnen de accolades van de klasse de volgende woorden: “public static String returnString(){}”. Je ziet dat we een naam van een methode met lowerCamelCasing schrijven.

We gaan nu een Stringobject maken binnen deze methode. Typ hiervoor “String variabeleNaam = “Hello World!”;”. Uiteraard kun je variabeleNaam vervangen door andere woorden. Ook variabelen schrijven we lowerCamelCase. Een regel onder deze variabeleNaam schrijven we “return variabeleNaam;”. De methode moest immers die String teruggeven (return).

De main methode passen we ook aan. We halen hier alles binnen de accolades weg, en defineren een String “halloWereld”. Deze string stellen we gelijk aan returnString(). De regel wordt dus “String halloWereld = returnString();”. Vervolgens willen we deze weer afdrukken en typen we dus “System.out.println(halloWereld);” Let erop dat je deze keer dus geen aanhalingstekensgebruikt rond “halloWereld”.

Als je nu weer op de Run knop klikt, komt er weer Hello World tevoorschijn.

Strings combineren
Je kunt ook Strings aan elkaar plakken. Pas hiervoor bijvoorbeeld regel 4 aan. In plaats van “returnString();” wordt het bijvoorbeeld “”Hallo Wereld is in het Engels: ” + returnString();”.

Als je hem dan runt, zie je dat de uitkomst anders is.

Naam invullen
Ik vind het wel een beetje onpersoonlijk, jullie niet? We gaan zorgen dat we onze naam in kunnen vullen.

We maken een nieuwe methode, returnName. In deze methode maken we dan een nieuwe Scanner aan. Typ hiervoor op de eerste regel van de methode returnName() “Scanner scannertje = new Scanner(System.in);” Als je nu op enter drukt zal Eclipse gaan zeuren. Hij weet namelijk nog niet wat een Scanner is! Typ hiervoor op de allereerste regel van je programma (dus buiten de klassen) “import java.util.Scanner;”. Ook kun je op de fout klikken bij de regelnummers en daar kiezen voor “import Scanner”.

Nu hebben we een Scanner aangemaakt met de naam scannertje en deze op input laten scannen naar het Systeem (System.in). Echter doet deze verder nog niets. Pas regel 9 aan dat deze dat wel doet; “String variabeleNaam = scannertje.next();”. Wat we hier dus doen is vragen of de Scanner een String wilt teruggeven die hij is tegengekomen. Je ziet een waarschuwing over een Scanner die niet afgesloten is, deze kun je negeren.

De scanner vraagt nu om een naam. Echter zal het gewoon een knipperend pijltje zijn in de Console. Niet erg duidelijk dus. Typ daarom boven de vraag naar input (Kijkersvraag: Welke regel doen we dat?) een System.out.println die vraagt om een naam.

Tot slot passen we de main methode aan, deze willen we namelijk iets laten zeggen als “Hallo Toby!”. Kun je raden hoe dit gedaan wordt?

Hieronder de antwoorden.

Je ziet in regel 9 dat je strings ook bij elkaar mag plakken binnen een System.out.println(); Als je het programma nu runt, zie je dit in de console verschijnen.

Aangezien er gevraagd wordt om onze naam zullen we deze maar typen in de Console, right? Typ je naam onder de vraag, in de Console, en druk op Enter.

Je ziet dat er nu netjes Hallo Toby wordt gezegd.

We doen er nog ééntje. Een leeftijd.

Integers
Maak een nieuwe methode aan, returnAge(). Deze methode returnt echter een int (van Integer, een geheel getal) dus de regel wordt “public static int returnAge()”. Maak ook hier weer een Scanner aan, die vraagt voor een int input (“.nextInt()”), en sla deze op in een int variabele. Sluit vervolgens de Scanner weer en return de int waarde. Hieronder het antwoord.

Pas nu de main methode zo aan dat ook de leeftijd afgedrukt wordt. Hieronder het antwoord.

Je ziet dat je meer dan twee Strings aan elkaar kunt plakken. Ook kun je integers aan Strings vastplakken.

Berekeningen en argumenten
Vind je het ook niet leuk om te weten hoe oud je vorig jaar was? Ik wel hoor. We gaan een methode schrijven die het voor ons uitrekend, deze krijgt als argument een leeftijd mee en returnt een leeftijd-1.

Ik noem mijn methode “returnAgeLastYear()”. Hij kreeg een integer mee als argument en returnde een int, dus wordt het “public static int returnAgeLastYear(int currentAge)” Deze methode returnt currentAge-1; dus typ “return currentAge-1;” binnen de methode.

Pas de main methode nu zo aan dat deze waarde ook weergegeven wordt. Kun je raden hoe je de methode aan moet roepen? Zie hieronder voor het antwoord.

Je ziet dat je ook methodes binnen methodes kunt aanroepen (je roept de methode println aan, met als argument de string “Vorig jaar was je leeftijd ” en de returnwaarde van de methode returnAgeLastYear(leeftijd).

De console ziet er dan als volgt uit bij het runnen: 

Verdere soorten variabelen.

Er zijn oneindig veel soorten variabelen in Java, je kunt ze namelijk zelf schrijven. Als je bijvoorbeeld een “huis”-object wilt kun je die aanmaken. Hoe je dat doet leg ik een andere keer uit. De standaard, meest gebruikte, soorten zijn echter:

  • int of long (gehele getallen)
  • float of double (komma getallen)
  • char (een karakter)
  • boolean (waar of niet waar)
  • String (een reeks karakters)

Zoals je ziet is elk type met een kleine letter geschreven, behalve String. Dit is zo omdat een String geen “primitief type” is.

Ik vond het wel weer genoeg voor één week. Tot volgende week!

Toby


Blog 011000(24) – Kamertje (ver)huren in Delft

4 april 2016
En nee, dan bedoel ik niet het spel. Deze week gaat het er namelijk over hoe je het makkelijkst aan een kamer komt.

Er zijn verschillende soorten kamers beschikbaar, in studentenflats, in woonhuizen, met of zonder medebewoners… etc. Ga voor jezelf eerst na wat je zelf het fijnst vindt. Aan alles kleven voor- en nadelen. Ga je bijvoorbeeld helemaal op jezelf, dan heb je geen last van de troep van een ander, echter moet je zelf altijd je eten koken en zit je voornamelijk alleen. Ga je met 14 andere mensen in een huis, is er altijd wel iemand om mee te praten, of eten er altijd wel mensen mee, maarja… het kan soms wel eens een zooitje zijn.

Voor de gemiddelde oppervlakte van een kamer zit je aan de 15m2, waarbij de gemiddelde prijs ongeveer €250,- à €300,- incl. gas/water/licht per maand is.

De meest gebruikte site (zowel door huurders als verhuurders) om kamers te vinden is kamernet.nl. Hierop kun je gemakkelijk instellen wat voor een kamer je wilt hebben. Denk hierbij aan grootte en prijs, maar ook aan het aantal medebewoners en of de kamer gemeubileerd is of niet. Ook wil het nog wel eens voorkomen dat een kamer op tijdelijke basis of onderhuur is. Dit komt dan doordat de eigenlijke huurder voor bijvoorbeeld de minor (= eerste halfjaar van het laatste jaar bachelor - 30EC’s) naar het buitenland gaat.

Al mocht je dan een leuke kamer hebben gevonden, dan moet je waarschijnlijk nog ingestemd worden. Je wordt uitgenodigd voor een avond waarbij er dan wordt gekeken of het klikt tussen de huidige bewoners en de nieuwe bewoner. Zo ja, gefeliciteerd! Dan heb je nu nog wat administratieve rompslop en daarna eindelijk een kamer. Zo niet, dan moet je helaas verder zoeken naar een andere kamer. Het kan dus best wel lang duren voordat je een kamer hebt. Denk aan minstens 3 instemmingen.

Al mocht je nou ver weg wonen, dan zijn er sommige kamers beschikbaar gesteld door stichting DUWO waarbij je voorrang kunt krijgen op andere mensen. Kijk hiervoor op http://bit.ly/duwovoorrang

Veel plezier met kamers zoeken!

Toby


BLOG 010111 (23) – GEFELICITEEEEEEERD!

21 maart 2016
Hallo! Ik zie jullie denken: waarom feliciteert hij ons? Dit is niet vanwege jullie verjaardag (tenzij je echt jarig bent, dan alsnog gefeliciteerd), maar vanwege de verjaardag van onze studievereniging, W.I.S.V. ‘Christiaan Huygens’. CH is namelijk 59 geworden dit jaar! Christiaan Huygens is op 6 maart 1957 opgericht, toen nog alleen voor de studie Technische Wiskunde aan de Technische Hogeschool Delft.

“Maar waarom vieren jullie het dan zo laat? Het is immers al de 21e!” Dat dacht je hè, geef maar toe! Dat komt omdat 6 maart op een zondag viel, in de week voor de tentamens. Aangezien de meeste studenten dan iets andere prioriteiten heeft, is het twee weken naar achteren verschoven. De dies wordt elk jaar georganiseerd door de diescommissie, die dit jaar het thema “AnarCHy” bedacht heeft.

Zie hierboven de Dies, het stralende lichtpunt in deze wanorde.

De Dies had door de hele week heen allerlei activiteiten georganiseerd.

Maandagmiddag begon de Dies week met een receptie en een kick-off in de centrale hal van het EWI. Bij die receptie kwamen alle besturen van de andere studieverenigingen uit Delft langs, om het bestuur van CH te feliciteren. ’s Avonds was er een luxe diner in een restaurant aan de markt in het centrum.

Dinsdags tijdens de lunch kon je onbeperkt bammetjes eten in de /Pub voor het schamele bedrag van €1,-! Voor diegene die de /Pub niet kennen, de meeste faculteiten van de TU hebben in de kelder een bar zitten, en de /Pub is dus de bar van het EWI.’s Woensdag is deze open en tapt CH er, donderdags tapt ETV (Studievereniging Elektrotechniek). Dinsdagavond was er ook een leuke activiteit georganiseerd, je kon namelijk gaan boulderen. Dit houdt in dat je, ongezekerd, een klimwand (de “boulder”, bij gebrek aan rotsblokken in Nederland) van max 4m hoog gaat beklimmen. Je moet hierbij goed nadenken over hoe je klimwand op moet komen, en het antwoord ligt soms niet helemaal voor de hand.

Dinsdags is er meestal een D.I.N.S.dag (Dinsdag Is Niet Smeren dag). Dit houdt in dat er een lunchlecture is, oftewel je luistert naar een lecture over een interessant onderwerp onder het genot van een gratis lunch. Echter werd er al een ledenlunch georganiseerd, dus werd de D.I.N.S.dag verplaatst naar W.O.E.N.S.dag. (Woensdag Ook Eens Niet Smeren dag) Woensdagmiddag kon je luisteren naar een lecture over anarchie, gegeven door de kunstenaar Dadara.

’s Avonds was iedereen dan weer te vinden in de /Pub, deze keer voor een Cocktail avond! Hieronder een sfeerimpressie, foto’s gemaakt door CH’s eigen FlitCie.

Tevens was er tijdens de cocktailborrel de bekendmaking van het thema van de lustrumviering van volgend jaar. Aangezien CH volgend jaar 60 jaar is, wordt dit groots uitgepakt. De lustrumcommissie is al hard bezig om er een geweldig feest van te maken, komt dat dus vooral zien! Deze mensen weten het thema al.

Gelukkig denkt de Dies met mensen mee, na een avond borrelen is er niets fijner dan de volgende ochtend een gratis uitbrak-ontbijt te halen bij CH. Donderdagochtend was dit dus van toepassing. Echter moest er ’s middags weer hard gewerkt worden want er was een Graffiti workshop. Ook al werd het naast het gebouw van Civiele Techniek gegeven, en Civiel veel kaal beton bevat, heeft iedereen zich ingehouden en het niet op Civiel zelf uitgeprobeerd.

Idols mag dan terug zijn op TV, CH had een veel leukere activiteit, namelijk de karaoke. Heb je dus altijd al je zangkunsten willen vertonen… dan kon dat afgelopen donderdag. Er was slechts één catch… Het was karaoke op helium. Uiteraard tilde dit het genot van de mensen die niet zongen wel naar een hoger niveau.

Tot slot was er op vrijdag een excursie georganiseerd naar Utrecht. Hierbij werden allerlei leuke bezienswaardigheden bezocht, en werd de diesweek ook weer afgesloten.

Mochten dit nu weinig activiteiten lijken, niet getreurd, er zijn er namelijk nog twee! Door de hele week heen kon je namelijk je medestudenten (vredig) afknallen. Er was een assassination game waarbij je elke dag mensen moest vinden. Winnaars verdienen natuurlijk een plaats en daarom: Ruth Koole en Sille Kamoen zijn meester-assassins met beide 24 kills!

Naast dit lieve spelletje was er ook nog een escaperoom gemaakt. Het doel van een escaperoom is dat je met een groep mensen zo snel mogelijk ontsnapt uit een kamer. In deze kamers bevinden zich dan allerlei puzzels om je te helpen bij je ontsnapping. Bij de versie van CH was het iets anders. Je moest namelijk een uil redden, en wees eerlijk, iedereen wilt toch wel dit lieve uiltje redden?

Dan rest mij tot slot nog twee dingen, doei zeggen en het thema van het lustrum bekend maken. Dus bij deze, tot volgende week!

Toby


BLOG 010110 (22) – Pi-dag!

14 maart 2016
Hallo allemaal, allereerst natuurlijk allemaal een heel fijne Pi-dag. Voor diegene die dit niet kennen; Het is vandaag 14-3, of op Amerikaanse notatie 3-14. Dit is bij benadering gelijk aan het getal Pi, dus vandaar Pi-dag. Vorig jaar was het natuurlijk 2015 (Echt waar? Ja, echt waar hoor!) Dus dan werd het al 3/14/15, een nog betere benadering van Pi. Het EWI had zelfs speciaal voor deze gelegenheid groot een Pi op de gevel geprojecteerd!

Vandaag doen we het eens helemaal anders, ik heb namelijk een paar foto’s gemaakt van hoe het er hier nou aan toe gaat. Enjoy!

Ik woon niet op kamers, dus ’s ochtends gaan we gezellig met de bus, metro en trein (deze keer zonder vertraging!) richting Delft.

Eenmaal op station Delft aangekomen proberen we een hele charmante foto te maken terwijl we tegen de zon inkijken… Lukt niet echt.

Als we dan richting het EWI gaan fietsen komen we dit gebouw tegen, het oude legermuseum van Delft. Ook hier heeft de TU tentamenzalen (zie blog 5). Best gaaf aangezien dat gebouw al heel oud is.

Nog een stukje verder en we bevinden ons op de TU Campus. Helaas ook tegen de zon in, dus je ziet het niet erg goed, maar links op de foto zie je de Aula/het Congrescentrum. Daarachter staat het oude TNW gebouw. (Technische Natuurkunde en Nanobiologie) Weer dáárachter staat Civiele Techniek en Technische Aardwetenschappen. En rechts zie je het mooie EWI uittornen boven 3ME (Mechanical -, Maritime and Material Engineering).

Het EWI is 21 verdiepingen, plus een dak hoog. Geen wonder dus dat je met mooi weer hier prachtig uitzicht hebt:

Dit is in de richting van Den-Haag genomen, Als je goed kijkt zie je in de rechterbovenhoek het station staan als zwart vlak.

De andere kant op was het ietwat mistiger, en de verblindende zon hielp ook niet echt mee, echter zie je links nog wel Civiel staan. Met mooi weer kun je hier de kernreactor van de TU Delft en zelfs de Euromast uit Rotterdam zien!

Op de tweede verdieping hebben wij een studieruimte waar je een computer of je eigen laptop kunt gebruiken. Ook kun je hier ruimtes afhuren zodat je daar met je projectgroep kunt gaan zitten.

Op de eerste verdieping hebben wij een kantine, waarbij je (warm) voedsel kunt halen.

Echter kun je ook hier ruimtes afhuren om met je projectgroep te gaan zitten. Voor twee opdrachten van Logic Based Artificial Intelligence eten wij in groepsverband een (vereenvoudigde) Search-and-Rescue bot programmeren. Deze moet dan zelfstandig rond kunnen rijden en blokjes op kunnen pakken binnen vakjes gedefinieerd door een arbitraire kaart. Dit is dan één van die projectruimtes.

Met beeldscherm zodat iedereen het goed kan zien… Helaas is de refresh rate hetzelfde als die van mijn telefoon, zie hieronder.

Dat was het dan weer voor deze week, wij gaan nog even verder met LBAI. Hájè!
Toby


BLOG 010101 (21) – Tussen-tentamenweek!

7 maart 2016
Hallo allemaal, daar zijn we weer! Deze week hebben we tussententamens van Lineaire Algebra en Algoritmen en Datastructuren. A&D hadden we maandag en Lineair hebben we op woensdag.

Omdat er zoveel eerstejaars TI (220-280) zijn, hebben ze ons voor de tentamens verdeeld over meerdere faculteiten. Driekwart van de mensen had namelijk hun A&D tussententamen in de computerzalen op de Faculteit Industrieel Ontwerpen, daar waar de laatste groep dit had op de computerzalen bij Civiele Techniek.

Het Algo- en Datatussententamen wordt op een pc gemaakt, ook al is dit niet standaard. Meestal gebeurt dit nog op papier. De PC’s worden zo ingesteld dat je nergens anders naartoe kan, afgezien van de site om je tentamen te maken. Op die site hebben ze dan zowel open als gesloten vragen die je moet beantwoorden.

Naast dat er deze week tussententamens zijn, zijn er, zoals in week 5 van elk kwartaal, ook hertentamens van het vorige kwartaal. Het leek er eerst op dat ik Calculus moest gaan herkansen, ik had namelijk een 5,5 en de TU wilt een 6 (en dus 5,75 afgerond op halven) voordat je het vak haalt. Echter, kreeg ik laatst een mailtje binnen dat er een foutje was gemaakt en ik het vak dus wel had gehaald. Je begrijpt natuurlijk wel hoe blij ik daar mee was.

We gaan nog even verder beunen deze week. Dan zie ik jullie volgende week weer.

Toby


BLOG 010100(20) - Matrixrekenen

29 februari 2016
Zoals ik een paar blogs geleden verteld heb, zijn wij bezig met matrices bij Lineaire Algebra. Matrices zijn verzamelingen van verschillende oplossingen van dezelfde lineaire vergelijking. Door middel van “trucjes” kun je met de matrix de waardes van de onbekende variabelen achterhalen. Een simpele vorm krijg je al op de middelbare school: stelsels oplossen.

Stel we hebben het volgende stelsel van vergelijkingen:

De “truc” hier is dat je in een van de vergelijkingen één variabele overhoudt en zo achter zijn waarde komt. De eerste stap is dan de bovenste vergelijking vermenigvuldigen met en de onderste met 1.

Vervolgens tel je de vergelijkingen bij elkaar op.

a+2b=10
3a-2b=14+
4a=24

Hierdoor kunnen we concluderen dat a=6. Door het toepassen van substitutie (het herschrijven van a als 2 ) in een van de gegeven vergelijkingen krijgen wij de waarde van b.

2∙6+4b=20
12+4b=20
b=2

Dit hadden wij ook met een matrix kunnen oplossen. Hier komt een augmented matrix aan te pas: de oplossingen/ vaste waarden staan in de laatste kolom. De eerste kolom representeert de coëfficiënten van a en de tweede van b.

Met matrices doe je in principe hetzelfde, maar omdat je vaak met meer dan twee onbekenden te maken hebt, ziet het er heel anders uit. Bij matrices ga je op zoek naar zogenoemde pivots, deze worden de enige waarde groter dan nul in elke rij en kolom combinatie. Klinkt het een beetje ingewikkeld?

Je begint altijd zoveel mogelijk naar links met zoeken naar de eerste pivot en deze is ook in de eerste rij. In ons geval is dat het getal 2. Vervolgens is de regel dat alle getallen onder een pivot gelijk moeten zijn aan nul. We moeten er dus voor zorgen dat 3 een nul wordt. Dit doe je door de bovenste rij te vermenigvuldigen met -2/3 en deze op te tellen bij de tweede rij. Het verkrijgen van nul waardes in matrixen doe je altijd door een andere rij te vermenigvuldigen met een getal en deze rij op te tellen bij de rij waarin je de nul waarde(s) wilt. Wij krijgen vervolgens de matrix:

Aangezien elke rij en kolom combinatie maar 1 pivot mag bevatten, komt dit neer op een diagonale lijn van pivots. De volgende pivot is in rij 2, kolom 2. Er zijn geen waarden meer onder de pivot, dus hoeven we er niet voor te zorgen dat er alleen nullen onder staan.

De matrix heeft nu de echelon vorm en de volgende stap is hem in de gereduceerde echelon vorm te krijgen. Dit wil zeggen dat elke pivot als waarde 1 heeft en zowel boven als onder de pivot nullen voorkomen. Om van de pivots 1 te maken, vermenigvuldigen we de desbetreffende rij met een getal dat hiervoor zorgt. Voor de eerste pivot vermenigvuldig je de eerste rij met 1/2 en bij de tweede rij met -1/8:

Om de nullen te verkrijgen gebruiken we weer het trucje waarbij je een willekeurige rij zodanig vermenigvuldigt met een getal dat, als je deze optelt bij de rij waar je een nul wilt hebben, er ook een nul (of meerdere) ontstaat. Om de gereduceerde echelon vorm te krijgen creëer nullen door bij de meest rechter pivot te beginnen. Wij moeten dus de onderste rij vermenigvuldigen met -2.

De matrix staat nu in gereduceerde echelon vorm en is het nu een kwestie van aflezen. Weet je nog dat de eerste kolom staat voor de coëfficiënten van a en de tweede voor b? Er staat nu eigenlijk:

1a+0b=6
0a+1b=2

Oftewel a=6 en b=2, dezelfde antwoorden die we eerder kregen. Dit is dus de basis van matrixrekenen, leuk toch?

Veel plezier met stelsel nu oplossen met behulp van matrices!

Toby


BLOG 010011(19) - Programmeertalen

22 februari 2016
Hoi iedereen! Afgelopen week heb ik kennis gemaakt met de nieuwe vakken van het kwartaal, waaronder Logic Based AI. Bij dit vak doen wij kennis op over de programmeertaal Prolog. Deze werkt niet op de enigszins standaard manier van de programmeertalen, die wij hiervoor gehad hebben. Vandaar dat ik jullie daar verdere uitleg over ga geven..

Learn Prolog Now!
Op http://www.learnprolognow.org leer je stap voor stap hoe Prolog werkt, gratis! Je kunt ook het boek kopen als je dat fijner vindt en hij is niet zo duur. Ik zelf vind de website onhandig, omdat ze per hoofdstuk een webpagina gemaakt hebben en daardoor niet prettig leest. Het boek kopen vond ik een beetje te veel moeite, dus ging ik op zoek naar een pdf. En die heb ik gevonden: http://www.dbnet.ece.ntua.gr/~adamo/csbooksonline/prolog-notes.pdf.

Misschien krijg je interesse in Prolog na het lezen van mijn blog, dus dan zijn bovenstaande linkjes wel handig!
Iedereen kreeg de opdracht het boek t/m hoofdstuk 5 door te lezen en een opdracht te maken voor gisteren 23:59 uur. Hierdoor zou iedereen de basiskennis van Prolog onder de knie krijgen en kan het echte werk beginnen.

In eerste instantie zou je niet denken dat er met Prolog een gecompliceerd programma geschreven kan worden, maar waarschijnlijk denk ik er aan het einde van het kwartaal anders over.

Logic Based
Prolog is gebaseerd op Logica, dus bouwt het vak Logic Based AI voort op het vak Redeneren en Logica van afgelopen kwartaal. De vele logica symbolen komen dus terug. Denk aan een implicatie (als p, dan q), deze werd aangegeven doormiddel van een "→", in Prolog gebruik je ":-".

Hij werkt wel anders: hetgeen voor de ":-" is pas waar ALS hetgeen na de ":-" waar is. Met de "→" is het juist andersom en kun je letterlijk lezen "als …., dan …". De “:-“ kun je dus lezen als “Alles voor de :- is waar, als alles achter de :- waar is.”

Verder kun je denken aan de symbolen:

Of, disjunctie: " ˅ " in R&L, deze is een " ; " in Prolog.
En, conjunctie: " ˄ " in R&L, deze is een " , " in Prolog.

Knowledge base
Om te beginnen maak je in Prolog een soort database aan, ook wel Knowledge Base genoemd. Deze bestaat uit facts en rules. Een fact geeft, zoals gezegd wordt, een feit weer. Bijvoorbeeld dat ik een jongen ben, dat Truus juist een meisje is, dat Piet wiskunde leraar is enzovoort. In Prolog geef je deze als volgt weer:

jongen(toby).
meisje(truus).
wiskundeLeraar(piet).

Een fact bestaat uit een functor en een argument; in het geval van meisje(truus) is "meisje" de functor en "truus" het argument. Zowel de functor als argument beginnen niet met hoofdletter; in Prolog wordt alles beginnend met hoofdletter gezien als een variabele. Een rule wordt geschreven door middel van Logica:

speeltGitaar(toby) :- jongen(toby).
speeltGitaar(X) :- jongen(X).

De eerste rule geeft aan, dat toby alleen gitaar speelt als hij ook een jongen is. Is er dus door middel van een fact aangegeven dat toby een jongen is( jongen(toby) staat in de knowledge base), dan speelt hij ook gitaar. speeltGitaar(toby) hoeft dus niet expliciet in de knowledge base voor te komen.

?- [file].
?- listing.

Beide bovenstaande query’s geven (als het goed gaat) als resultaat "true", wat aangeeft dat de query succesvol was. De eerste vertelt Prolog om een "file. pl" in te lezen, dit is onze database en daar willen mij mee kunnen werken. De tweede query is meer een test, om te kijken of Prolog de juiste data (predicaten) heeft ingelezen. Hij print namelijk hierdoor alles wat in de opgegeven file staat.

?- nederlander(toby).
?- speeltGitaar(truus).
?- wiskundeLeraar(piet).
?- meisje(X).

Als wij ervan uit gaan dat onze database bestaat uit de facts en rules die ik als voorbeelden gegeven heb, dan zal de eerste bovenstaande query als resultaat geven een error. Er bestaat namelijk geen functor die "nederlander" heet, dus dan kijkt Prolog ook niet verder. Had hij wel bestaan, pas dan zou Prolog kijken of hij voor het argument "toby" geldt.

Dat is het geval bij query twee, waar het resultaat gelijk is aan "false". De functor bestaat hier wel, maar hij geldt niet voor "truus". Als je je goed herinnert, had "truus" een jongen moeten zijn vanwege de rule.

De derde query is wel waar en geeft als resultaat "true".

De vierde query werkt iets anders, hij heeft namelijk een variabele als argument. De functor "meisje" bestaat, dus Prolog gaat zoeken naar een argument waarvoor hij geldt. De eerste die hij tegenkomt is "truus" en geeft als resultaat ook "X = truus".

Stel, je wilt weten of meerdere argumenten voldoen aan "meisje". Dan is jouw volgende query "?- ;".

De " ; " betekent in Prolog "of", dus vraag je simpelweg of er meerdere antwoorden mogelijk zijn. En dan hoef je niet "meisje(X)" te herhalen, aangezien Prolog de vorige stap onthoudt. In ons geval zal Prolog als resultaat "false" teruggeven, omdat wij niet meerdere facts hebben gegeven met functor "meisje".

En dan?
Zodra onze database opgesteld is, gaan wij deze opvragen in een Prolog environment. Het opvragen gebeurt als volgt:

De uitvoering van enkele query’s. Kun jij raden wat query nummer 5 teruggeeft als onderstaande data in de knowledge base staat?

Simpel, niet? Zodra wij wat verder zijn, zal ik meer vertellen over Prolog en hoe je er echt mee kunt programmeren.

Zullen we het maar hierbij laten voor deze week?

See ya!

Ps. Query nummer vijf geeft “Jan = toby.” terug, immers, “Jan” is met een hoofdletter geschreven, en dus een variabele.


BLOG 010010 (18) - Programmeertalen

15 februari 2016
Hallo allemaal! In je eerste jaar TI krijg je al erg veel programmeertalen voorgeschoteld. Hieronder vind je (een selectie van) die programmeertalen, aan de hand van het bekende Hello World.

Assembly
In het eerste kwartaal krijg je Assembly programming bij Computer Organisation. Deze taal zit direct boven de enen en nullen waar de PC zelf mee werkt. Hieronder zie je Hello world in Assembly, dit is een vereenvoudigde versie, met calls naar C.

Tijdens dit vak kun je ook een BrainFuck interpreter schrijven in Assembly. Hieronder Hello World in BrainFuck.

Java
Tijdens Object Orientated Programming krijg je Java programming aangeleerd. Ongeveer één op de vijf programma’s worden geschreven in Java . Het is dus heel handig dat je deze taal leert programmeren, in het tweede kwartaal leer je meer over deze taal door in groepsverband aan een programma te werken. Hieronder Hello World in Java.

JavaScript
Ook al lijkt de naam erop dat deze familie is van Java, is dit niet zo. JavaScript wordt gebruikt op websites om deze interactief te maken. Je leert deze taal in het tweede kwartaal tijdens Web- en Databasetechnologie. Hieronder een implementatie van Hello World in JavaScript. Slechts het gedeelte binnen de <script> tags is JavaScript.

Prolog
In deze programmeertaal kun je kunstmatige intelligentie programmeren, aan de hand van een aantal regels waaraan het systeem moet voldoen. Aangezien deze programmeertaal dus niet zozeer werkt met GUI’s maar meer met de achterliggende berekeningen is het onlogisch hier een Hello World voor te schrijven.

GOAL
Deze relatief onbekende programmeertaal is ontwikkeld door de TU. Deze wordt in het vierde kwartaal gebruikt om in teamverband in Unreal Tournament bots te programmeren die moeten winnen in een Capture-the-flag van andere teams. Ook bij deze programmeertaal is het niet logisch om een Hello World te schrijven, aangezien deze programmeertaal dus ook op de achtergrond werkt.

In je verdere carrière leer je nog wel meer programmeertalen. Mocht je je nou echt vervelen, kun je er bijvoorbeeld voor kiezen om Whitespace te leren. Hieronder Hello World in Whitespace.

In Whitespace worden er slechts Enters, tabs en spaties gebruikt, de rest wordt gezien als commentaar.

Dus veel plezier met leren van Whitespace!

Toby


BLOG 010001 (17): Kwartaal III

Hallooooooo!
8 februari 2016
De TU heeft voor alle studenten de voorjaarsvakantie iets verder naar voren getrokken, waardoor deze niet binnen een kwartaal viel, maar tussen twee kwartalen. Hierdoor hadden wij afgelopen week vrij. Ook was in deze week de wintersport van CH gepland. Ik kon helaas niet mee, maar het schijnt wel èrg leuk te zijn geweest.

We beginnen weer aan een nieuwe periode en dat betekent: nieuwe vakken. De vakken van deze periode zijn Algoritmen en Datastructuren, Lineaire Algebra en Logic Based Artificial Intelligence. Hieronder verschijnt weer een korte uitleg.

Algoritmen en Datastructuren
Bij dit vak leer je, je raadt het al, hoe je je data het beste kunt structureren. Ook leer je welke algoritmen er zijn en welk algoritme je het best kunt gebruiken. Hierbij ga je dan uit van onder andere het aantal keer dat data van de harde schijf wordt opgevraagd, het aantal berekeningen dat hierop uitgevoerd wordt maar natuurlijk ook de tijd dat dit algoritme gebruikt om de handelingen te doen.

Lineaire Algebra
Bij lineaire algebra leer je hoe je moet matrix-rekenen. Dit betekent eigenlijk niets meer dan dat je in plaats van 1 waarde, meerdere waarden in een tabel (matrix) hebt staan en hiermee berekeningen gaat uitvoeren. Ook leer je hier hoe je eenvoudige bewijzen moet geven, waarmee het dus lichtelijk voortborduurt op Redeneren en Logica uit het eerste kwartaal.

Logic Based Artificial Intelligence
Bij dit vak leer je met AI’s werken. AI staat voor Artificial Intelligence, wat dan weer Kunstmatige Intelligentie betekent. Tevens leer je ook (eenvoudige) AI’s schrijven in de practicum opdrachten. De taal waarin gewerkt wordt is Prolog. Zoals je ziet wordt het weer erg veel leuks, dus blijf dit vooral lezen. Lijkt het je nou leuk een keer mee te lopen, ga dan naar de meelopdagen pagina.


BLOG 010000 (16) – Recap

25 januari 2016
Deze week is de tentamenweek van TI. Maandag en dinsdag zijn de presentaties van de OOP-projecten. Woensdag is het tentamen van Calculus en vrijdag is het tentamen van Web- en Databasetechnologie. Maar wat hebben we dit semester (=halfjaar) nou allemaal geleerd?

Redeneren en Logica
Bij Redeneren en Logica heb je logisch leren denken. Dit is handig bij het programmeren van dingen bij bijvoorbeeld if- en while statements ( if ( X ) { Y } else { Z } ). Ook heb je geleerd hoe je stellingen moet verwoorden en ze moet bewijzen.

OOP
Bij dit vak leerde je programmeren in een object georiënteerde taal, namelijk Java. Aan het eind van het kwartaal kon je eenvoudige TUI’s maken (Textual User Interface). Ook heb je geleerd hoe je data uit een tekstbestand kunt lezen en die kunt gebruiken in jouw programma.

Computer Organisation
Bij dit vak heb je geleerd hoe de opbouw van de processor is en hoe deze werkt. Ook heb je geleerd te programmeren in Assembly. Bij deze programmeertaal programmeer je direct op de processor en daardoor kan jouw programma een stuk sneller werken, mits je goed programmeert.

OOPP
Bij dit vak was de opdracht om een tinder-like applicatie te maken (zie vorige blog). Hierbij heb je geleerd om samen aan een quasi-grote applicatie te schrijven. Ook heb je nu beter een idee van hoe lang iets duurt om te implementeren. Tevens hebben sommigen voor het eerst kennis gemaakt met Git en hoe je version control kunt gebruiken.

Calculus
Aangezien we een technische studie doen kan Calculus niet ontbreken. Bij dit vak heb je geleerd hoe je rijen en reeksen kunt gebruiken om dingen uit te rekenen. Tevens heb je geleerd over oppervlakken te integreren.

Web- en Databasetechnologie
Bij dit vak heb je geleerd hoe je een website kunt maken met behulp van HTML, CSS en JavaScript. Ook heb je geleerd om te gaan met Node.js en AJAX. Tot slot heb je ook geleerd hoe je een SQL database kunt maken, er queries (zoekopdrachten) op uit kunt voeren en hoe je deze aan jouw website kunt koppelen.

Zoals je ziet leer je al erg veel in het eerste semester en je kun nu dan ook al de basisapps maken. Onder basisapps versta ik dingen die bijvoorbeeld geen zelflerend systeem bevatten, of een AI bezitten.

Ik ga weer even verder met leren in plaats van Soggen, eeh bloggen. Tot volgende week.

Groetjes,
Toby


BLOG 001111 (15) – De witte week

18 januari 2016
Deze week hebben wij een witte week. Dit houdt niet in dat er nu overal sneeuw valt, maar dat we een week vrij zijn voor de examens. In deze week kun je dus hard leren voor je vakken. Ook moeten er volgende week wat projecten ingeleverd worden, dus daarmee zitten mensen met hun handen in het haar. Aan het begin van het project had ik verteld waar het over ging, de tinder voor studiebuddy’s. En nu laat ik jullie zien wat wij ervan gebakken hebben.

Het project onderverdeeld
Wij hadden het project onderverdeeld in 3 groepen; Het databaseteam, Het Communicatie-tussen-client-en-server-team (CoCliSe), en het GUI-team. In deze onderverdeling deed ik de CoCliSe in mijn eentje, deden twee andere teamleden de GUI, en zaten er drie op de database. Dan hielden we nog 1 persoon over en die deed van alles wat, of zoals hij het graag zegt, “He comes when needed the most.”

Het GUI

Het GUI-team heeft puik werk geleverd en dat komt duidelijk terug in het resultaat. Hieronder staan een aantal schermen waarmee je een idee kunt krijgen van onze GUI. Dit is het login-scherm. Zodra je inlogt wordt het wachtwoord gehasht en over het internet verstuurd naar de server, die het wachtwoord vervolgens nogmaals hasht met een opgeslagen hash. Tevens kun je registreren, wat dan een nieuwe gebruiker in de database van de server maakt.

Zodra je inlogt kom je op dit scherm terecht waarmee je naar je profiel kunt of kunt zoeken naar matches.

 

Als je er dan toch voor kiest te gaan matchen kom je uit op dit soort schermen. Om het te kunnen testen is de database gevuld met arbitraire waarden, die je hier op het scherm ziet. Als je een match wilt maken, klik je op de user en vervolgens op “send match request”.

Mocht je toch liever naar het profiel gaan, dan kom je op deze pagina uit. Hier kun je alle persoonlijke info aanpassen, nieuwe vakken toevoegen aan jouw vakkenpakket en notificatieinstellingen wijzigen.

Communicatie naar de server
Communicatie naar de server gaat door middel van een REST-service. Dit houdt eigenlijk in dat je niet met poorten en IP-adressen werkt, maar met URL’s waarnaar je navigeert.

Database
De database is een SQLite-database. Om het net wat echter te laten lijken, hebben we deze laten draaien op een Raspberry Pi van een teamlid. Alles wat dus gecommuniceerd wordt vanuit de client, wordt op de Rasb verwerkt.

Slotwoord
Er kan nog veel verbeterd worden op ons project. Zo is er bijvoorbeeld slechts 1 thread op heel de server en wordt de database ook slechts 1x continu aangeroepen. Dus met veel gebruikers zal dit niet erg snel gaan.

Wij gaan nog even de laatste hand leggen aan dit programma, en dan zie ik jullie volgende week weer.

Hájè!
Toby


BLOG 001110 (14) – De studie functioneel

11 januari 2015… eeh 2016
Na heerlijk uitgerust te zijn in de vakantie kunnen we nu weer aan de bak. Namelijk nog drie weken en dan beginnen de examens weer. Natuurlijk doe je de studie niet om de examens te maken maar om kennis op te doen, en daar gaat de blog van deze week over. In het eerste semester (=halfjaar) doe je namelijk al genoeg kennis op om bijvoorbeeld een domoticasysteem/slim huis te maken. De blog van deze week gaat erover één van de implementaties die je zou kunnen kiezen.

Arduino / Raspberry Pi
Je kunt dit systeem maken aan de hand van een Arduino (tegenwoordig Genduino buiten de VS) of een Raspberry Pi. Deze printplaatjes zijn de programmeren met een vereenvoudigde variant van C (Arduino) of Python, C, C++, Java, Scratch of Ruby (Rasp.) Aan deze printplaatjes kun je vervolgens allerlei componenten hangen waarmee je van alles kunt doen. Je moet hierbij denken aan LEDjes, weerstanden en transistors, maar ook dingen als elektromotortjes, relais en steppermotoren. Indien je niet alles zelf bij elkaar wilt zoeken zijn er ook zogeheten “shields” die je op het printplaatje kunt bevestigen waarop alles zit om de shield te implementeren. Natuurlijk zijn wij lui, en dus willen wij alles van het domoticasysteem bekijken op onze telefoon. Dit gaan we doen aan de hand van internet en dus kiezen wij voor een ethernetshield. Hiermee kun je met je Arduino op het internet.

De Arduino MEGA, het vlaggenschip van Arduino, in combinatie met een Ethernetshield.

Arduino als server
Je kunt de arduino met ethernetshield gebruiken als server om een site te hosten. Deze feature gaan wij natuurlijk gebruiken en dan wel zodanig dat alles real-time geüpdatet wordt. Door middel van HTML, CSS en JavaScript maak je een mooie site en door middel van (helaas voor sommigen) AJAX kunnen we vervolgens de site real-time updaten. Deze talen en technologieën leer je beheersten in het eerstejaars vak van het tweede kwartaal: Web- en Databasetechnologie.

De Arduino om te besturen
Als je de Arduino ook dingen wilt laten besturen kan dit ook via de site. Je plaatst eenvoudigweg een knop op je site die een HTTP-request stuurt naar de server. In deze http-request plaats je vervolgens de dingen die je wilt aanpassen. Vervolgens moet je je Arduino zelf natuurlijk ook nog programmeren. Dit doe je door de vereenvoudigde versie van C. Tijdens het eerstejaarsvak van het eerste kwartaal, OOP, leer je programmeren in Java. De overstap naar “Arduino” is dan niet zo moeilijk. Tevens zijn er meer dan genoeg tutorials om je hierin wegwijs te maken. De Arduino wordt dus zo ingesteld dat als er een HTTP-request komt voor de pagina, deze de HTML-pagina stuurt. In de HTML pagina staan verwijzingen naar de CSS en de JS, door de browser worden deze dan ook opgevraagd, waarna de Arduino deze ook stuurt. Vervolgens moet je nog alle HTTP-requests van de knoppen programmeren.

Tot slot
Je kunt zien dat het automatiseren van je huis helemaal niet zo moeilijk is, mits je een klein beetje kunt programmeren. Nu is er voor de vakantie een quiz gemaakt en hieronder staan al de antwoorden, maar ik wilde nog even vermelden hoe goed (of slecht) jullie het hebben gedaan. Dat kun je hieronder vinden.

Groetjes,
Toby

BLOG 001101 (13) – POPQUIZ! : The Answers

4 januari 2016
Na voor de vakantie de quiz eruit gegooid te hebben, komen hier de antwoorden. Maak hem dus eerst voordat je hier naar de antwoorden kijkt!

VRAAG 1: Waar staat SaaS voor?
SaaS staat voor Software as a Service, het komt er hierbij op neer dat de klant betaalt voor het gebruik van de software en dat de SaaS-aanbieder dit voor de klant onderhoudt en updatet.

VRAAG 2: Welke bekende technieken gebruikt Skype?
Deze vraag was weer heerlijk ambigue, want wat versta je onder Skype? Laten we uitgaan van zowel de clientside als de serverside. Sowieso is VoIP een goed antwoord, dit staat namelijk voor Voice over IP, hetgeen eigenlijk het handelsmerk van Skype is. Ook wordt er aan multithreading gedaan, er worden namelijk meerdere dingen “tegelijk” gedaan door je PC. Zo wordt er zowel nieuwe informatie verstuurd via je webcam, maar als je een bericht stuurt wordt die ook meteen verstuurd. Wat overduidelijk niet van toepassing was, was snailmail. Deze Engelse term staat voor brievenpost, met Skype doe je geen brief in de bus. Of er spyware in de Skype bundel zitten zullen we maar in het midden laten, ik weet niet wat de NSA allemaal doet. Tot slot de SQL. Indien de serverside mee was genomen bestaat er een mogelijkheid dat SQL een goed antwoord is. Natuurlijk heeft Microsoft een database met users. De vraag is alleen of dit een SQL database is.

VRAAG 3: Waar zit de fout in de javacode?
De fout zit in regel 3; hier mist een puntkomma aan het einde van de regel. In Java moet je geopende haakjes/accolades altijd sluiten. Commands moet je afsluiten met een puntkomma.

VRAAG 4: Welk html tag laat een afbeelding zien?
In HTML5 is dit <img src=”LINK”>. In eerdere versies (XHTML) was dit <img src=”LINK” />.

VRAAG 5: Wat doet deze code?
Deze code print de getallen van 1 tot en met 9 op het scherm. Dit is te zien doordat de System.out.println(); elke iteratie van de for-loop wordt uitgevoerd. Anders gezegd, elke keer als hij opnieuw in de for-loop gaat, print hij een ander getal. De for-loop gaat door zolang i kleiner is dan 10 en hij begint bij i = 1. Elke iteratie telt hij er 1 op bij i.

VRAAG 6: Hoe heet bovenstaand scherm?
Dit is het BSOD. Dit staat voor Blue Screen Of Death. Nadat ze er bij Windows 8 achter kwamen dat het scherm angst aanwakkerde zijn de voor de rechter “vriendelijkere” versie gegaan. Dit scherm wordt ook wel genoemd.

VRAAG 7: Welke optie laat 3 besturingssystemen zien?
Dit is de optie met MS-DOS, Debian en Ubuntu. Vanzelfsprekend is de optie met Windows, Mac-OS en EclEmma geliefd. Echter is EclEmma een tool binnen Eclipse om te kijken of je code wel goed is getest. MS-DOS is een heeeeeeel oud OS van Microsoft, Debian en Ubuntu zijn Linux OS. JavaFX is een manier om GUI’s te maken in java. IntelliJ is een editor voor Java. JAX-RS is een manier om client-server verbindingen te maken in Java. Firebug is een HTML debugger voor Firefox. 0xDBE is een database-editor. GoogleAPI is iets wat ik uit mijn duim heb gezogen, maar het blijkt te bestaan. Het zijn manieren van Google om interessante features te gebruiken in apps.

VRAAG 8: Wat is het meest gebruikte standaard IP adres van je router?
Dit is 192.168.0.1. 255.255.255.1 is de standaard DNS server; 77.254.134.98 is een publiek IP adres. 192.168.0.5:3654 is een intern IP adres met poort gedefinieerd. Localhost is de huidige pc.

VRAAG 9: Achter IP adressen wordt “:xxxx” toegevoegd, wat is dit?
Zoals hierboven vermeldt, is dit een poortnummer. Een computer heeft heel veel deuren naar het internet die hij open of dicht kan zetten. Hiermee bepaal je dus op welke deur je binnen wilt komen. Standaard gaat je browser door poort 20. Het bepaalt dus NIET welke pc je het over hebt, dit bepaal je namelijk al met je IP adres.

VRAAG 10: Hoe heet het deel achter het vraagteken?
Dit is de query. Een URL is als volgt opgebouwd: Protocol/domeinnaam:poortnummer/padnaam?query#fragment

VRAAG 11: Waar staat CPU voor?
Dit staat voor Central Processing Unit. Letterlijk vertaald een Centrale Verwerkings Eenheid. Het verwerkt dus de vragen die jij aan de PC stelt.

VRAAG 12: Wat zie je op de foto?
Een moederbord, hierop bevestig je de rest van de computer, zoals de CPU, RAM en de harde schijf.

VRAAG 13: Wat voor kabel zie je?

Dit is een kabel die bijna elke persoon wel elke dag vast heeft. Dit is namelijk die kabel waaraan je de meeste (niet-Apple) smartphones oplaadt. Dit is een microUSB. Een miniUSB is 1 slag groter en heeft een andere vorm, zoals hier te zien. Een UTP kabel is de internetkabel, een WLAN kabel bestaat niet. WLAN staat immers voor Wireless Local Area Network, en Wireless heeft natuurlijk geen kabels nodig.

VRAAG 14: Wat doet CTRL-SHIFT-ESC?
Dit opent het taakbeheer en is hier één stap sneller mee dan CTRL-ALT-DELETE, die het Windows Security scherm opent, van waaruit je het taakbeheer kunt openen.

VRAAG 15: Wat doet CTRL-F4?
Dit sluit het tabblad in de meeste browsers. ALT-F4 sluit het programma, tenzij het op het bureaublad gebruikt wordt, dan vraagt het of je Windows af wilt sluiten.

En hoeveel had jij er goed? Vast wel wat. Ik ga nog even door met OOPP, dan zie ik jullie volgende week weer.

DOEIIIIII,
Toby


BLOG 001100 (12)– POPQUIZ!

14 december 2015

Deze week doen we het eens even helemaal anders.  In plaats van mijn gebruikelijke blog, ga ik jullie kennis van de informatica testen aan de hand van een paar vragen die te maken hebben met de vakken uit het eerste semester (= half jaar) van TI. In deze quiz komen vragen over fouten verbeteren in codes, verschillende afkortingen herkennen, IP en URL-adressen, etc.  Ik heb een quizje gemaakt in een Google Form en deze kun je bekijken (en natuurlijk invullen) op

http://bit.ly/TUDTiBlogQuiz

Volgende week zal ik in de blog dan de antwoorden en de statistieken van jullie gegeven antwoorden plaatsen.
Good Luck!

Groetjes,
Toby


BLOG 001001 (11) – Een dag uit het leven van mij

7 december 2015
Deze week laat ik eens zien hoe een gemiddelde dag er uit ziet als ik naar de TU moet.

6:00 – Opstaan

Veel moeite doen om wakker te worden. Weer half in slaap vallen en dan weer wakker schieten.

6:15 – Douchen
6:30 – Ontbijten
7:10 – In het OV stappen
8:00 – In de trein stappen

Vanaf hier worden de tijden vaag; want NS. Laten we er vanuit gaan dat ze gewoon op tijd rijden

8:20 – Fietsen

Ik heb een fiets staan op Station Delft waarmee ik naar de TU fiets. Zelfs als je niet in Delft woont, is een fiets toch wel handig hoor. Zo kun je gemakkelijk en snel bij de verschillende faculteiten geraken. Het lopen naar Lucht- en Ruimtevaarttechniek is niet erg leuk.

8:45 – College #1

Het eerste college van de dag. In het huidige rooster is dit voornamelijk Calculus. Laten we zeggen dat je wel meteen wakker bent.

10:45 – College #2

Het tweede college, nadat je wakker bent geworden in het eerste college krijg je nu vakken als Web- en Databasetechnologie.

12:45 – Pauze!

Waarbij lunch in de kantine kunt halen, of je eigen brood kunt nuttigen.

13:45 – Werkcollege

Nu krijg je vier uur lang een werkcollege waarbij je werkt aan gegeven opgaven en projecten. Meestal doe je dit in een zelf-samengesteld groepsverband, want dat werkt nu eenmaal fijner als je andere mensen dingen kunt vragen. Het staat volledig vrij om te blijven of om weg te gaan.

17:30 – Allons-y!

We gaan weer huiswaarts, ook nu weer met de NS, maar we nemen maar weer aan dat alles op tijd is.

18:30 – Dineren

Soms ben ik wat vroeger en dan dineer ik net wat eerder waardoor ik daarna nog kan sporten.

18:45 – Richting Judo
19:00 – Les volgen
20:00 – Les afgelopen
20:30 – Weer thuis

Op dit moment ga ik meestal wat TV kijken of verder werken aan mijn deel van groepsprojecten.

22:00 (of later) – Naar mijn nest

En dan nog lang liggen wikken en wegen waarom de code nou niet werkte…

Dat was de blog voor deze week. Overigens zat er een fout in de kop van vorige week 0010012 is natuurlijk niet equivalent aan 1010. Dit moet natuurlijk 0010102 zijn. Was het jou opgevallen?

Groetjes,
Toby


BLOG 001001 (10) – Het sport- en cultuurcentrum

30 november 2015
Buiten dat de TU Delft goede researchfaciliteiten heeft, heeft zij ook een uitstekend sport- en cultuurcentrum. Gelegen ten zuiden van het EWI kun je hier van alles doen; van volleyballen tot judo, van fotografie tot de tango. Deze week gaat de blog over dit onderwerp.

Roeien
De bekendste sportverenigingen zijn natuurlijk wel de studenten-roeiteams. In Delft zijn dit D.S.R. Proteus-Eretes en D.S.R.V. Laga. Enkele roeiers van deze verenigingen zijn ook te vinden op Olympische Spelen en andere belangrijke wedstrijden. Misschien ben jij wel de volgende?

Sportkaart
Om te kunnen sporten in het sportcentrum moet je een sportkaart kopen. Deze kaart is aan het begin van het jaar €108,-. Na dit bedrag éénmaal te hebben voldaan kun je tot 31 augustus het daaropvolgend jaar gratis sporten. Verderop in het jaar worden deze bedragen minder.

Vanaf (Datum)Prijs (€)
Augustus108
Februari67
April50
Juni33
Juli22


Fitness
Ook kun je fitnessen bij het SC-centrum. Je kunt hier volledig zelfstandig trainen, of hulp vragen aan een erkende fitnessinstructeur. Om te kunnen fitnessen moet je wel jaarlijks €109,- bovenop de sportkaart betalen.

Het Cultuurcentrum

Ook biedt het SC-centrum vele mogelijkheden om jezelf “cultureel te verrijken.” Je kunt hierbij denken aan schilderen, maar er worden bijvoorbeeld ook cursussen webdesign gegeven. Ook kun je gaan dansen of een instrument leren bespelen. De prijzen en lengten van de cursussen variëren.

Volledige assortiment
Het volledige sportassortiment en cultuuraanbod is hier te vinden.

Dat was de blog voor deze week.

Groetjes,
Toby


BLOG 001001 (9) – Groepsproject!

23 november 2015
Stel je voor: Je bent TI sjaarsch en zit op je kamer te werken aan je Calculus opgaven. Maar je komt er echt niet uit. Je denkt: laat ik even een pauze nemen en je swipet lekker door je tinder-matches heen. Aan het einde van je pauze ga je nog een keer over de opgave heen. En NOG kom je er niet uit. Vandaar dat het OOP-project van dit jaar is... *Tromgeroffel* Een Tinder-like app voor studiebuddy’s in plaats van… eehm… “Tinderbuddy’s.”

OOP-Project
Dat wordt hem dus, het OOP-Project van dit jaar. Nadat we vorige week woensdag hadden gehoord wat het project werd zijn we afgelopen woensdag dan ook echt begonnen. De opdracht werd gegeven zoals je die later als programmeur ook zou krijgen: vaag en breed. Er moest slechts voldaan worden aan een aantal eisen; zoals bijvoorbeeld JSON en een SCRUM werkwijze. Voor de rest is het project relatief vrij in te vullen.

Plannen, plannen, plannen en planningen aanpassen
Zoals vast wel bekend met groepsprojecten komt er van planningen meestal niets, of doet één persoon minder dan de rest. Het SCRUM-model biedt in ieder geval voor de eerste een oplossing: Beslis aan het begin van een periode wat er die periode af moet, alles wat dan niet af is gaat mee naar de volgende periode. In deze nieuwe periode zou je dan kunnen zeggen om er extra mankracht op te zetten waardoor het nu wel af komt. SCRUM draait er dus voornamelijk om dat jij flexibel plant en aan het eind van elke periode aan je opdrachtgever kunt laten zien wat je af hebt.

JSON
JSON is een manier om data te representeren, net als XML. Hieronder zie je het verschil in datarepresentatie tussen XML en JSON. Hierin valt op dat JSON veel minder plek (en dus bandbreedte) in beslag neemt en dus veel sneller over het internet gestuurd wordt. Hierdoor heb je sneller je data binnen, of verbruik je bijvoorbeeld minder MB’s van je bundel. Een nadeel van JSON is dat je geen commentaar kunt toevoegen aan het bestand, daar dat bij XML wel kan.

Dat was de blog van deze week. Ik heb jullie wat info gegeven over het project, ik hoop dat jullie het interessant vonden.

Groetjes,
Toby 


BLOG 001000 (8) – Extracurriculaire activiteiten

16 november 2015
Heyy, bij deze weer de blog van deze week. Hij gaat deze keer over extracurriculaire activiteiten. Dit lijkt heel wat, maar eigenlijk betekent het niets meer dan activiteiten die niet voor je studie zijn (en dus buiten het curriculum vallen). Dit kan van alles zijn, van zelf programma’s programmeren tot een dreamteam. Laten we met een paar uit de laatste categorie beginnen.

Dreamteams

NUON SOLAR TEAM

Je hebt vast wel eens van de dreamteams gehoord. Laatst op het nieuws was er weer over een dreamteam te horen: het NUON Solar Team. Elke twee jaar wordt er in Australië een wedstrijd georganiseerd waarin zo snel mogelijk 3000km moet worden afgelegd in een door zonne-energie aangedreven auto. Het NUON Solar Team van de TUD heeft dit jaar voor de 6e keer deze race gewonnen. De overige twee keer werden zij tweede.

DARE

Het Delft Aerospace Rocket Engineering team ontwerpt en bouwt raketten. Ook dit team is laatst in het nieuws geweest omdat ze een raket hadden gebouwd die tot 21,5km hoogte kwam. Dit was een nieuw Europees record. Het oude record van 12,5km was ook in handen van DARE. DARE is momenteel bezig met een nieuwe raket die ze daadwerkelijk de ruimte in willen sturen.

ECO-RUNNER

Ook in het nieuws dit jaar was het Eco-runner team. Het doel van dit team is om een zo zuinig mogelijk voertuig te maken, waarmee er dus op 1 liter brandstof een paar duizend kilometer kan worden afgelegd. Elk jaar doen ze mee aan de Shell eco-marathon, die ze dit jaar ook hebben gewonnen. Ze hadden namelijk een brandstofverbruik van 3653km/l! Natuurlijk waren het voertuig en de bestuurder zo licht mogelijk; het voertuig was ongeveer 38kg, de bestuurder ongeveer 50kg. Nu zijn er nog veel meer dreamteams maar dat zou te veel worden om hier op te noemen.

Commissiewerk bij CH en Promoteam

Misschien niet helemaal extracurriculair, maar je kunt het wel naast je studie doen. Zoals in eerdere blogs verteld kun je commissies doen bij CH. Ook kun je ons versterken om aanstaande studenten info te geven over de studie.

Zelf programma’s programmeren / robotica bouwen

Indien je het leuk vindt, kun je natuurlijk ook iets voor jezelf gaan doen. Zo kun je bijvoorbeeld zelf een quadcopter/octocopter/drone bouwen. Nu ben ik daar zelf mee bezig en heb hier ook mijn vakantie aan besteed. Nu is het natuurlijk flauw om een bouwpakket te nemen, dus maken we hem from scratch. Zie hieronder het resultaat tot nu toe.

Zoals je ziet zijn er veel dingen te doen als extracurriculaire activiteiten.

Ik zie jullie volgende week weer.
Toby 


BLOG 000111(7) – Het tweede kwartaal

9 november 2015
Hola! Hierbij de nieuwe blog van deze week. Deze week is de eerste week van het tweede kwartaal dus hieronder volgt de uitleg van de nieuwe vakken.

Calculus
Bij dit vak krijg je wiskunde zoals bij Wiskunde B gegeven, echter ga je hier dieper op de stof in. Bij dit vak krijg je dus onderwerpen als integralen, oppervlakte-integralen, inhouds-integralen, differentiaalvergelijkingen, vectorberekeningen.

Een college van calculus. We beginnen het vak met goniometrie!

Web- en Databasetechnieken
Bij dit vak leer je de technieken gebruikt in Web- en Databasetoepassingen. Hierbij moet je denken aan HTML, CSS, JavaScript etc voor het web-gedeelte van het vak. Voor het databasegedeelte moet je denken aan SQL, NoSQL en de opbouw van databases.

OOP-Project
Bij dit vak wordt er voortgebouwd op de kennis die je bij het vak OOP uit het eerste kwartaal (zie blog 000010) hebt opgebouwd. Bij OOP (Object-Orientated Programming) heb je geleerd in Java te programmeren. Bij OOP project wordt, zoals de naam wel doet vermoeden, er gewerkt aan een project in groepsverband. Doordat je nu in groepsverband moet werken leer je ook hoe je je software zó moet plannen dat elke persoon ongeveer evenveel doet en het ook eenvoudig te implementeren is. Tevens moet je natuurlijk wel binnen de planning blijven…Tja...

Nog meer programmeren. Heel veel programmeren. Heul Heul veel programmeren.

Dat was de blog voor deze week, volgende week zal ik vertellen over extra curriculaire activiteiten en hoe ik mijn vakantie heb besteed.

Toby


BLOG 000110 (6) – De tentamenweek en vakantie

2 november 2015
Heyooo! De tentamens van dit kwartaal zitten er weer op. Na drie theorietentamens en één praktijktentamen te hebben gehad kan ik nu eindelijk rust gaan houden. In voorgaande jaren zijn de docenten van TI er namelijk achter gekomen dat hun leerlingen zo halverwege het tweede kwartaal helemaal doodop waren. Vandaar dat ze er bij TI voor hebben gekozen om de tiende week van het eerste kwartaal vrij te geven en de tentamens in week negen te houden.

Blaadjes, blaadjes en nog eens blaadjes.

Nieuw van de NS, gebaseerd op “Where is Wally?” komt nu “Where’s the functioning train?”

Zoals jullie vast wel gemerkt hebben is de herfst nu echt begonnen. Dit betekent dan natuurlijk ook dat de bladeren van de bomen niet meer groen zijn, maar bruinachtige kleuren aannemen. Helaas vallen deze blaadjes dan wel eens naar beneden, bijvoorbeeld bovenop een spoor. Gelukkig gaat de NS hier erg goed mee om, ze zorgen immers dat dat arme blaadje niets overkomt en laten dus de trein niet rijden. Ja NS, bedankt voor de vertragingen, wat moesten we toch zonder jou. (Op tijd komen waarschijnlijk.)

Mooie beelden
Gelukkig levert de herfst ook mooie beelden op. Hiernaast is een foto te zien van Paul Brussee waarop te zien is hoe mooi het EWI erbij staat in al haar herfstige pracht.

Open dagen
Vorige week maandag en die vrijdag daarvoor zijn de open dagen weer geweest op de TU. Natuurlijk hopen we dat je ook bent gekomen maar mocht dit niet het geval zijn, niet getreurd: er komt nog een paar open dagen, deze kun je vinden op opendagen.tudelft.nl. Mocht je dit nou te lang vinden duren; je kunt ook een meeloopdag plannen via mijnlinkmet.tudelft.nl.

Aanstaande vrijdag
Aanstaande vrijdag organiseert CH voor leden weer een hele leuke activiteit, er wordt namelijk gegamed op CH. Nu begrijp je zelf wel dat veel mensen van informatica maar ook wiskunde dit erg leuk vinden. (Stiekem ergens in ons achterhoofd zullen we ook wel informatica hebben gekozen omdat we willen weten hoe die pc nou toch al die geweldige dingen (lees: games) kon doen.)

Dat was hem dan weer voor deze week. Ik ga even van mijn één week vakantie genieten.

Háje, Toby


BLOG 000101(5) - De week voor de tentamens

26 oktober 2015
Hey hallo! Deze week gaat de blog over hoe hectisch de week voor de tentamens is. Ook zal ik ongeveer uitleggen hoe de tentamens en tentameninschrijvingen bij de TU geregeld zijn. Aangezien ik nog genoeg te leren heb zal hij deze week ook iets korter zijn dan normaal.

De tentameninschrijvingen
Uiterlijk twee weken voordat je tentamen begint moet je je hebben ingeschreven in een programma dat OSIRIS heet. De TU gaat er niet standaard van uit dat iedereen aan het tentamen meedoet die zich voor de studie heeft ingeschreven, dit moet je dus zelf doen. Het inschrijven zelf is heel eenvoudig, zodra je in OSIRIS op inschrijvingen klikt, kun je aanvinken welke tentamens je wilt gaan doen.

De tentamens
De tentamens zelf worden afgenomen in grote zalen. Deze zalen kunnen op je eigen faculteit zijn, maar de TU heeft sinds vorig jaar ook het oude Armamentarium (legermuseum) van Delft gehuurd. Bij een tentamen zit je met zijn allen in een zaal aan hetzelfde tentamen. Zodra je klaar bent met het tentamen kun je jouw werk inleveren en de zaal verlaten. Hieronder staat een foto van één van de tentamenzalen van het legermuseum.

Één van de tentamenzalen in het oude legermuseum van Delft.

Dat was hem dan weer voor deze week, volgende week weer een wat langere blog. Ik ga nog even leren!

Doeiiiii, Toby


BLOG 000100 (4) – De studievereniging; Christiaan Huygens

19 oktober 2015
Hoooi! Deze week gaat de blog over de studievereniging van Technische Informatica en Technische Wiskunde; namelijk Christaan Huygens.

Het is wel duidelijk dat deze vernoemd is naar de 17e eeuwse natuur-, wis- en sterrenkundige Christiaan Huygens. Hij heeft veel aan de weg getimmerd van de wiskunde met differentiaal rekenen, maar bijvoorbeeld ook in de natuurkunde met wetten over de middelpuntzoekende kracht. Maar genoeg over de persoon Christiaan Huygens; wat doet de studievereniging Christiaan Huygens nu eigenlijk?

Algemeen
W.I.S.V. Christiaan Huygens (Wiskunde Informatica Studievereniging Christiaan Huygens; hierna CH) bestaat nu 59 jaar. Het doel van een studievereniging is om het niveau van beide studies hoog te houden. Dit doen ze onder andere door collegeresponsie groepen te houden, te praten met studenten over hoe de vakken gaan en door eventuele conflicten/onduidelijkheden tussen docent en klas op te lossen. Ook organiseren zij op een dinsdag een lunchlezing waarbij er bijvoorbeeld iemand uit een bekend bedrijf komt vertellen over hoe het er bij dat bedrijf aan toe gaat. Echter is het niet alleen maar serieus bij CH; zo worden er ook feesten en borrels georganiseerd. Ook wordt het eerstejaarsweekend georganiseerd door CH. Deze feesten, borrels en weekenden worden georganiseerd door de commissies van CH. In het eerste jaar zijn er drie commissies en die staan hieronder uitgelegd.

CHoCo
De oudercommissie van CH heet de Choco. Deze organiseren de ouderdag; dit is een dag waarop jij de ouders mee kunt nemen om te laten zien hoe het er op jou studie, maar ook in Delft, aan toe gaat. Ook organiseren zij een BroertjesZusjesFeest, waarop je, je raad het al, je broer dan wel zus mee kunt nemen.

Akcie
De activiteitencommissie (of AkCieviteiten, aldus de Akcie zelf) van CH heet de Akcie. Deze commissie organiseert allerlei activiteiten door het hele jaar heen. Deze activiteiten lopen zeer uiteen en zullen ook niet elk jaar volledig overeenkomen.

Sjaarcie
De Sjaarcie organiseert elk jaar een feest en een barbecue voor sjaarsen (Eerstejaars → Sjaars).

Studievereniging of Studentenvereniging
Tot slot wil ik nog even het verschil uitleggen tussen een studievereniging en een studentenvereniging. Zoals hierboven al vermeld zorgt de studievereniging voornamelijk dat het niveau van de studie(s) hoog blijft. Een studentenvereniging, ook wel studentengezelligheidsvereniging genoemd, is meer voor de gezelligheid. Bij dit soort verenigingen zit je over het algemeen ook niet met mensen van slechts één studie maar zit je met mensen van meerdere studies bij elkaar, waardoor je dus ook mensen buiten je eigen studie leert kennen.

En dat was de blog van deze week. Mocht het je nou zelf leuk lijken bij een commissie te gaan, geef je dan vooral op tijdens het EJW of aan het begin van het jaar.

Groeten Toby


BLOG 000011 (3) – Errors, errors en nog meer errors.

12 oktober 2015
Hallo! De blog van deze week is toegewijd aan errors. Tijdens het programmeren kom je er namelijk best wel wat tegen. De compilers van sommige programmeertalen geven hulpvolle foutcodes, anderen doen hier minder hun best in.

Goede versus minder goede compilers
Java (Eclipse) is hier een goed voorbeeld van. Als Java een woord in een regel niet begrijpt, geeft hij duidelijk aan in welke regel van welke class hij het woord niet begrijpt. Assembly is hier minder goed in. Hier krijg je vaak de zeer hulpvolle foutcode: “Segmentation error.” Echt wijzer word je hier dus niet van. Hier leer je mee omgaan en leer je dus telkens kleine stukjes te schrijven en weer te testen. Hierdoor word de kans groter dat je de error nog terug gaat vinden.

Hierin wordt duidelijk aangegeven dat de fout zich bevindt in de HelloWorld class op regelnummer 5.

Bewijzen
Zoals vermeld in de blog van vorige week, wordt er bij Redeneren en Logica ook aandacht besteed aan het bewijzen van stellingen. Er zitten hier een paar eenvoudigere stellingen tussen zoals "Bewering: Het kwadraat van een even getal is een viervoud." Echter sprong er deze week één bewering met kop en schouders bovenuit. Het ging hier namelijk om de bewering: "Bewijs dat voor alle even n geldt dat alle n-cijferige palindroomgetallen deelbaar zijn door 11." (NB: een palindroomgetal is een getal dat hetzelfde is als je het van links naar rechts lees als dat je het van rechts naar links leest. Bijvoorbeeld 13699631) Dit bewijs was zodanig moeilijk dat deze vraag geschrapt werd en je deze als 0.1 punt bonus op je eindcijfer mocht inleveren. Natuurlijk; zoals het een goede student beaamt hebben wij (Stijn Pletinckx, ook eerstejaars TI en ik) geprobeerd om dit bewijs te vinden. Nu denken (en hopen) wij dat we erin geslaagd zijn. Zeker weten doen we het echter nog niet, dit krijgen wij binnenkort te horen. Hieronder staan in ieder geval de bewijzen voor een viercijferig palindroomgetal en voor de eerst genoemde bewering, voor de mensen die hierin geïnteresseerd zijn.

Als je je nog verveelt, kun je proberen om het bewijs te vinden voor alle even-n n-cijferige palindroomgetallen. Wie weet vind je hem wel.
Succes!

Groetjes,
Toby


Blog 000010 (2) – Het promoteam is er klaar voor!

05 oktober 2015
Hallo allemaal! Hierbij alweer de tweede blog. Deze week, zoals beloofd, de uitleg van de vakken van het eerste kwartaal! Laten we maar meteen beginnen met de uitleg.

Computer Organisation
Bij dit vak leer je hoe een computer “denkt.” Zo leer je hoe je getallen (gehele én kommagetallen, zowel positief als negatief) kunt representeren in binair stelsel en hier dan ook in binair mee kunt rekenen. Ook leer je hoe het circuit van de CPU eruit ziet en wat deze doet. Tot slot leer je bij dit vak programmeren in Assembly. Deze programmeertaal is de laagste taal die mensen direct kunnen begrijpen; deze taal zit nèt boven het “binaire taalgebruik” van de computer.

Object Orientated Programming
Bij dit vak leer je programmeren in een object georiënteerde taal. Dit jaar hebben de docenten voor Java gekozen. Het is niet nodig om enige voorkennis hierbij te hebben, ze leren het je aan vanaf nul (lees: Hello world!) Echter is het wel handig om voorkennis te hebben, zo loop je al iets voor op de stof en zul je deze makkelijker oppikken. Zodra je één Object Orientated-taal onder de knie hebt, is de overstap naar andere talen niet zo moeilijk meer.

Redeneren en Logica
Bij dit vak leer je de logica zoals deze gebruikt wordt door wiskundigen en computers. (Die twee verschillen trouwens minder dan je denkt. Beiden “denken” logisch na en berekenen dingen. De wiskundige is alleen slimmer en de computer sneller.) Hierbij moet je denken aan uitspraken zoals hier in de afbeelding staat. Overigens is het omgekeerde van deze redenering niet per se waar; die twee premissen zeggen niet dat als de zon schijnt het ook zaterdag moet zijn. Zo kan het best zonnig zijn op een zondag. Er staat slechts dat; als het zaterdag is, dan de zon schijnt. Onder andere dit soort logica leer je toepassen bij het vak Redeneren en Logica.

Groetjes,
Toby


BLOG 01: Welkom op TI bij de TUD!

28 september 2015
Hallo allemaal! In deze blog zal ik proberen om jullie geïnteresseerde lezers in te lichten over wat de studie Technische Informatica inhoudt en wellicht zie ik jullie dan volgend jaar ook op het EWI. Bij de studie TI leer je hoe een computer werkt en hoe je deze het werk voor je kan laten doen. Zo leer je in het eerste kwartaal de basics, bijvoorbeeld hoe een computer data opslaat en uitrekent. Echter, je leert ook programmeren in een object georiënteerde taal (Java). Hierdoor leer je al snel hoe je moet programmeren en “denken als een computer.”

Over mij
Ik ben Toby van Willegen en ik ben 18 jaar oud. Dit is mijn tweede jaar op de TUD, maar mijn eerste jaar op TI. Vorig jaar heb ik Technische Natuurkunde gestudeerd, maar heb helaas daar mijn BSA (bindend studieadvies) niet gehaald. Hier merkte ik wel dat ik alle informatica-gerelateerde vakken erg leuk vond en dus ben ik dit jaar TI gaan studeren. Ik woon niet op kamers, maar nog thuis en reis dus elke dag twee keer anderhalf uur op en neer. Jullie zullen hier vast nog wel gezeur over de NS gaan horen.

Waarom TI op de TUD?
Ik heb voor Technische Informatica gekozen omdat ik op de middelbare al zeer geïnteresseerd was in computers en dergelijke. Ook had ik informatica als keuzevak gekozen en dit beviel zeer goed. Aan het einde van de middelbare heb ik toch voor TN gekozen. Na een jaar TN gestudeerd te hebben had ik helaas mijn BSA niet gehaald, maar zoals hierboven te lezen vond ik de informatica gerelateerde vakken wel nog steeds leuk. Vandaar dat ik dit jaar koos voor TI. Het verschil tussen Technische Informatica en Informatica Het grote verschil tussen Technische Informatica en Informatica is dat je bij TI meer kijkt naar de toepassingen van de informatica. Zo zul je dus meer kijken naar hoe je je kennis kunt implementeren in het “echte” leven later.

Waarom TUD?
Ik heb voor de TUD gekozen omdat deze internationaal hoog aangeschreven staat. Daarbij vond ik de sfeer een stuk fijner dan op de TU/e.

Het eerste octaal
De eerste vijf weken zitten er al weer op! Deze week waren er tussententamens voor enkele vakken. Hierbij moet je je voorstellen dat vakken slechts 1 of twee toets momenten hebben per kwartaal. Ook heb je de meeste vakken maar voor één kwartaal, en moet je dus echt knallen bij deze toetsen.

Het EJW en de OWEE
Ongeveer twee weken voordat je eerste dag begint is er een eerstejaarsweekend om je studiegenoten te leren kennen. Deze wordt georganiseerd door Christiaan Huygens, de studievereniging van Technische Wiskunde en TI. In dit weekend doe je allemaal leuke spellen en maak je vanzelf vrienden. Het is dus ook aangeraden deze mee te lopen, dan heb je in ieder geval mensen die je kent waar je naast kan gaan zitten tijdens colleges. Aansluitend volgt de OWEE, dit is een introductie week waarin je Delft als stad leert kennen. Hierin zullen de studentenverenigingen alles uit de kast halen om jou over te halen naar hun te komen. Dit is natuurlijk hartstikke gezellig. Deze week loop je met een groepje medestudenten van TI. Zo leer je deze groep hartstikke goed kennen en is er grote kans op een vriendschap!

Één van de vele activiteiten van de Owee; de Cantus

Het presidentenforum; hier vertellen de presidenten wat over hun studentenvereniging.

De vakken
Het eerste kwartaal hebben wij drie vakken + mentoraat. De vakken worden in de blog van volgende week uitgebreid uitgelegd.

De overstap van VWO naar WO
De overstap is best groot. Ik heb hem vorig jaar dan gemaakt, maar het tempo ligt veel hoger dan op het VWO. Zolang je alles goed bijhoudt is er echter niets aan de hand. Zo moet je het gewoon vragen als je iets niet snapt. Docenten en studentenassistenten willen je namelijk altijd helpen. Ook al zit er een collegezaal vol (ongeveer 300 man), ze leggen het rustig nog een keer voor je uit. Ook wordt er veel zelfstudie van je verwacht. Een universitaire studie bedraagt namelijk 60 ECs (studiepunten) in een jaar, wat neer komt op ongeveer 40 uur dat je aan de studie moet besteden in een week. Laat dit alles je verder niet afschrikken, als je gewoon goed je best doet ligt dit meestal lager. Het ene vak doe je nou eenmaal wat langer over dan het andere. Daarbij, als je het leuk vindt is dit ook helemaal niet erg om te doen.

En dat was hem dan voor deze week! Jullie houden de uitleg van de vakken van dit kwartaal van mij tegoed.

Groeten,
Toby