Introduktion till Ruby
|
|
- Christer Ström
- för 6 år sedan
- Visningar:
Transkript
1 Introduktion till Ruby TDP007 Konstruktion av datorspråk Föreläsning 1 Peter Dalenius Institutionen för datavetenskap
2 Översikt över dagens föreläsning Vad går kursen ut på? Hur kommer vi arbeta? schemat i grova drag förutsättningar för laborationer och seminarier Introduktion till programspråket Ruby
3 Övergripande frågor Hur konstruerar man ett datorspråk? Vad är ett datorspråk egentligen? Varför skulle man vilja konstruera ett nytt språk? Hur vet man om ett språk är bättre än ett annat?
4 Lärandemål Förklara och använda reguljära uttryck Använda verktyg för hantering av uppmärkningsspråk (t.ex. XML) Använda och modifiera en tolk för ett enklare programspråk Redogöra för och tillämpa grundläggande principer för design av datorspråk
5 Kursens upplägg Introduktion till Ruby Strukturerad text och XML Domänspecifika språk och parsning Alternativa beräkningsmodeller och constraint propagation
6 Arbetssätt För var och en av kursens fyra delar: föreläsningar laborationer inlämning av uppgifter (hårda deadlines!) förberedelser inför seminarier (kort tid!) seminarium (obligatorisk närvaro!)
7 Laborationer inför seminarierna Uppgifterna finns på kurswebben under Seminarier. Labbassistent: Torbjörn Lönnemark. Labbar i Studio IP1. Labbar genomförs i slumpmässigt hopsatta par. (Se indelning i Webreg.) Se till att få kontakt med din labbpartner så snart som möjligt! Uppgifterna skickas in via hemsidan senast en viss deadline. Förutom svar på uppgifterna ska även enhetstester och en utvecklarblogg bifogas.
8 Utvecklarblogg Reflektioner kring hur det är att lära sig ett nytt språk (Ruby): Hur har ni gått tillväga för att lära er Ruby? Vilka fel och misstag har ni gjort under tiden? Vad finns det för nya konstruktioner i Ruby som ni inte sett förut? Vad finns det för konstruktioner som ni känner igen men som ser lite annorlunda ut? Finns det något som ni irriterar er på eller tycker om i Ruby? Reflektioner kring de olika tekniker som ni stöter på: Hur användbart verkar detta vara? Hur lätt/svårt är det att sätta sig in i? Har ni hittat alternativa källor för att ta reda på nya saker? Dokumentation av hur ni har tänkt när ni arbetat fram era lösningar: Vad arbetade ni med (i grova drag) vid varje labbpass? Hur har ni tolkat uppgiften? Vad var svårt eller lätt med uppgiften?
9 Seminarier Förbered opposition av annan grupps lösningsförslag Utvalda grupper presenteras vid seminariets början Opposition i labbpar: presentation av lösningen i grova drag kommentarer kring tolkning av uppgiften och användning av tekniker kommentarer kring kodningsstil, tester och utvecklarblogg Obligatorisk närvaro vid seminarier! Varje labbpar opponerar minst en gång, antagligen två.
10 Seminarieschema v.5 onsdag 29/ v.7 onsdag 12/ v.9 onsdag 26/ v.11 onsdag 12/ Deadline för inlämning är måndagen innan seminariet kl
11 Examination Labbar och seminarier utgör den ena delen av kursen (LAB1, 2hp) Duggor och/eller tenta utgör den andra delen av kursen (DAT1, 4hp) och ligger till grund för individuellt betyg. Två duggor, två timmar vid dator, två gånger under kursen. Om man inte blir godkänd finns en fyratimmars datortenta efter kursen.
12 Tidigare utvärderingar och förändringar År Betyg Förändringar som gjordes efter kursen ,46 Inga större förändringar ,78 Inga större förändringar ,29 Ny uppgift inför seminarie ,91 Bättre instruktioner angåe enhetstester och utvecklarbloggar ,50 Förtydligande av ett flertal seminarieuppgifter ,69 Byte av lärare, delvis andra typer av tentauppgifter 12
13 Några fler detaljer Kurslitteratur: Programming Ruby 1.9 & 2.0 av Dave Thomas Läs instruktioner på kursens webbsidor!
14 Introduktion till Ruby Hur man startar och använder Ruby. En icke heltäckande snabbgenomgång av några utvalda detaljer i Ruby.
15 Ruby konstruerades 1993 av japanen Yukihiro "Matz" Matsumoto. är ett objektorienterat språk med influenser från bl. a. Perl, Smalltalk, Eiffel, Ada och Lisp. är interpreterat. har kommit att bli ett populärt språk, inte minst tack vare webbramverket Ruby on Rails.
16 Hur man använder Ruby I våra Sun-PUL, skriv följande i ett terminalfönster: module add prog/ruby module initadd prog/ruby Starta interaktiv Ruby med irb Kör Ruby via Emacs
17 Interaktiv Ruby irb(main):001:0> puts "Hello!" Hello! => nil irb(main):002:0> 14+5 => 19 irb(main):003:0> def fun(a) irb(main):004:1> a+2 irb(main):005:1> => nil irb(main):006:0> fun(27) => 29 Starta med irb--simple-prompt för en mindre pratig prompt.
18 Ruby via Emacs
19 Ruby som scriptspråk zaza9 <1> cat hello.rb #!/bin/env ruby w puts Hello, world! zaza9 <2> hello.rb Hello, world! zaza9 <3>
20 Övning Logga in och installera Ruby med följande två kommandon: module add prog/ruby module initadd prog/ruby Starta en Ruby-intepretator och testa lite enkel Ruby-kod: irb Lägg till Ruby-inställningar i Emacs genom att lägga till följande rader i inställningsfilen.emacs (nconc load-path ( /home/tdp007/www-pub/material/ruby-emacs )) (require ruby-site) Starta Emacs och därefter en Ruby-interpretator inifrån Emacs, antingen med menyn Ruby Run Ruby eller med C-c C-s. (Funkar bara om man är i Ruby-läge, d.v.s. om man har öppnat en Ruby-fil.) Testa lite enkel Ruby-kod.
21 Allting i Ruby är objekt Uttryck Resultat 7.class Fixnum (3.14).class Float (3.14).round 3 gurka.length 5 gurka.class String krämen växer.gsub( r, j ) kjämen växej banan.gsub( a, ur ).length 7 [ apa, banan, lime ].length 3 [ apa, banan, lime ].reverse [ lime, banan, apa ] 1.+(2)
22 Klasser och arv Basklass class Person def name def greet "Hello, my name is Underklass class Matz < Person def initialize super( Yukihiro Matsumoto ) >> brian = Person.new( Brian ) => Brian > >> puts brian.greet Hello, my name is Brian. => nil >> puts Matz.new.greet Hello, my name is Yukihiro Matsumoto. => nil
23 Exempel på grundläggande syntax def multi_foo(count = 3) foo * count Metoder definieras med def och argumenten kan ha defaultvärden. >> multi_foo(4) => foofoofoofoo >> puts Hello, world! Hello, world! => nil >> This is #{multi_foo(2)}. => This is #{multi_foo(2)}. >> This is #{multi_foo(2)}. => This is foofoo. Man kan utelämna parenteser runt argument, om det inte blir tvetydigt. Konstanta strängar som definierats med dubbelt citationstecken kan innehålla undantag med programkod.
24 Mer om namngivning och syntax Variabler, metoder: i, max_count, db_connect Konstanter: MAX_AGE, LAST_THING Klasser: StudentList, Klassvariabler: Globala variabler: $glob, $1, $count Symboler: :name, :age
25 Arrayer >> [3, little', pigs"].join(' ') => "3 littlepigs" >> a = Array.new => [] >> a << 'some' << 'things' << 'app' => ["some", "things", "app"] >> a[1] => "things" >> a[0] = 17 => 17 >> a => [17, "things", "app"] >> Array.new(5,0) => [0, 0, 0, 0, 0] >> a = Array.new(2, 'Kalle') => ["Kalle", "Kalle"] >> a[0] << ' Karlsson' => "Kalle Karlsson" >> a => ["Kalle Karlsson", "Kalle Karlsson"] Exempel på array Skapa en array Åtkomst av enskilda element Array med defaultvärden Se upp med vad det är du pushar!
26 Arrayer som stackar eller köer print 'Array as stack: ' stack = Array.new() stack.push('a') stack.push('b') stack.push('c') print stack.pop until stack.empty? Arrayen kan användas både som en stack och som en kö, beroe på vilka metoder man använder. print "\n" print 'Array as queue: ' queue = Array.new() queue.push('a').push('b').push('c') print queue.shift until queue.empty? Array as stack: cba Array as queue: abc => nil
27 Hashtabeller >> h1={'one'=>1, 'two'=>2, 'three'=>3} => {"three"=>3, "two"=>2, "one"=>1} >> h1['one'] => 1 >> h2=hash.new => {} >> h2['gemstone']='ruby' => "ruby" >> h2['fruit']='banana' => "banana" >> h2 => {"gemstone"=>"ruby", "fruit"=>"banana"} >> h2={:june=>'perl', :july=>'ruby'} => {:july=>"ruby", :june=>"perl"} >> h2[:july] => "ruby" Med hashtabeller kan man enkelt slå upp information. Hur man skapar en hash och fyller den med innehåll. Ofta används symboler som nycklar.
28 Block och iteratorer En metod kan ta ett block som argument. Ett block är en bit kod som även innehåller den aktuella omgivningen. En iterator är en metod som tar ett block och kör det för varje element i t.ex. en array. >> ['i', 'am', 'a', 'donkey'].eachdo entry print entry, ' ' i am a donkey => ["i", "am", "a", "donkey"] >> fac= 1 => 1 >> 1.upto(5) do i fac*= i => 1 >> fac => 120 >> [1, 2, 3, 4, 5].map{ entry entry* entry} => [1, 4, 9, 16, 25] >> (0..100).inject(0) { result, entry result+ entry} => 5050
29 Olika sätt att skriva block [1,2,3,4,5].each do e puts e Använd block med do när sidoeffekterna (t.ex. utskrift) är det viktiga, eller när koden upptar flera rader. [1,2,3,4,5].map { e e * e } Använd block med { } när returvärdet är det viktiga.
30 Hur man skriver egna iteratorer def f(count, &block) value = 1 1.upto(count) do i value= value* i block.call(i, value) Blocket anges som sista argument och föregås av &. Blocket anropas med metoden call. f(5) do i, f_i puts "f(#{i}) = #{f_i}" f(1) = 1 f(2) = 2 f(3) = 6 f(4) = 24 f(5) = 120 => nil
31 Blocket kan sparas undan class Repeater def = = 0 def += Blocket anges som argument till konstruktorn och sparas i en instansvariabel. Blocket körs genom att anropa repeat, vilket också ökar på räknaren. repeater= Repeater.newdo count puts "You called me #{count} times" 3.times do repeater.repeat
32 Tilldelning >> a=4 => 4 >> a=b=4 => 4 >> file=file.open('c:\prov.txt') => #<File:c:\prov.txt> >> linecount=0 => 0 >> linecount+=1 while (line=file.gets) => nil >> a+=2 => 6 >> a=a+2 => 8 >> a,b=b,a => [4, 8] >> array=[1,2] => [1, 2] >> a,b=*array => [1, 2] En tilldelning returnerar alltid det tilldelade värdet, vilket gör att man kan koppla ihop dem. Tilldelningar kan användas som villkorsuttryck. Det finns genvägar för enkla tilldelningar. Parallell tilldelning Uppdelning av array
33 Villkor if (1 + 1 == 2) "Like in school." else "What a surprise!" "Like in school." if (1 + 1 == 2) "Surprising!" unless(1 + 1 == 2) (1 + 1 == 2)? Working : Defect spam_probability = rand(100) case spam_probability when then"lowest probability" when then"low probability" when then"high probability" when then"highest probability" Normal villkorssats Villkoret efter ett uttryck Snabbval Flera alternativ Endast nil och false är falska, alla andra värden är sanna, inklusive konstanten true.
34 Upprepning while(i<10) i*=2 i*=2 while(i<100) begin i*=2 while(i<100) i*=2 until(i>=1000) loop do break i if (i>=4000) i*=2 4.times do i*=2 r=[] for i in 0..7 next if i%2==0 r<<i (0..7).select { i i%2!=0 } Normal upprepning med test innan Upprepning efter uttryck Upprepning med test efter Uthopp ur loop vid godtycklig punkt Iterator Upprepning med for, samt överhoppning av vissa varv
35 Klassdefinitioner class Cell def = :empty class Board def initialize(width, = = = Array.new(height) { Array.new(width) { Cell.new} }
36 Åtkomst av egenskaper class Cell def class Cell attr_reader:state class Board def size self.width * self.height class Cell def class Cell attr_writer:state class Cell attr_accessor:state
37 Array-liknande åtkomstmetoder class Board def [](col, class Board def []=(col, row, = cell >> board = Board.new(8, 8) => >> board[0, 0] => >> board[0, 0] = Cell.new() => >> board = Board.new(8, 8) => >> board[0, 0] => >> board[0, 0] = Cell.new() => >> board[0, 0].state = :tower => :tower >> board[0, 0].state => :tower
38
Konstruktion av datorspråk
Konstruktion av datorspråk Fö1: Kursintroduktion och introduktion till Ruby Peter Dalenius petda@ida.liu.se Institutionen för datavetenskap Linköpings universitet Översikt Kursens målsättning Hur vi kommer
Konstruktion av datorspråk
Konstruktion av datorspråk Fö1: Kursintroduktion och introduktion till Ruby Peter Dalenius peter.dalenius@liu.se Institutionen för datavetenskap Linköpings universitet 2011-01-17 Översikt över dagens föreläsning
Introduktion till Ruby
Introduktion till Ruby TDP007 Konstruktion av datorspråk Föreläsning 1 Peter Dalenius Institutionen för datavetenskap 2017-01-16 2 Översikt över dagens föreläsning Vad går kursen ut på? Hur kommer vi arbeta?
Prova på-laboration i Ruby
Prova på-laboration i Ruby Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2008-08-06 1. Introduktion till objektorienterade språk Programmeringsspråket Ruby började
Mer om språk och Ruby
Mer om språk och Ruby TDP007 Konstruktion av datorspråk Föreläsning 2 Peter Dalenius Institutionen för datavetenskap 2014-01-21 Översikt över dagens föreläsning 1. Hur kan man bedöma ett språk? 2. Enhetstestning
TDP007 Konstruktion av datorspråk Hemtentamen
TDP007 Konstruktion av datorspråk Hemtentamen 2008-08-20 Hemtentamen är kompletterings- och omexaminationstillfälle för de studenter som missat hela eller delar av inlämningar och seminarier, moment LAB1,
Konstruktion av datorspråk
Konstruktion av datorspråk Fö2: Funderingar kring hur man kan bedöma programspråk samt några fler detaljer i Ruby Peter Dalenius peter.dalenius@liu.se Institutionen för datavetenskap Linköpings universitet
Domänspecifika språk. TDP007 Konstruktion av datorspråk Föreläsning 5. Peter Dalenius Institutionen för datavetenskap 2013-02-11
Domänspecifika språk TDP007 Konstruktion av datorspråk Föreläsning 5 Peter Dalenius Institutionen för datavetenskap 2013-02-11 Domänspecifika språk Ett domänspecifikt språk (eng. domain specific language,
Mer om språk och Ruby
Mer om språk och Ruby TDP007 Konstruktion av datorspråk Föreläsning 2 Peter Dalenius Institutionen för datavetenskap 2017-01-17 2 Översikt 1. Hur kan man bedöma ett språk? 2. Enhetstestning 3. Likhet i
TDDC74 Lab 04 Muterbara strukturer, omgivningar
TDDC74 Lab 04 Muterbara strukturer, omgivningar 1 Översikt I den här laborationen kommer ni att lära er mer om: Tillstånd, och skillnader mellan ren funktionell programmering och imperativ. Skillnaden
Deklarativ programmering
Kursens mål Deklarativ programmering Peter Dalenius petda@ida.liu.se Institutionen för datavetenskap Linköpings universitet 2008-02-26 redogöra för och använda reguljära uttryck använda XML för att definera
Deklarativ programmering
Deklarativ programmering TDP007 Konstruktion av datorspråk Föreläsning 7 Peter Dalenius Institutionen för datavetenskap 2014-03-03 Deklarativ programmering Program skrivet i ett deklarativt språk logikspråk,
Parsning. TDP007 Konstruktion av datorspråk Föreläsning 6. Peter Dalenius Institutionen för datavetenskap
Parsning TDP007 Konstruktion av datorspråk Föreläsning 6 Peter Dalenius Institutionen för datavetenskap 2017-02-14 2 Analys av källkod Lexikalisk analys Bildar tokensutifrån källkodens text. Syntaktisk
Backcode. Jonathan Crusoe TDP019 Projekt: Datorspråk Linköpings universitet
Žƒ ƒ Ž Ž ˆ ƒ ƒ ƒ Žƒ ƒ Ž ˆ Œ ŽŽ ƒ Backcode Jonathan Crusoe TDP019 Projekt: Datorspråk Linköpings universitet Innehållsförteckning 12-05-29 Inledning... 3 Användarhandledningen... 4 Klasser... 4 Metoder...
Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt
Föreläsning 2 Programmeringsteknik och C DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling
Exempel: Exempel: Exempel: Exempel: $djur=array("ko","katt","älg"); foreach ($djur as $d) { echo $d. " "; } Resultat. ko katt älg
Loopar och upprepning Vill man upprepa kod flera gånger så istället för att skriva en massa rader så kan man lägga koden i ett kodblock som man sedan loopar. Det finns ett par olika typer av loopar, FORloop,
Konstruktion av datorspråk
Konstruktion av datorspråk Fö4: Domänspecifika språk och parsning Peter Dalenius petda@ida.liu.se Institutionen för datavetenskap Linköpings universitet 2009-02-12 Domänspecifika språk Ett domänspecifikt
Användarhandledning Version 1.2
Användarhandledning Version 1.2 Innehåll Bakgrund... 2 Börja programmera i Xtat... 3 Allmänna tips... 3 Grunderna... 3 Kommentarer i språket... 4 Variabler... 4 Matematik... 5 Arrayer... 5 på skärmen...
732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning
Varför? 732G11 Linköpings universitet 2011-02-08 Varför? 1 2 3 Varför? 4 5 Medelvärde av 5000 tal Varför? while-loopen int nrofints = 5000; int [] integers = new int [ nrofints ]; int pos = 0; while (
TDP002 Imperativ programmering
TDP002 Imperativ programmering Introduktion till kursen och python Eric Elfving Institutionen för datavetenskap (IDA) Översikt Programmering En introduktion Python Köra och skriva program Python grunderna
PROMETHEUS. Ett typat, objektorienterat programmeringsspråk av Tim Andersson.
PROMETHEUS Ett typat, objektorienterat programmeringsspråk av Tim Andersson. Linköpings universitet TDP019 Projekt: Datorspråk Examinator: Anders Haraldsson, IDA Tim Andersson timan976@student.liu.se Utskriftsdatum:
F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander
F5 Selektion och iteration ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Boolska uttryck Boolska uttryck använder sig av jämförelseoperatorer < > = ==!= Resultatets datatyp är boolean
Programmering för språkteknologer II, HT2011. Rum
Programmering för språkteknologer II, HT2011 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv11/pst2/ Kursplan Mål Efter avslutad kurs skall studenten för att förtjäna betyget
Karlstads Universitet, Datavetenskap 1
DAV B04 - Databasteknik KaU - Datavetenskap - DAV B04 - MGö 229 PHP Hypertext Preprocessor Scriptspråk på serversidan Innebär att webbservern översätter php-scripten innan sidan skickas till webbläsaren,
Tentamen Grundläggande programmering
Akademin för Innovation Design och Teknik Tentamen Grundläggande programmering Kurskod: DVA103 Datum 2012-06-11 Tid 14.10 16.30 Examinator: Lars Asplund Maxpoäng: 48 Betygsgränser: Betyg 3: 20 Betyg 4:
ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet
ITK:P1 Föreläsning 1 Att programmera i språket Java DSV Peter Mozelius Programmering Olika typer av programmering som t ex: o Imperativ programmering (C, Pascal m fl) o Funktionell programmering (Lisp,
Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12
Grundläggande programmering, STS 1, VT 2007. Sven Sandberg Föreläsning 12 I torsdags: Klassen TelefonKostnad Exemplifierar objektorienterad design, metoder, konstruktorer static Standardklassen Math Matematiska
732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy cards. Slingor
732G11 Linköpings universitet 2011-02-01 1 2 3 Strukturdiagram Strukturdiagram används för att visa hur ett program fungerar. Man kan se alla val och upprepningar som sker i programmet. Består av tre (!)
(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java
(Man brukar säga att) Java är... Denna föreläsning Allmänt om Java Javas datatyper, arrayer, referenssemantik Klasser Strängar enkelt baserat på C/C++ objekt-orienterat från början dynamiskt utbyggbart
TDP002 - Imperativ programmering
TDP002 - Imperativ programmering Introduktion till kursen och Python Eric Elfving Institutionen för datavetenskap 1 Programmering - en översikt 2 Python Inbyggda typer Satser och uttryck 1 Programmering
Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?
Föreläsning 10 Datalogi 1 DA2001 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer på skärmen print( Hej ) print( Hur är det?
TDP002 - Imperativ programmering
. TDP002 - Imperativ programmering Introduktion till kursen och Python Eric Elfving Institutionen för datavetenskap 14 augusti 2015 Översikt 2/29 Programmering - en översikt Python - Köra och skriva program
Uppmärkningsspråk. TDP007 Konstruktion av datorspråk Föreläsning 4. Peter Dalenius Institutionen för datavetenskap
Uppmärkningsspråk TDP007 Konstruktion av datorspråk Föreläsning 4 Peter Dalenius Institutionen för datavetenskap 2015-02-03 Från förra gången XML-dokument specificeras med t.ex. en DTD Två olika sätt att
Classes och Interfaces, Objects och References, Initialization
Classes och Interfaces, Objects och References, Initialization Objekt-orienterad programmering och design (DIT953) Niklas Broberg/Johannes Åman Pohjola, 2018 Abstract class En abstract class är en class
Kodexempel från Programmering 2 Tobias Wrigstad, Ph.D.
Kodexempel från Programmering 2 Tobias Wrigstad, Ph.D. tobias@dsv.su.se Notera att exemplen är i Python 2.5 För att översätta till Python 3.0, gör följande ändringar print(x,y) istället för print x,y input("ett
Uppmärkningsspråk. TDP007 Konstruktion av datorspråk Föreläsning 3. Peter Dalenius Institutionen för datavetenskap
Uppmärkningsspråk TDP007 Konstruktion av datorspråk Föreläsning 3 Peter Dalenius Institutionen för datavetenskap 2017-01-26 2 Vad handlar det andra seminariet om? Strukturerad text Uppgifter Hämta information
Programmeringsteknik II
Programmeringteknik II Kursintroduktion http://www.it.uu.se/edu/course/homepage/prog2/vt18/ 2018-03-19 Programmeringsteknik II 2018-03-19 1 / 9 Lärare Carl Nettelblad (kursansvarig) Anna Eckerdal Biträdande
TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Kursinformation Imperativa delen av
Klassdeklaration. Metoddeklaration. Parameteröverföring
Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar
TDIU01 (725G67) - Programmering i C++, grundkurs
TDIU01 (725G67) - Programmering i C++, grundkurs Introduktion till kursen och programmering Eric Elfving Institutionen för datavetenskap 2 september 2014 Översikt Kursinformation Personal Kursmål Upplägg
TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Kursinformation Imperativa delen av
TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Abstrakta datatyper Listor Stackar
Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser
Introduktion till programmering Föreläsning 2: Variabler, uttryck och satser 1 1 Värden De grundläggande saker som en dator manipulerar resultaten av beräkningar kallas värden Värden vi stött på: 2 och
Programmering I Tobias Wrigstad fredag, 2009 augusti 28
Programmering I Tobias Wrigstad tobias@dsv.su.se Vad är programmering? Lågnivåspråk och högnivåspråk Kompilering och interpretering Variabler Notation för flödesschema (flow chart) Kontrollstrukturer (conditionals,
"Är en"-relation. "Har en"-relation. Arv. Seminarium 2 Relevanta uppgifter. I exemplet Boll från förra föreläsningen gällde
Föreläsning 7 "Har en"-relation Arv "Har en" "Är en" Superklassen Object Överskuggning Fordonsexempel Seminarium 2 Relevanta uppgifter Uppgift 31 I exemplet Boll från förra föreläsningen gällde följande
Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk
Föreläsning 2 steknik och C DD1316 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program
TDP001: Handhavande av datormiljö, 4 hp. Ola Leifler, Institutionen för datavetenskap
TDP001: Handhavande av datormiljö, 4 hp Ola Leifler, Institutionen för datavetenskap Agenda Mål Innehåll Examinationsmoment Organisation Mål Ur studiehandboken: Efter genomgången kurs ska studenten kunna:
Programmering för språkteknologer II, HT2014. evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/
Programmering för språkteknologer II, HT2014 Avancerad programmering för språkteknologer, HT2014 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/ Idag - Hashtabeller
Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering
Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk
OOP Tenta
Stockholms universitet sid 1 OOP OOP Tenta 2012-01-14 10.00 15.00 Avser kurserna DSK1:OOP och GES:OOP Anvisningar Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt
Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk
Föreläsning 2 steknik DD1310 Python introduktion Variabler Datatyper Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program är
Objektorienterad Programkonstruktion
Objektorienterad Programkonstruktion Föreläsning 9 Projektuppgift Collection, Iterator, Composite Christian Smith ccs@kth.se 1 Projektuppgift IM, skickar meddelanden mellan datorer En lite större labbuppgift,
Uppmärkningsspråk. TDP007 Konstruktion av datorspråk Föreläsning 3. Peter Dalenius Institutionen för datavetenskap
Uppmärkningsspråk TDP007 Konstruktion av datorspråk Föreläsning 3 Peter Dalenius Institutionen för datavetenskap 2015-01-29 Vad handlar det andra seminaret om? Strukturerad text Uppgifter Hämta information
Platser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat
Cheat sheets Nedan finns referensblad för fyra olika programmeringsspråk, som kan bli aktuella att använda i matematikundervisning. MATLAB är en välkänd programvara för att göra matematiska beräkningar,
Lösningsförslag till exempeltenta 2
Lösningsförslag till exempeltenta 2 1 1. Beskriv hur man kan söka igenom en tvådimensionell array. Beskriv pseudokoden och förklara så klart som möjligt hur den fungerar. Lösning: Se laboration 3. - Beskriv
Introduktion till Datalogi DD1339. Föreläsning 1 8 sept 2014
Introduktion till Datalogi DD1339 Föreläsning 1 8 sept 2014 Kontaktuppgifter & Info: Kurskod: DD1339, 19hp Kursomgång: inda14 Kursansvarig: Christian Smith, ccs@kth.se Michael Minock, minock@kth.se Dilian
Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk
Föreläsning 2 steknik DD1310 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer funktioner betyder att instruera en dator Ett program
F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander
F4 Klasser och Metoder ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Klasser och objekt Klasser definierar (utgör idén) Objekt instantierar (utgör förekomsten) En klassdefinition Många
TDDC74 FÖRELÄSNING 9 ANDERS MÄRAK LEFFLER IDA/HCS
TDDC74 FÖRELÄSNING 9 ANDERS MÄRAK LEFFLER IDA/HCS 180226 Idag (ADT), OOP i Racket, labb 5 2 Allmän info Duggan. Laboration 4 deadline. Planering framöver Muddy cards (nästa timme) 3 Lite repetition ADT
Introduktion till programmering D0009E. Föreläsning 1: Programmets väg
Introduktion till programmering D0009E Föreläsning 1: Programmets väg 1 Vad är en dator? En maskin vars beteende styrs av de innehållet (bitmönster) som finns lagrade i datorns minne (inte helt olikt förra
Erfarenheter från labben
Erfarenheter från labben Bra Jobbat! Lite ont om plats... Parprogrammering? Skillnad mellan program och funktion! Skillnad mellan uttryck och kommando! Välj bra variabelnamn! Vad göra om det blir fel?
I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else
Förkunskaper från tidigare föreläsningar: Objektorienterad Programmering (TDDC77) Föreläsning IX: Klasser och Objekt, Instantiering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2015 I STONE I Variabler,
TENTAMEN OOP
TENTAMEN OOP 2013-08-08 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli
725G61 - Laboration 5 Grundläggande objektorientering. Johan Falkenjack
725G61 - Laboration 5 Grundläggande objektorientering Johan Falkenjack November 26, 2013 1 Inledning I labb 1-3 tittade vi på de grundläggande byggstenarna i programmering. Vi lärde oss om variabler, styrstrukturer
TDDC74 - Lektionsmaterial C
TDDC74 - Lektionsmaterial C Lektioner innehåller uppgifter av varierande slag. En del är mer diskussionsartade, andra mer experimentella. Ni behöver inte lämna in eller visa upp lösningarna på dessa för
OOP Objekt-orienterad programmering
OOP Objekt-orienterad programmering OOP F1:1 Delkursansvarig Epost Kursens webbsidor sm@fc.dsv.su.se http://people.dsv.su.se/~sm/oop/ Föreläsning 1 Introduktion till kursen OOP Vad är Java? Ett första
Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.
är, som Scheme, ett interpreterat språk men det finns kompilatorer för. När man interpreterar ett språk tillhandahåller man en interpretator som läser sats för sats och försöker tolka den. När man kompilerar
Imperativ programmering. Föreläsning 2
Imperativ programmering 1DL126 3p Föreläsning 2 Imperativ programmering Kännetecken för imperativa språk: Programmet består av en serie instruktioner. Olika språk har olika uppsättningar av instruktioner.
Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.
är, som Scheme, ett interpreterat språk men det finns kompilatorer för. När man interpreterar ett språk tillhandahåller man en interpretator som läser sats för sats och försöker tolka den. När man kompilerar
Linköpings universitet Innovativ Programmering TDP019 Projekt: Datorspråk. flip/flop. ett helt flippat språk
Linköpings universitet Innovativ Programmering TDP019 Projekt: Datorspråk flip/flop ett helt flippat språk TDP019 - Projekt: Datorspråk Vårterminen 2012 Johan Wänglöf Henrik Forsberg johwa457@student.liu.se
Visual Basic, en snabbgenomgång
Visual Basic, en snabbgenomgång Variabler och Datatyper En variabel är som en behållare. Olika behållare passar bra till olika saker. I Visual Basic(härefter VB) finns olika typer av behållare för olika
TDIU01 - Programmering i C++, grundkurs
TDIU01 - Programmering i C++, grundkurs Grundläggande satser och uttryck Eric Elfving Institutionen för datavetenskap 5 augusti 2014 Översikt Uttryck Litteraler Operatorer Satser Villkor Upprepning Teckenhantering
OOP F1:1. Föreläsning 1. Introduktion till kursen OOP Vad är Java? Ett första Java-program Variabler Tilldelning. Marie Olsson
OOP F1:1 Föreläsning 1 Introduktion till kursen OOP Vad är Java? Ett första Java-program Variabler Tilldelning OOP Objekt-orienterad programmering Delkursansvarig: First Class-konferens: Kursens webbsidor:
SMD 134 Objektorienterad programmering
SMD 134 Objektorienterad programmering Lärare: pl@cdt.luth.se A 3113 Tomas Klockar klockar@sm.luth.se A 3019 Mats Folke folke@sm.luth.se A 3019 Labhandledare: Natasja Saburova Fredrik Jonsson Lars Persson
Testautomatisering. Ruby Repetition
Testautomatisering FM: Kort utvärdering Lab 1 Idag Unit Test Intro Bra Unit Test, TDD, Videoföreläsning Denna veckan 1. Uppskatta hur mycket tid du lagt på lab 1 (h) 2. Uppskatta kvarvarande tid för lab
Hur man programmerar. TDDC66 Datorsystem och programmering Föreläsning 3. Peter Dalenius Institutionen för datavetenskap
Hur man programmerar TDDC66 Datorsystem och programmering Föreläsning 3 Peter Dalenius Institutionen för datavetenskap 2014-09-05 Översikt Problemlösning: Hur ska man tänka? Datatyper Listor (forsätter
Introduktion till programmering
Introduktion till programmering TDDC66 Datorsystem och programmering Föreläsning 1 Peter Dalenius Institutionen för datavetenskap 2013-09-02 Översikt Vad är programmering? Kursens målsättning och organisation
TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Abstrakta datatyper Listor Stackar
729G04 Programmering och diskret matematik. Python 2: Villkorssatser, sanningsvärden och logiska operatorer
729G04 Programmering och diskret matematik Python 2: Villkorssatser, sanningsvärden och logiska operatorer Föreläsningsöversikt Vad händer när vi kör vår pythonkod? Programmerare Villkorssatser Jämförelser
TDDE44 Programmering, grundkurs
TDDE44 Programmering, grundkurs Föreläsning 5 Jody Foo, jody.foo@liu.se Föreläsning 5 & 6 Laboration 3: En egen pokedex data från webben Ny datatyp: dictionary Mer om dataabstraktion Nästlade datastrukturer
Syfte : Lära sig objektorienterad programmering Syfte : Lära sig programmering i ett OO-språk vilket?
Jonas Kvarnström jonkv@ida.liu.se 2013 Syfte : Lära sig objektorienterad programmering Syfte : Lära sig programmering i ett OO-språk vilket? Rena OO-språk (allt är objekt) Scala, Smalltalk, Eiffel, Ruby,
Föreläsning 3: Booleans, if, switch
TDA 545: Objektorienterad programmering Föreläsning 3: Booleans, if, switch Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Påminnelse om klasser och objekt Boll boll1 = new Boll(5,12); skapar ett nytt
DD1361 Programmeringsparadigm. Carina Edlund
DD1361 Programmeringsparadigm Carina Edlund carina@nada.kth.se Funktionell programmering Grundidéen med funktionell programmering är att härma matematiken och dess funktionsbegrepp. Matematiskt funktionsbegrepp
Föreläsning 2 Programmeringsteknik och C DD1316
Föreläsning 2 Programmeringsteknik och C DD1316 Föreläsning 2 Programmeringsteknik och C Datatyp Aritmetiska operatorer Omvandling av typer Reserverade ord Mikael Djurfeldt Logiska operatorer
Dagens föreläsning. Diverse Common Lisp. Konstanter, parametrar, globala variabler
21-1-2 1 Dagens föreläsning Hur fungerar ett Lisp system intern struktur av symbolen, tal, listan pekare - delade strukturer - eq minneshantering fri lista - sophämtning/garbage collection stack Diverse
729G74 IT och programmering, grundkurs. Tema 2, Föreläsning 2 Jody Foo,
729G74 IT och programmering, grundkurs Tema 2, Föreläsning 2 Jody Foo, jody.foo@liu.se Föreläsningsöversikt Kursinfo: återkoppling Muddy Cards och kompletteringar Diskret matematik Python: Programmering
IT OCH PROGRAMMERING I SKOLAN. Jan Erik Moström Peter Vinnervik
IT OCH PROGRAMMERING I SKOLAN Jan Erik Moström Peter Vinnervik VILKA ÄR VI OCH VAD KOMMER VI ATT PRATA OM? Jan Erik Moström - undervisar på institutionen för datavetenskap Peter Vinnervik - doktorand vid
Föreläsning 2 Datastrukturer (DAT037)
Föreläsning 2 Datastrukturer (DAT037) Fredrik Lindblad 1 1 november 2017 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037
EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.
EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.aelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade
Föreläsning Datastrukturer (DAT036)
Föreläsning Datastrukturer (DAT036) Nils Anders Danielsson 2013-11-13 Idag Grafer: Terminologi. Datastrukturer. Topologisk sortering. Kortaste vägen. Bredden först-sökning. Dijkstras algoritm. (Vi får
Objektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning I: kursinfo, att programmera datorer, första programmet Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2015 Outline Hemsida Organization Examination
Konstruktion av datorspråk
Konstruktion av datorspråk Fö3: Uppmärkningsspråk Peter Dalenius petda@ida.liu.se Institutionen för datavetenskap Linköpings universitet 2009-01-29 Översikt Uppmärkningsspråk Struktur och specifikation
Laboration 1 - Grunderna för OOP i Java
Uppdaterad: 2006-08-31 Laboration 1 - Grunderna för OOP i Java Inledning Laborationen går ut på att lära sig grunderna för objektorienterad programmering, samt motsvarande språkkonstruktioner i Java. Labben
Introduktion till programmering
Introduktion till programmering TDDC66 Datorsystem och programmering Föreläsning 1 Peter Dalenius Institutionen för datavetenskap 2014-09-01 Översikt Vad är programmering? Kursens målsättning och organisation
Använda Python Laboration 1 GruDat, DD1344
Använda Python Laboration 1 GruDat, DD1344 Örjan Ekeberg 14 oktober 2008 Målsättning Målet med denna laboration är att du ska prova på att använda Python, framförallt interativt. Du ska också lära dig
JavaScript. Innehåll. Historia. Document object model DHTML. Varför Javascript?
Innehåll JavaScript En introduktion till skriptspråket JavaScript och till DOM Scripting Introduktion till JavaScript och DOM JavaScript Syntax DOM och DOM Scripting Händelsehantering och CSS Historia
Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik I 2016-03-17 Skrivtid: 1400 1900 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
Design och konstruktion av grafiska gränssnitt
Design och konstruktion av grafiska gränssnitt Armin Nezirevic Peter Börjesson Interaktionsdesign Tillämpad informationsteknologi Chalmers/GU Idag Vad utmärker ett bra användargränssnitt? Kort kursinfo
Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.
(16 februari 2016 F5.1 ) Dagens text Programmeringsteknik Mer om Scanner-klassen Dialogrutor (klassen JOptionPane) Bubbelsortering ArrayList Omslagsklasser Arbetsexempel (16 februari 2016 F5.2 ) Pokertärningar
Objektorienterad Programmering DAT043
Objektorienterad Programmering DAT043 Föreläsning 3 22/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material) 1 Kom ihåg: Visa Javas API. Nämn att slidesens också har tillhörande text på kurshemsidan.