Hieronder staan wat vragen/antwoorden.
Blok D 2007-2008
Algemeen
Python algemeen
Python IDE
Peach3
Algemeen
Wat te doen als u een practicum niet kunt bijwonen?
Indien u een practicum niet kunt bijwonen,
dan moet u zich tijdig met motivatie afmelden
bij de practicumcoödinator.
Wat te doen bij een gemiste deadline?
Indien u denkt een deadline niet te kunnen halen,
dan moet u tijdig een gemotiveerd verzoek tot uitstel indienen
bij de practicumcoödinator.
Vermeld in dit verzoek altijd:
- Uw naam en collegekaartnummer
- Om welke opgave het precies gaat
- De motivatie
- Datum/tijd wanneer u het werk wel af kunt hebben
Als de deadline al verstreken is,
dan heeft u een probleem.
U kunt dan proberen alsnog een verzoek tot uitstel in te dienen,
maar de motivatie dient dan wel uit te leggen waarom het verzoek
te laat is ingediend.
Bij onvoldoende motivatie wordt u doorverwezen naar de jaarcoördinator
van W.
Wat te doen als u een opgave wilt herkansen?
Als een inzending voor een opgave is afgewezen,
dan dient u dit zo spoedig mogelijk te herstellen.
Hiervoor vraagt u een herkansing aan
bij de practicumcoödinator.
Vermeld in dit verzoek altijd:
- Uw naam en collegekaartnummer
- Om welke opgave het precies gaat
- De motivatie (t.w. "herkansing i.v.m. afwijzing")
- Datum/tijd wanneer u het werk af kunt hebben
Een eerste herkansing zal i.h.a. zonder meer wel goedgekeurd worden.
Wat zijn de beoordelingscriteria?
Hier is een totaaloverzicht van de criteria bij de tentamenopgave:
- In de opgave is een ruw ontwerpplan gegeven:
- Beschrijft opdeling in routines en hoe deze onderling samenhangen
(informatie uitwisselen).
- Noemt routines bij hun naam; maakt duidelijk
welke parameters en globale variabelen welke rol spelen,
wat de aannames zijn (preconditie) en wat het resultaat danwel
effect (postconditie) is.
- Bij routines die ingewikkelder zijn wordt ook toegelicht
wat de belangrijkste stappen zijn in de implementatie.
- Maakt aannemelijk hoe m.b.v. bovengenoemde routines het
probleem is opgelost en waarom dat goed is.
- Het ontwerpplan beschrijf niet de werking van het programma
("nu gebeurt dit, daarna dat"), maar de (statische) opbouw en de
motivatie voor die opbouw.
- Gevraagd wordt een testplan:
- Zie checklist voor het opstellen van een testplan
- Er hoeft bij deze training alleen getest te worden met invoer
die aan de gegeven restricties voldoet.
- Er hoeft geen testrapport
(met resultaten van het uivoeren van het testplan)
gemaakt te worden,
maar je moet wel je code testen aan de hand van het eigen testplan.
Fouten die je zelf had kunnen vinden worden zwaarder aangerekend.
- Gevraagd wordt ook Python code:
- Nette, systematische opmaak (inspringen, spaties, lege regels,
regellengte max. 80 kolommen; geen TAB karakters)
- Zinvolle naamgeving (niet: te korte, algemene, of nietszeggende namen)
- Helder commentaar:
- Aanhef met: volledige auteursnaam, id.nr., datum, samenvatting van doel
__author__ = "..."
- Grote lijn aangeven met
## tussen de onderdelen:
## Definities van constantes
...
## Definities van routines
...
def ...
...
## Begintoestand instellen
...
## Herhaaldelijk nieuwe toestand bepalen tot ...
while ... :
...
## Resultaat bepalen
...
## Begin van het programma opgebouwd uit de routines
...
## Einde
- Toelichting bij elke variabelen; met
#
achter eerste vóórkomen ervan
vensterLijst = [ ] # de ingelezen vensters,
initieel leeg
- Waar nuttig: toelichting bij ingewikkeldere code;
met #@ als het formeel kan
(bijv. #@ v = sqrt(vx^2 + vy^2))
anders met #
- Elke routine voorzien van een specificatie d.m.v. pre/post-contract:
def ... ( ... ) :
"""Korte beschrijving doel ...
Pre: aanname (noem parameters etc. bij naam)
Post: effect/resultaat (noem parameters etc. bij naam)
"""
- Overbodig commentaar is ongewenst:
i = i + 1 # i met 1 verhogen
- Zie ook slechte stijlfiguren
- Volgens ontwerpaanwijzingen, indien voorgeschreven
- Correctheid, d.w.z. in- en uitvoer voldoen aan de eisen
- Efficiëntie (waar gevraagd)
Python algemeen
Installeren van Python
- Op de W-laptops staat een verouderde versie van Python,
(versie 1.5, of mogelijk versie 2.1),
of zelfs nog helemaal geen Python; mogelijk heb je 2.5 van vorig jaar.
- Dit kun je controleren in het Windows START menu
onder Programs: daar staat dan Python 1.5, Python 2.1,
of Python 2.5 bij.
- Je moet versie 2.5.1 installeren
Python-2.5.1.msi.
- Op eigen risico kun je ook 2.5 blijven gebruiken.
- Zie eventueel hier voor
nadere toelichting bij het installeren, m.n. als Microsoft Installer
niet op je laptop staat.
- N.B. Er zijn goede redenen om allemaal versie 2.5.1 te gebruiken:
- Versie 1.5 is echt verouderd.
- Sommige problemen uit 2.1 zijn in versie 2.5.1 opgelost.
- Versie 2.5.1 wordt gebruikt binnen
Peach3.
- Eventuele problemen met versie 2.5.1 zijn voor iedereen gelijk en
kunnen derhalve centraal aangepakt worden.
- De verschillen tussen 2.1.1 en 2.5.1 zijn beperkt,
maar als je de keus hebt, bevelen we ten sterkste 2.5.1 aan.
- Je kunt versie 2.1 (of 2.5) de-installeren (verwijderen).
Zie hiervoor het Windows START menu onder Programs bij
Python 2.1: Uninstall Python.
Voor versie 1.5 gaat dat zo niet; laat die maar gewoon staan.
Aantal cijfers in exponent bij '%e'
Python 2.5.1 onder Windows toont bij weergave van floating-point
getallen met '%e' drie cijfers in de exponent,
bijv. '%e'%1024 geeft '1.024000+003'.
Bij sommige opgaven toont het voorbeeld echter een weergave
met twee cijfers in de exponent: 1.024000e+03
Python 2.5.1 onder Linux (wat binnen Peach3 gebruikt wordt)
produceert bij '%e'%1024 echter de gevraagde '1.024000+03'.
U kunt dus gewoon met '%e' werken.
Hoe zit het nou met delen en machtsverheffen?
Machtsverheffen gaat in Python niet met ^
,
maar met **
.
Bijvoorbeeld 10 ** 8
.
Delen ligt wat subtieler.
Er zijn twee deeloperatoren: /
en //
.
- Als beide operanden van
/
gehele getallen zijn (integers),
dan is het resultaat hetzelfde als bij //
.
Als je toch een floating-point uitkomst wilt,
gebruik dan float(a)/b
,
of zorg ervoor dat a
of b
zelf vooraf al als
floating-point getal bekend zijn.
a//b
heeft altijd een gehele uitkomst,
nl. het aantal keer dat b
geheel in a
past.
N.B. b
mag uiteraard niet 0 zijn.
- Gebruik
a % b
voor de rest na deling
(met //
) van a
door b
.
Python IDE
Hoe omzeil ik een Socket Error: Connection Refused bij opstarten van IDLE?
Start IDLE vanuit een command venster met de optie -n
:
idle -n
In dit geval moet je wel opletten als je programma modules importeert
waar je wijzigingen in maakt.
Die moeten dan voor executeren (F5) eerst herladen worden.
Voor meer informatie zie IDLE:Help>IDLE Help,
onderaan bij "Running without a subprocess".
Waarom werkt syntax highlighting niet bij mij?
Syntax highlighting werkt alleen op Python bestanden.
De IDE weet pas dat het een Python bestand is,
als het bewaard is met een naam van de vorm *.py
.
Na opslaan zie je syntax highlighting.
Non-ASCII waarschuwing: Bijzonder karakters in Python programma's
Het lijkt er op dat PythonWin en IDLE het niet zo hebben
op bijzondere karakters in een Python programma.
Vermijd karakters met accenten (zoals é en ë) en
`onzichtbare' stuurkarakters.
Ze kunnen zich voordoen als syntax fouten (invalid token).
Opsturen naar Peach3 geeft vaak duidelijker aan waar het probleem
precies zit, dan je binnen de IDE kan zien.
Het is ook beter om TAB karakters te vermijden.
Ze lijken misschien handig bij inspringen,
maar de tab-afstand is niet overal hetzelfde en dat kan
indenteringsproblemen geven.
Gebruik liever een paar spaties.
IDLE kan zo geconfigureerd kan worden dat de
TAB-toets een geschikt aantal spaties invoegt i.p.v. een TAB-symbool
(de standaardinstelling is spaties invoegen; laat dit zo staan).
N.B. De IDLE die bij Python 2.5.1 wordt meegeleverd
kan beter met bijzondere karakters omgaan.
Om deze karakters te gebruiken is het echter wel nodig
om het bestand in een geschikte codering op te slaan.
IDLE vraagt hiervoor toestemming met een dialoogvenster:
Non-ASCII found, yet no encoding declared. Add a line like |
# -*- coding: utf-8 -*- |
to your file
Choose OK to save this file as utf-8
Edit your general options to silencs this warning |
OK | Edit my file |
Met Edit my file wordt de aangegeven regel bovenaan toegevoegd
om de utf-8 codering expliciet aan te geven (dit moet je doen);
met OK wordt het bestand "direct" opgeslagen in utf-8 formaat
(dit moet je niet doen).
Hoe kan ik een lange regel afbreken?
Een lange regel kan in een Python programma worden afgebroken met
een backslash:
print 'De zeer moeilijk te berekenen uitkomst is ', \
ingewikkelde_functie ( lang_eerste_argument, nog_langer_tweede_argument )
Werkmap voor zoeken van invoerbestanden
Als je in de IDE een bestand opent vanuit een Python programma,
dan kun je het beste een volledig pad opgeven (zoals D:\TPW\inp.txt.
We weten niet hoe/of een werkmap kan worden ingesteld.
Python programma's die binnen Peach3 draaien kunnen er van uitgaan
dat de opgegeven naam (hetzij in de opgave of als invoer)
zo gevonden wordt.
Binnen Peach3 is de map waarin het programma zich bevindt
automatisch de werkmap.
Peach3
Hoe registreren bij Peach3?
- Als je nog geen Peach2 of Peach3 account hebt, moet je jezelf eerst
bij Peach3 registreren
met het identiteitsnummer op je collegekaart
(zeven cijfers, beginnend met een 0).
- In Peach3 moet je gewoon je Peach2 wachtwoord gebruiken,
als je al een Peach2 account had.
- Als je je wachtwoord vergeten bent,
dan kun je dat via Peach3 resetten
op de Login-pagina via Wachtwoord vergeten/Password reset.
N.B.
Als je al een Peach2 account hebt, dan moet je voor een 'Password reset'
wel eerst een poging doen om op Peach3 in te loggen met je eigen 'Login Name'
(hierdoor wordt nl. je Peach2 account automatisch omgezet in een
Peach3 account).
Hoe koppelen aan juiste groep in Peach3?
- Om te kunnen koppelen aan vakken moet je
geregistreerd zijn bij Peach3.
- Na inloggen kun je bij Peach3
jezelf via Profile (rechtsboven) koppelen
in de Realm Werktuigbouwkunde (Bachelor)
aan het vak 4ZZ22 Training Programmeren 2007/2008.
Hoe kan ik het resultaat van een koppelgenoot zien?
Dat kan in de huidige versie van Peach3 helaas niet.
Je kan alleen resultaten zien van werk dat je zelf hebt ingezonden.
Vraag het dus aan je koppelgenoot.
(Het is toch verstandig daar regelmatig contact mee te hebben. :-)
Zend opmerkingen over deze pagina aan
Tom Verhoeff