Introduktion till programmering. Undervisning. Litteratur och examination. Lärare. Föreläsning 1



Relevanta dokument
Funktionell programmering. Haskell. Ge#ng started...

Objektorienterad Programmering (TDDC77)

UNIX Introduktion UNIX. Datorerfarenhet. Vad menar man med operativsystem

Introduktion till programmering. Standardfunktioner. Vad används datorer till? Standardfunktioner. Föreläsning 2. Prelude. $ ghci...

Kort-kort om utdelade användarkonton och datormiljön på NADA

Operativsystem och användargränssnitt

Datorsystem och programmering

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

Mjukvara Konsolfönstret i Windows och lite andra saker. Momentet ingår i kursen PDA DTR1206

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Datorintroduktion 2009 Föreläsning 1. Dieter Larsen (IT-chef Matematiska vetenskaper)

Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman

Undervisning. Examination

Datorintroduktion 2010 Föreläsning 1. Dieter Modig

Introduktion till datoranvändning. Välkomna till NADA. (Numerisk Analys och DAtalogi) och kursen. Datalogi, grundkurs 1, 15hp

Föreläsning 2. Operativsystem och programmering

Konsolfönster i Windows Momentet ingår i kursen PDA DTR1206 Lab 1 DOS Konsolfönstret

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

Introduktionskurs i datavetenskap, 3p.

Övning Installation av Gentoo och/eller Arch Linux

Kurs-PM HI2011, Programutveckling i funktionella och objektorienterande spra k, P3 VT17

Introduktion till datormiljön och Python

DD1310 Programmeringsteknik för Open1 och Med2 Laborationer läsåret 2014/2015

Kort-kort om utdelade användarkonton och datormiljön på NADA

Föreläsning 2 sept 05 (Onsdag v 36). DD Chapter 2.

DD1361 Programmeringsparadigm. Carina Edlund

Föreläsning 1 Unix. Datorer och datoranvändning Föreläsningar 2018/19. Operativsystem. Unix

Undervisning. Examination

Introduktion till programmering, hösten 2011

Lab 7, 48 steg till ett bättre liv i Unix-labbet

Datorer och datoranvändning Föreläsningar 2014/15. Föreläsning 1 Unix. Operativsystem. Unix

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

Övningar för del I av kursen

GIT L0002B INTRODUKTION TILL PROGRAMMERING OCH C# Information inför kursstart

Administrivia. hh.se/db Verónica Gaspes (Kursansvarig) 2 Daniel Petersson (Labassistent) Examination. 1 Skriftlig tentamen (betyg)

Omkoppling av in- och utmatning. In- och utmatning i Unix. Kommando exempel, ls, pipe forts. Kommando exempel, ls, pipe

Operativsystem Introduktion

Lennart Rolandsson, Uppsala universitet, Ulrica Dahlberg och Ola Helenius, NCM

Administrivia. hh.se/db Verónica Gaspes (Kursansvarig) 2 Mattias Enervall (Övningsassistent) Examination. 1 Skriftlig tentamen (betyg)

Föreläsning 3. Programmering, C och programmeringsmiljö

Projekt Fake för Virtutech

TDDC77 Objektorienterad Programmering

Introduktion till hårdvara, mjukvara och operativsystem

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad

Lärare. Operativsystem. Handledning. Kurssajt. Schema. Lektioner. Jan Erik Moström

Pascal... Pascal. Pascal... Pascal...

Översikt 732G11 PROGRAMMERING 1. Personal. Kursens mål. Litteratur. Kursens innehåll

Men först: Några funktioner ur preluden. Introduktion till programmering. Uppgiften. Variationer av uppgiften. Föreläsning 4

Innehåll. Vad är MATLAB? Grunderna i MATLAB. Informationsteknologi. Informationsteknologi.

Pascal. reserverade ord fördefinierade funktioner och procedurer egendefinierade funktioner, procedurer och objekt

Välkomna till DIT012 IPGO

Introduktion till Unix och Linux

TDIU01 - Programmering i C++, grundkurs

DATORINTRODUKTION 2010 LABORATION 1

Introduktion till Linux. TDDC66 Datorsystem och programmering Föreläsning (i) Peter Dalenius Institutionen för datavetenskap

UNIX. 2D1339 Programkonstruktion Hösten 2001 Datorintroduktion Laboration 1. Mål. Vad laborationen går ut på. Redovisning

GIT L0006B. C# och Windowsbaserad applikationsutveckling. Information inför kursstart

Grundkurs i programmering - intro

Välkomna till NADA. Datalogi, grundkurs 1, 15hp. (Numerisk Analys och DAtalogi) och kursen. DA2001 (Föreläsning 1) Datalogi 1 Hösten / 28

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Introduktion till Linux. TDDE23 Funktionell och imperativ programmering, del 1 Föreläsning 1 Peter Dalenius Institutionen för datavetenskap

Kompilera och exekvera Javakod

Fö 7: Operativsystem. Vad är ett operativsystem? Målsättning med operativsystem. Styr operativsystemet datorn?

Introduktion till Linux. TDDC66 Datorsystem och programmering Föreläsning 1 Peter Dalenius Institutionen för datavetenskap

Välkomna till NADA. Datalogi, grundkurs 1, 15hp. (Numerisk Analys och DAtalogi) och kursen. DA2001 (Föreläsning 1) Datalogi 1 Hösten / 28

Kursansvarig. Välkomna till NADA. Datorn som verktyg. Datalogi, grundkurs 1, 15hp

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion

Föreläsning 1: Introduktion till kursen

Språket Python - Del 1 Grundkurs i programmering med Python

Instruktion för laboration 1

Instruktioner för att kunna programmera på skolans datorer

Lite om reella tal. Programmering. I java. Om operatorers associativitet och prioritet

OBS! Snabbinsatt Matlab-intro vissa fönsterhanteringsdetaljer kan vara fel men gör gärna Matlab-uppgifterna. DN1240, Numeriska metoder för OPEN1.

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk:

UNIX. Laborations-PM Anders Egneus, Henrik Lindgren, 2004, Raphael Corsoski, Erik Eliasson, Christian von Schultz, 2008.

4.3. Programmering i MATLAB

Praktiska saker... Om Laboration 1. Studietips. Praktiska saker. Att studera hemifrån på PC. Seminarier & Lektioner & Handledning & Hemsida

i LabVIEW. Några programmeringstekniska grundbegrepp

DN1240, Numeriska metoder. Laboration 0 (frivilliga delar) (dvs uppgifterna behöver inte redovisas) Introduktion till UNIX och MATLAB

DD1314 Programmeringsteknik

Objektorienterad Programmering (TDDC77)

Lab1 inginfo07. Detta dokument innehåller övningar för introduktion till Media-programmets datorsystem (Mac OS X).

729G04 Programmering och diskret matematik. Python'1:'Labbmiljö'och'introduk7on'7ll'Python'

SMD 134 Objektorienterad programmering

DATORLÄRA Christophe Clément - Fysikum

DN1212, Numeriska metoder & grundläggande programmering. Laboration 1 del 1-3 (frivilliga delar) Del 1-3 (dvs upg ) behöver inte redovisas

Outline. Objektorienterad Programmering (TDDC77) Kursinfo. Outline. Hemsida. Organization. Ahmed Rezine Examination. Webreg.

DD1310 Programmering för OPEN1 LAB1: Laborationer i Python läsåret 2011/2012

Operativsystem. Innehåll. Operativsystemets funktion. Vad är ett OS? Vart hittar men ett OS? OS hanterar processorns resurser

Instruktion för användande av Citrix MetaFrame

HI1024 Programmering, grundkurs TEN

DD1310/DD1314/DA3009 Programmeringsteknik LÄRANDEMÅL... Vilka läser kursen? ...FLER LÄRANDEMÅL. Föreläsning 1

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

DDR PC SOFTWARE 2 RELEASENOTES VERSION 2.5. Swerob Service AB Global Robot Parts AB

MATLAB-modulen Programmering i MATLAB. Höstterminen hp. Vad är MATLAB

Utsagor (Propositioner) sammansatta utsagor sanningstabeller logisk ekvivalens predikat (öppna utsagor) kvantifierare Section

Grundläggande datavetenskap 4p

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Låt ipad bli fjärrkontroll för din Mac

Transkript:

Kursinfo Introduktion till programmering Undervisning Föreläsning 1 Kursinformation Inloggning, filsystem, kommandotolk några inledande exempel Föreläsningar Fem föreläsningar, vardera 45 minuter. Allmänna begrepp, exempel, demonstrationer. Labbhandledning Fem tretimmarspass, direkt efter varje föreläsning Bokade arbetsplatser och handledare på plats. Examination genom att visa lösta uppgifter för handledaren. Kursinfo Lärare Kursinfo Litteratur och examination Föreläsningar Emil Axelsson (kursansvarig) John Hughes Labbhandledning Staffan Björnesjö Alexander Sjösten Arash Rouhani Bartolomeus Jankowski Christopher Svanefalk Oscar Utbult Anton Ekblad Kurslitteratur Denna och nästa kurs är avsedda att klaras enbart med material från kursernas webbplatser. För den som ändå önskar en bok finns: Simon Thompson: ; The Craft of Functional Programming, 2nd ed. Examination Till varje övningspass finns en sida med några obligatoriska uppgifter. Dessa löses och visas för handledaren innan övningspassets slut. Ni arbetar med uppgifterna två och två; arbetsplatserna räcker inte till att arbeta individuellt.

Kursinfo Lärandemål Hård- och mjukvara Ur kursplanen Efter kursen ska ni kunna utveckla enklare små program i ett funktionellt programmeringsspråk, exempelvis. använda studentdatorer på ett sätt som efterföljande kurser kräver. Olika namn Hårdvara (hardware) = maskinvara; mjukvara (software) = programvara. Olika lager Mjukvara Användarprogram (Firefox, emacs, ghci, itunes) Begränsningar Ni kommer inte alls att förstå allt om, dess typer och uttrycksformer efter denna kurs. Kursen Introduktion till funktionell programmering i läsperiod 1 går igenom allt mycket noggrannare. Hårdvara Operativsystemet (Windows, Linux, Mac OS X) Datorn (PC, Mac, ipad, PS3) Operativsystemet Huvuddelarna i Många snarlika versioner Första versionen 1970. Känns numera under namnen Linux, Mac OS X, SunOS, BSD... Fungerar på alla sorters maskiner. Populärt bland professionella programmerare och datavetare användaren kan lätt programmera systemet. relativt bra säkerhet. "känns rätt" p.g.a. enkelhet, tydlighet, modularitet, ortogonalitet, öppenhet Kärnan (eng. kernel): närmast hårdvaran. Filsystemet: kataloger och filer. Kommandotolken (eng. shell): närmast användaren. Dessutom: drivrutiner. fönstersystem. nätverksanslutning.

Grafiskt resp textbaserat gränssnitt Kommandotolken [~/kurser/haskellintro]$ ls chalmers.pdf gu.pdf haskellintro.xlsx lectures/ old/ ovn0.pdf web/ [~/kurser/haskellintro]$ Textbaserat gränssnitt i terminalfönster Vanliga kommandon: Kommando Effekt ls Lista filer i aktuell katalog ls dir Lista filer i dir cd Flytta dig till hemmakatalogen cd dir Flytta dig till dir mkdir dir Skapa en ny katalog dir more file Skriv ut innehållet i file på terminalen cp file. Kopiera file till aktuell katalog cp file dir Kopiera file till dir GHC(i) Några grundläggande typer I ett terminalfönster $ ghci GHCi, version 6.12.1: http://www.haskell.org/ghc/ Loading package ghc-prim... linking... done. Prelude> 3 + 5 * 7 38 Prelude> exp 1 2.718281828459045 Prelude> pi < sqrt 2 False Prelude> sin pi == 0 False Prelude> :? for help Enkla typer Namn Förklaring Exempel Integer Godtyckligt stora heltal 371, 0, -4 Int Heltal av begränsad storlek (< 2 10 9 ) 371, 0, -4 Double Flyttal ( reella tal ) 3.7, 4e9, -2 Bool Sanningsvärden True, False Sammansatta typer [a] listor av element av typ a. (a,b) par bestående av ett a och ett b.

Operatorer Funktioner Aritmetik +, -, * För både heltal och flyttal (men bägge operanderna av samma typ). / Bara för flyttal. Exponentiering ("upphöjt till"). Jämförelser ==,/=,<,<=,>,>= För både heltal och flyttal (men bägge operanderna av samma typ). Funktioner i matematik En funktion f kan definieras genom t ex f (x) = (2x + 3)/(x + 2) Vi kan sedan använda f på följande sätt: f (8) = (2 8 + 3)/(8 + 2) = 1.9 Funktioner i I skulle vi skriva f x = (2*x+3)/(x+2) i en fil MyProgram.hs och sedan ladda in filen i ghci: Prelude> :load MyProgram.hs Main> f 8 1.9 Main> Logiska operatorer &&, "och" respektive "eller". Observera I ghci kan vi skriva uttryck, vars värde beräknas och skrivs ut. Definitioner skrivs i en fil, som sedan laddas in i ghci. Olika sätt att bygga listor Interaktion med ghci Prelude> [1,7,4,6] [1,7,4,6] Prelude> [1..10] [1,2,3,4,5,6,7,8,9,10] Prelude> [5..] [5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23, 24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40, 41,42,43,44,45,46,47,Interrupted Prelude> [1,4..30] [1,4,7,10,13,16,19,22,25,28] Prelude> [x * x x <- [1..10]] [1,4,9,16,25,36,49,64,81,100] Prelude> [x x <- [1..99], mod x 10==7 div x 10==7] [7,17,27,37,47,57,67,70,71,72,73,74,75,76,77,78,79,87,97] Listsammanfattningar (eng. list comprehensions) Ett kraftfullt sätt att bygga nya listor Givet att vi redan har en lista xs = [x 1, x 2,... x n ], så kan vi bilda nya listor på följande sätt: [ f x x <- xs ] Resultatet är listan [f (x 1 ), f (x 2 ),... f (x n )], som också har n element. [ x x <- xs, p x ] Resultatet är listan av de element x i listan xs, för vilka villkoret p x blir True. Denna lista har högst n element. [ f x x <- xs, p x ] En kombination av ovanstående: välj först ut de element i xs som uppfyller villkoret p, använd sedan funktionen f på dessa för att bilda den nya listan.

Par och tabeller Par Vi kan bilda värden som består av ett par av två (enklare) värden: Prelude> (2^3,3*5) (8,15) Prelude> Tabeller En lista av par kan vi se som en tabell. Exempel: En tabell över kvadratrötter av talen mellan 1 och 100 [( n, sqrt n) n <- [1..100]] När vi talar om tabeller tänker vi oss dem kanske som prydligt formatterade i två (eller flera) kolumner. Vi får återkomma till detta. Delbarhet och primtal Heltalsdivision För heltalsdivision mellan två heltal fås kvoten med div och resten med mod: Prelude> div 13 5 2 Prelude> mod 13 5 3 Delbarhet Vi säger att m är delbart med n om mod m n == 0. Faktorerna i m är de tal som m är delbart med. Primtal Ett primtal är ett heltal > 1, som bara har 1 och sig själv som faktorer. Nu: övning! Ni ska nu gå till labbsalen för att själva öva det vi talat om. Det enda sättet att lära sig programmering är genom övning! Labbsal Handledare Antal datorer 3354 Staffan 14 3358 Arash 14 3507 Chistopher och Oscar 20 5355 Anton 18 6225 Alexander och Bartolomeus 20