Programmeermethoden NA. Week 1: Introductie

Vergelijkbare documenten
Python voor Natuur- en Sterrenkundigen Week 1

XPcpelmmuttelsecoutmainRedHatmkdireditorenumDebian. classusingmathunitytruecpsusenamespacestructinclude

Programmeermethoden NA. Week 5: Functies (vervolg)

studievaardigheden studentassistent: Alice de Vries werkcollege / practicum

LINUX ZORIN. een alternatief voor MS Windows

Raspberry Pi VOOR KIDS. Richard Wentk

Programmeermethoden NA. Week 5: Functies (vervolg)

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

Cursus Programmeren en Dataverwerking.

Programmeermethoden NA. Week 3: Controlestructuren

Games met Lua en Löve2D

Een spoedcursus python

Introductie Informatica

BSc Kunstmatige Intelligentie. : Bachelor Kunstmatige Intelligentie Studiejaar, Semester, Periode : semester 1, periode 2

DE ASTRO PI PROGRAMMEREN VOOR MISSION ZERO

Hoofdstuk 1. Introductie. Wat is icloud?

Programmeermethoden NA

Programmeermethoden NA. Week 2: Types

Introductie Informatica

Van dvd naar webserver. Marcel Nijenhof 18 Juli

Programmeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 22 april 2014

Voordat je begint, lees je eerst deze bladzijden. Daarna weet je precies hoe je dit boek gebruikt.

Programmeermethoden. Controle-structuren. Walter Kosters. week 3: september kosterswa/pm/

UBUNTU. Vandaag had ik voorzien om een opstart-cd of usb te maken om je pc op linux op te starten. Open source. Gratis software UBUNTU

De computer, software

Internetfilter HTTPS instellen

TELEPORTEREN MET VARIABELEN

Module 3: Scratch programmeren: is het logisch of is het niet logisch?

Inhoudsopgave Voorwoord 5 Voordat je begint 6 Wat heb je nodig? 7 De website bij het boek 7 Voor ouders, verzorgers en leraren

Linux Wat is Linux? UNIX Mainframes UNIX

Handleiding. Certificaat installeren

WORKSHOP ORANGE PI & PYTHON v september 2017

Handleiding Certificaat installeren

Windows XP Migratie opties. Bart van Dijk

MINICURSUS PHP. Op dit lesmateriaal is een Creative Commons licentie van toepassing Sebastiaan Franken en Rosalie de Klerk Bambara

1. icloud instellen icloud op de iphone of ipad icloud op de Mac Achtergrondinformatie... 19

Software. Opdrachten - Deel 1. Naam: Klas: 2015 versie:concept-3.4.2

Software hoofdstuk Wat is de functie van een besturingssysteem? 2. Welke hoofdtaken heeft het besturingssysteem?

Handleiding. Handleiding

Handleiding. multimediafilter ISA. Windows Windows Phone Mac / Linux iphone / ipad Android

owncloud Het alternatief tegen grote gluurders

Handleiding installatie en gebruik. Ahsay OBM. Windows server Apple OS X Linux en UNIX-varianten

MS Virtual pc 2007 Handleiding

Raspberry Pi Plex server installeren

APPLICATIEBOUW 1E COLLEGE: INTRODUCTIE. Onderdeel van SmartProducts

Aanmelden Na installatie wordt de service automatisch gestart en kunt u meteen aanmelden van op afstand:

Studiewijzer BACHELOR KUNSTMATIGE INTELLIGENTIE EXTRA KEUZENVAK VAK: C++ PROGRAMMEERMETHODEN

Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby?

Handleiding bij de Booktest Generator

Albert-Jan de Croes & Stefan Willemink V4C Docent: Mevrouw van Uden

HET BESTURINGSSYSTEEM

2. Syntaxis en semantiek

Handleiding Remote Werkplek

Algemene computerhandleiding

2. Syntaxis en semantiek

Handleiding. Certificaat installeren

Installatie Software - Opdrachten Les 2

Handleiding. Handleiding

Hoofdstuk 1 Wat zijn apps eigenlijk?

Vakinhoudelijke uitwerking Keuzevak Applicatieontwikkeling van het profiel MVI vmbo beroepsgericht

MINDSTORM LEGO ROBOTS

Nieuwe cursussen. Ons aanbod in dit voorjaar 2016:

ID Handleiding: Externe toegang Multiversum via MultiFactor Authenticatie ( MFA )

JavaScript. 0 - Wat is JavaScript? JavaScript toevoegen

Handleiding toegang op afstand van de gemeente Sittard-Geleen. De 1 e keer gebruik maken van de toegang op afstand :

Inhoud Wat is mobiel werken?... 2 Installeren VPN Client... 3 Laptop... 3 Windows Windows Mac OS X Linux Tablet...

Erik Poll Martijn Warnier.

Vakgroep CW KAHO Sint-Lieven

Open Safari op de Mac, ga naar de webpagina en klik op SSH scripts Mac OS X : Figure 1 SSH scripts downloaden

Studiewijzer. Bachelor Informatica. Inleiding Programmeren Studiejaar en semester: jaar 1, semester 1 (blok 1)

Seven segments of Pi

Overzicht. Tekstmanipulatie. Doel van de cursus. Doel van de cursus. Tekstmanipulatie: tekst automatisch bewerken en onderzoeken. Waarom Linux?

Google chrome(books) in de les wiskunde. Dag van de wiskunde 1e en 2e graad 26 november 2016 Paul Decuypere

INHOUDSOPGAVE. Over de auteur, de illustrator en de technische redacteuren 13

Linux en Open Source

Modelleren en Programmeren

Programmeermethoden NA. Week 10: NumPy, ipython, Python module showcase

Zo gaat jouw kunstwerk er straks uitzien. Of misschien wel heel anders.

Inhoudsopgave Voorwoord 5 Introductie Visual Steps 6 Wat heeft u nodig? 7 Uw voorkennis 7 Nieuwsbrief 7 Hoe werkt u met dit boek?

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET

Informatievaardigheden Introductie EndNote

Office Installatie instructies. Voor de leerlingen van het Heerbeeck College en het Kempenhorst College

Externe USB drive versleutelen onder Windows

DE INTERACTIEVE SHELL

1 Besturingssysteem. 1.1 Wat is een besturingssysteem? 1.2 Verschillende besturingssystemen. 1.3 Windows, verschillende versies

APPLICATIEBOUW 1E COLLEGE: INTRODUCTIE. Onderdeel van SmartProducts

Raspberry Pi de eerste stappen.

Data Safe I (Serial ATA) Externe vaste schijf met USB 2.0. Handleiding

DOCENTENHANDLEIDING JET-NET WEBCAST

Hoofdstuk 2. - is verantwoordelijk voor de communicatie van de software met de hardware.

Externe USB drive versleutelen onder Linux

Transcriptie:

Programmeermethoden NA Week 1: Introductie Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/

Even voorstellen... Het hoorcollege wordt verzorgd door de docent: Kristian Rietveld Het werkcollege wordt verzorgd door de studentassistenten: Pim Bax, Hanjo Boekhout, Jelmer de Boer, Koen Griffioen.

Doelstelling Doel van het vak: Leren programmeren; leren gebruiken van een programmeertaal in een wetenschappelijke context. Waarom leren programmeren? - Taken automatiseren, zoals bijv. data-analyses. - Bedenk je dat de volumes aan data die tegenwoordig worden verzameld dermate groot zijn, dat deze niet meer met de hand kunnen worden verwerkt. - Plots maken die mooier en complexer zijn dan Excel. - Alles wat je hier leert gaat je later tijd schelen!

Programmeren? Computers en smartphones lijken magie, maar het zijn eigenlijk domme apparaten. Een computer moet worden voorzien van (overduidelijke) stap-voor-stap instructies. - U mag raden wie er voor deze stap-voor-stap instructies verantwoordelijk zal zijn.

De programmeertaal Een computer verwacht dat de uit te voeren instructies worden aangeleverd in een binaire code. Het met de hand schrijven van deze binaire codes is zeer tijdrovend (en heel vervelend).

De programmeertaal (2) Informatici hebben daar iets op verzonnen: programma's om een door de mens leesbare tekst om te zetten naar deze binaire codes. Deze door de mens leesbare tekst is een tekst geschreven volgens de regels van een bepaalde programmeertaal. Er bestaan honderden verschillende programmeertalen. Welke taal kiezen we dan?

Python: wat en waarom? Het hele college staat in het teken van het leren van de programmeertaal Python. - Deze taal is ontworpen door Guido van Rossum eind jaren '80 / begin jaren '90. - Eenvoudig & portable (werkt op zowat alle systemen). - Complexe bewerkingen in maar enkele regels code -- hierdoor een ultiem gereedschap! (perfect voor luie mensen). - Zeer populair geworden in de laatste tien jaar, met name voor wetenschappelijke toepassingen. Informatica/Wiskunde werken bij het vak Programmeermethoden met de taal C++.

Waarom zo populair? Zeer uitgebreide standaard bibliotheek. Eenvoudig om uitbreidingen te schrijven en deze uit te wisselen met anderen. Er zijn vele modules ontwikkeld voor het doen van numeriek rekenwerk en maken van plots. Hierdoor zeer populair in verschillende wetenschappelijke disciplines.

Colleges & werkcolleges Hoorcolleges: - Dinsdagen, 9:00 10:45 uur (incl. 15 minuten koffiepauze). - Laatste keer: 22 november. - Week pauze: 25 oktober. - Locatie: De Sitterzaal. Werkcolleges: - Direct aansluitend: dinsdagen, 11:15 13:00 uur. - Locatie: computerzalen begane grond Snellius gebouw. - Veelal in het teken van de programmeeropdrachten. - Aanwezigheidscontrole!

Gebouwen campus FWN Computerzalen Snellius Ingang Snellius Pas op fietsers! U bent hier

Toetsing De toetsing van dit vak bestaat uit twee delen: - 1. Een schriftelijk tentamen. 2/3 van het eindcijfer. - 2. Een programmeerpracticum. 1/3 van het eindcijfer. Het tentamen zal plaatsvinden op: - Vrijdag 16 december, 14:00 17:00 uur. - Hertentamen: vrijdag 27 januari 2017, 14:00 17:00 uur. Vak op deze wijze dit jaar voor het eerst. We zullen ruim van te voren een representatief oefententamen beschikbaar maken.

Toetsing (2) Het programmeerpracticum bestaat uit 3 (drie) opdrachten. De deadlines zijn als volgt: - Opdracht 1: vrijdag 23 september, 17:00 uur. - Opdracht 2: vrijdag 21 oktober, 17:00 uur. - Opdracht 3: vrijdag 25 november, 17:00 uur. In te leveren per e-mail en een print van het verslag (incl. code) in de doos in kamer 156 van het Snellius (postkamer informatica).

Toetsing (3) Hoe komen we tot een eindcijfer? - Alle programmeeropgaven moeten voldoende zijn (>= 5.5). - Het tentamen moet voldoende zijn (>= 5.5). Eindcijfer = (2*tentamen + (op1 + op2 + op3) / 3) / 3 Het eindcijfer wordt afgerond naar het dichtstbijzijnde element uit de verzameling {1, 2, 3, 4, 5, 6, 6.5, 7, 7.5, 8, 8.5, 9, 9,5, 10}. Als het cijfer van het schriftelijk tentamen onvoldoende is, is dit meteen het eindcijfer!

Programmeeropdrachten mogen geworden gemaakt in tweetallen. toegestaan: overleggen en om hulp vragen. niet toegestaan: overnemen/kopiëren code van anderen. - Hier wordt automatisch op gecontroleerd. zie de website voor huisregels en richtlijnen. deadlines zijn strict! (-1 punt per week te laat). deels maken tijdens werkcolleges; deels thuis. Vragenuren in de computerzalen: di/do circa 15:30 17:00 uur.

De eerste colleges Week 1: 5 9 september - Onderwerp: Introductie, UNIX, Python Week 2: 12 16 september - Onderwerp: Types Week 3: 19 23 september - Onderwerp: Controlestructuren - Deadline opdracht 1!

Literatuur Het vak heeft geen voorgeschreven boek. Er is een dictaat dat in principe alle stof behandelt, zal verkrijgbaar zijn op de website. Zelf printen. Alle slides/sheets gebruikt tijdens hoorcollege zullen op de website terug te vinden zijn. Verschillende andere handouts. Website bevat ook links naar andere bronnen: - Bijv. de Python tutorial. - 'Gratis' boeken in PDF formaat.

Operating Systemen Naast Microsoft Windows kunnen PCs ook draaien onder Linux, een operating systeem (OS) uit de UNIX-wereld (vergelijk Android). De besturingssystemen van Apple (macos, ios) zijn ook gebaseerd op UNIX. De computers in het Snellius draaien zowel Windows als Linux ( dual-boot ). Keuzemenu bij het opstarten. Onder Linux staat alles wat je voor Python nodig hebt al klaar.

Ubuntu

Thuis programmeren En wat nu als je thuis wilt werken aan het practicum? - Heb je een Mac? Alles staat in principe al klaar. - Linux? Haal bijvoorbeeld Ubuntu van http://www.ubuntu.org Huidige versie 16.04, binnenkort 16.10. Met een Ubuntu Live-CD/DVD/USB start je PC meteen op in Unity, een grafische windows-omgeving bovenop Linux. Of gebruik KDE of GNOME. Let er op dat je op een verstandige plaats (USB/e-mail/cloud) je bestanden moet opslaan. (Beter: dual boot). Er zijn vele andere distributes (SUSE, Fedora Core, Debian, Arch, Gentoo,...) -- maar dan moet je er meer vanaf weten. (Of koop een Raspberry Pi? )

Thuis programmeren (2) - Windows? Standaard geen Python meegeleverd, download en installeer een Python distributie. Bijv. Enthought Canopy Express (https://www.enthought.com/canopysubscriptions/) Komt inclusief handige code editor! Bron: https://xcorr.net/2013/04/30/canopy-scientific-python-editor-for-windows/

Ons eerste programma Een werkend Python-programma maken gaat als volgt: - 1. Schrijf in een editor Python-code, het bron-programma. - 2. Sla het programma op, bijvoorbeeld eerste.py. - 3. Draai (= run) dit programma (of ook wel script genoemd) vanuit het OS: python eerste.py - 4. Er kunnen verschillende fouten optreden, ga terug naar 1. om deze te verhelpen. - Herhaal deze cyclus zo vaak als nodig.

Ons eerste programma (3) print "Dit komt op het scherm." Dit programma zet alleen een tekstje op het beeldscherm. Let op de syntax-highlighting. Bij print alleen kleine letters gebruiken! (Anders: SyntaxError).

Ons tweede programma # dit getal print getal print is een simpel programma = 42 # een variabele declareren en initialiseren "Geef een geheel getal..", = int(raw_input()) "Kwadraat is:", getal * getal

Ons derde programma # Dit is een regel met commentaar... import math # voor de "pi" constante print "Geef straal, daarna Enter..", straal = float(raw_input()) if straal > 0: print "Oppervlakte:", print math.pi * straal * straal else: print "Niet zo negatief..." print "Einde van dit programma."

Ons derde programma # Dit is een regel met commentaar... import math # voor de "pi" constante print "Geef straal, daarna Enter..", straal = float(raw_input()) if straal > 0: print "Oppervlakte:", print math.pi * straal * straal else: print "Niet zo negatief..." print "Einde van dit programma." Commentaarregels

Ons derde programma # Dit is een regel met commentaar... import math # voor de "pi" constante print "Geef straal, daarna Enter..", straal = float(raw_input()) if straal > 0: print "Oppervlakte:", print math.pi * straal * straal else: print "Niet zo negatief..." print "Einde van dit programma." Keywords

Ons derde programma # Dit is een regel met commentaar... import math # voor de "pi" constante print "Geef straal, daarna Enter..", straal = float(raw_input()) if straal > 0: print "Oppervlakte:", print math.pi * straal * straal else: print "Niet zo negatief..." print "Einde van dit programma." Inspringen (indentation). Dit moet consistent gebeuren!

Ons derde programma # Dit is een regel met commentaar... import math # voor de "pi" constante print "Geef straal, daarna Enter..", straal = float(raw_input()) if straal > 0: print "Oppervlakte:", print math.pi * straal * straal else: print "Niet zo negatief..." print "Einde van dit programma." Manier om geen nieuwe regel op het beeldscherm af te drukken.

Mogelijke fouten Wat voor fouten kunnen er optreden bij het draaien van een programma? Bij het inlezen van het programma: - SyntaxError : de syntax van het programma klopt niet, er staat bijv. een haakje verkeerd, elze in plaats van else, etc. - IndentationError : er is verkeerd ingesprongen (komt later aan bod). Bij het uitvoeren van het programma: - NameError : er worden variabelen gebruikt die niet zijn gedefinieerd, - ValueError : ongeldige conversie, - delen door 0. - enz.

Eerste programmeeropgave De eerste programmeeropgave heet IQ. http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/opdr1.html Eerste kennismaking met programmeren en Python. Je moet onder meer voor een gegeven datum de dag van de week uitrekenen. - Bijvoorbeeld op basis van het gegeven dat 1-1-1901 een dinsdag was. - Hoe zou je dat uit je hoofd doen? - Wanneer is een jaar een schrikkeljaar? Naast het programmeerwerk dient er ook een kort verslagje te worden geschreven met behulp van LaTeX.

Stoomcursus UNIX In een grafische Linux omgeving zoals KDE, GNOME of Unity, start je een of meer terminals. Een terminal is een window waarin je tekst-georiënteerde opdrachten kunt geven aan het operating systeem. Bijvoorbeeld: gedit eerste.py & python eerste.py ls -lrt - edit je eerste Python-programma; open hiertoe een edit-window - draai het programma met de interpreter - overzicht van je bestanden De ampersand (&) zorgt er voor dat je in het oorspronkelijke terminalwindow kunt doorwerken. Het overzicht van bestanden ziet eruit als: -rw-------rw------- 1 kris 1 kris staff staff 20 Sep 83 Sep 2 14:27 eerste.py 2 14:27 tweede.py

De Python interpreter De Python interpreter kan ook interactief worden gebruikt. - Handig om dingen snel uit te proberen. - Of als superrekenmachine. (Demo)

Inloggen in het Snellius Hoe kunnen we inloggen op de computers in het Snellius? Iedereen gebruikt zijn/haar ULCN-account. - Stel een forward in voor e-mails! Hoe kom je vanaf huis bij je bestanden? - Antwoord: ssh-en en scp-en naar: sxxxxxxx@sshgw.leidenuniv.nl - en dan naar homedir. Of een USB stick, e-mail, cloud,... Meer informatie: dictaat Computers en programmeren op de website.

Aansluitend werkcollege 11:15-13:00 uur Snelliusgebouw: alle computerzalen begane grond. Aanwezigheidscontrole; lijst komt vanzelf langs. Doel: UNIX, hello world,... http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/prna-wc1.html

Afsluitend Hello world in Python. Dictaat volgt snel. ULCN-account. Stoomcursus UNIX (volgende week meer). Software voor thuis. De eerste programmeeropgave. Website: http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/