Allmän (och viktig) kursinformation

Relevanta dokument
729G04 Programmering och diskret matematik. Kursintroduk+on Jody Foo

MUDDYCARDS 729G04 PYTHON 1. Positivt. Negativt. JODY FOO Department of Computer and Information Science (IDA) Linköping University, Sweden

729G74 IT och programmering, grundkurs. Tema 1, Föreläsning 1 Jody Foo,

TDIU01 (725G67) - Programmering i C++, grundkurs

729G74 IT och programmering, grundkurs. Tema 1, Föreläsning 3 Jody Foo,

729G74 IT och programmering, grundkurs. Tema 1, Föreläsning 1 Jody Foo,

729G74 IT och programmering, grundkurs. Tema 1, Föreläsning 2 Jody Foo,

Programmering, grundkurs

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

TDDC77 Objektorienterad Programmering

Föreläsning 1: Intro till kursen och programmering

Introduktion till Datalogi DD1339. Föreläsning 1 8 sept 2014

729G74 IT och programmering, grundkurs. Tema 1, Föreläsning 2 Jody Foo,

Föreläsning 1: Intro till kursen och programmering

TDP001/TDP002. Introduktionsföreläsning. Eric Elfving Institutionen för Datavetenskap (IDA)

b) NY KURS (Ange kursnamn, årskurs, önskad läsperiod, schemablocksplacering. Bifoga utkast till kursplan.)

729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo

729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo

729G06 Programmering och logik. Info om pythondelen & introduktion till objektorienterad programmering.

Kognitionsvetenskapligt kandidatprogram Bachelor Programme in Cognitive Science 180 Högskolepoäng

Kognitionsvetenskap Kandidatprogrammet

DATORLÄRA Christophe Clément - Fysikum

Programvaruteknik, hp

Kognitionsvetenskapligt kandidatprogram

el o;; Utbildningsplan för Kognitionsvetenskapligt kandidatprogram Bachefor Programmein Cognitive Science 180 Högskolepoäng

Grundläggande programmering med matematikdidaktisk inriktning för lärare som undervisar i gy eller komvux gy nivå, 7,5 hp

Avdelningen för informations- och kommunikationssystem Fakulteten för naturvetenskap, teknik och medier

Föreläsning 1: Introduktion till kursen

Institutionen för datavetenskap vid Helsingfors universitet

TDDE44 Programmering, grundkurs

Föreläsning 1: Introduktion till kursen

Kandidatprogrammet i kognitionsvetenskap

Föreläsning 1: Introduktion till kursen

TDP001: Handhavande av datormiljö, 4 hp. Ola Leifler, Institutionen för datavetenskap

Grundläggande programmering med matematikdidaktisk inriktning för lärare i åk 7-9

Introduktion till kursen och MATLAB

Välkomna till DIT012 IPGO

Grundläggande programmering med matematikdidaktisk inriktning för lärare i åk 7-9

1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1

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

Programmeringsteknik I

Objektorienterad programmering och Java

Välkomna till DIT012 IPGO. Tyvärr en bug i Google Docs: Sidnummer stämmer inte alltid. Alla anteckningar börjar på sidan 1.

Grundläggande datavetenskap 4p

Datamodeller och databaser, avancerad kurs

Datavetenskapliga programmet, 180 högskolepoäng

729G04 - Diskret matematik. Hemuppgift.

Grundkurs i programmering - intro

Datavetenskapliga programmet, Allmän inriktning 180 högskolepoäng

Introduktion till informatik - människa, teknik, organisation

Kandidatprogrammet i kognitionsvetenskap

Föreläsning 1. Presentation av kursen Vad är programmering? Lite om java och utvecklingsmiljöer Aktivitetsdiagram Ett första program

Innehålls förteckning

729G74 IT och programmering, grundkurs. Tema 2, Föreläsning 1 Jody Foo,

VT17-1DV527-7,5hp. Vilket sammanfattande omdöme ger du kursen? Antal respondenter: 25. Antal svar. Svarsfrekvens: 24,00 %

Datavetenskapligt program, 180 högskolepoäng

SSY1K, Kandidatprogram i systemvetenskap, 180 hp. SSY1K PROG, Kandidatprogram i systemvetenskap Programvaruteknik, 180 hp

H15-1DV433-7,5. Vilket sammanfattande omdöme ger du kursen? Antal respondenter: 22. Antal svar. Svarsfrekvens: 59,09 %

Programschemat är beslutat av utbildningsledare Annika Björklund vid akademin för innovation, design och teknik

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

Objektorienterad Programmering (TDDC77)

Litteraturlista för det Kognitionsvetenskapliga kandidatprogrammet ht15

Datateknik A, Tillämpad datavetenskap, 30 högskolepoäng Computer Science, Applied Computer Science, Basic Course, 30 Credits

Kursanalys DD1312 hösten 2008

TNSL05, Optimering, Modellering och Planering 6 hp, HT2-2011

Programschema för Datavetenskapliga programmet, 180 hp. Gäller för läsåret 2018/2019. Programschema för 2018/2019.

Imperativ och Funktionell Programmering i Python #TDDD73

Introduktion till programmering D0009E. Välkomna!

PYTHON SNABBREPETITION MEN FÖRST LITE ALLMÄNT OM PROGRAMMERING 729G04 PYTHON 2. Dagens Python

1. Flervalsfråga Andel

Introduktion till programmering

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Programmeringsteknisk översiktskurs för yrkeshögskoleprogram

Universe Engine Rapport

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

VT17-1DV023-7,5hp. Vilket sammanfattande omdöme ger du kursen? Antal respondenter: 56. Antal svar. Svarsfrekvens: 42,86 %

Kursanalys. Douglas Wikström 15 juni Problemlösning och programmering under press (DD2458) Högskolepoäng (hp): 9 Kursen gavs: Period 1-2, 2008

Kursinformation Grundkurs i programmering med Python

Datavetenskapliga programmet, Spel, 180 högskolepoäng

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

VT18-1DV527-7,5hp-KALMAR-50%-Normal /VT18-1DV527-7,5hp-Ortsoberoende-50%-Distans

SAMMANSTÄLLNING 1 (13) Datum för sammanställningen Period 3, 2007

729G74 IT och programmering, grundkurs. Tema 3. Föreläsning 1 Jody Foo,

Imperativ programmering

TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java

Översikt. Programmering tillämpningar och datastrukturer. Vad kursen täcker. Lärare. Rekommenderad litteratur. Kursmål 729G58 (HKGBB7)

TNSL05, Optimering, Modellering och Planering 6 hp, HT2-2010

Datateknik B, Tillämpad datavetenskap, 30 högskolepoäng Computer Engineering, Applied Computer Science, Intermediate Course, 30 Credits

TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java

Introduktionsföreläsning

Masterprogrammet i Datavetenskap

729G04: Inlämningsuppgift i Diskret matematik

Kursupplägg. Examination. Föreläsning 1: Intro till kursen och. Kursmaterial. programmering. Kursboken: Programmera med a multimedia approach

Meritförteckning - Mikael Tylmad

Välkomna till kursen i grundläggande programmering DVGA08, ISGA04

Objektorienterad Systemutveckling Period 3

Processprogrammering och operativsystem

Programmering från början

Introduktion till programmering

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Transkript:

Föreläsningsöversikt 729G04 Programmering och diskret matematik Kursintroduktion Jody Foo Department of Computer and Information Science (IDA) Linköping University, Sweden Allmän kursinformation Vad är diskret matematik? Vad är programmering? Om labbsalarna och labbmiljön Att läsa på universitet Allmän (och viktig) kursinformation Ni läser här för att ni vill! För att ni vill lära er! Vi förutsätter att ni är har en förmåga att ta egna initiativ: Fråga om något är otydligt, eller om information saknas. Kurspersonal har svårt att åtgärda något annars! Läs tillsammans! Planera dina studier!

Kursorganisation på universitetet Personal Kursansvarig stakar ut en väg fram till målet (kunskapsmålen). Föreläsarna är era guider. Assistenter hjälper er praktiskt. Examinator på en kurs kontrollerar att ni nått målet. Varje kurs har examinationsmoment, en provuppsättning. Det betyder att ni kan hitta er egen väg om ni vill, så länge som ni når målet. Målet finns beskrivet i kursplanen. Kursadministratören ser till att allt registreras m.m. Examinator & kursansvarig: Jody Foo Föreläsare: Jody Foo Labbassistenter: Benjamin Helmersson Elias Åsgård Evelina Rennes Ove Jansson Lektionsassistenter: Ander Märak Leffler Johan Falkenjack Kurssekreterare: Annelie Almquist Vad händer om jag inte pluggar? Ingen kommer tvinga er att plugga eller förbereda er Ni kommer inte att bli bestraffade för att ni inte förbereder er Men... ni får ut mindre av utbildningen om ni inte gör det andra kommer att förutsätta att ni förbereder er och ställa krav på er utifrån den förutsättningen Kurshemsidan http://www.ida.liu.se/~729g04

Kursmål Fråga om ni saknar information! jody.foo@liu.se konstruera grundläggande datorprogram och formella modeller för enkla kognitionsvetenskapliga tillämpningar använda begrepp och modeller från grundläggande diskret matematik förklara vad en algoritm är och tillämpa grundläggande algoritmer använda olika datatyper/datastrukturer använda olika typer av styrstrukturer visa förståelse för vad datormodellering innebär och ha förmåga att konstruera enkla datorprogram Examinationsmoment Examination Examinationsmomenten ska stämma överrens med kursmålen. I denna kurs: UPG1 1,5hp: Hemuppgift i diskret matematik TEN4 2,5hp: Datorsalstenta LAB5 1hp: Individuella labbar LAB6 1hp: Parlabbar Datorsalstenta (G/VG): 14:00-18:00 15 december 2014 Inlämningsuppgift i Diskret matematik (G): 22-26 september 2014 Labborationsuppgifter i Python (G) Betyg G+G+G = G VG + G + G = VG

Hemuppgift Datorsalstenta Uppgifter i diskret matematik som löses individuellt. v39: 22-26 september Programmeringstenta vid dator Godkänd bok får tas med Test-tenta för att prova på hur det känns Laborationer Kursmoment Laborationer görs vid dator Ni kommer behöva lägga ner mer tid än den schemalagda. Vissa labbtillfällen är med handledare, andra utan. Föreläsningar i föreläsningssal Lektioner i föreläsningssal (DM), i datorsal (programmering) Laborationer: i datorsal Labbar som görs individuellt & labbar som görs i grupper om två Inlämning: e-post till er handledare

Mentometer Inslag på föreläsningar med mentometrar Via app, eller på webben: Android: https://play.google.com/store/apps/details? id=com.exittix.exitticket ios: https://itunes.apple.com/se/app/exitticket/id618649934 Webb: https://exittix.com Pilotprojekt - programmering på föreläsning Kurslitteratur Strandh, R. 2014. Introduktion till Datavetenskap. Kuhlman och Dahllöf. 2014. Matematik för språkteknologer. (PDF:er) Miller & Ranum. 2013. How to Think Like a Computer Scientist - Learning with Python: Interactive Edition (Using Python 3.x). URL: http://interactivepython.org/ runestone/static/thinkcspy/index.html. Downey. 2012. Think Python - How to Think Like a Computer Scientist. URL: http://www.greenteapress.com/ thinkpython/. Gratis som PDF/HTML, finns att beställa som bok Kursen är på 6hp utspritt över 18 veckor. ~9h/vecka

Kursmål Diskret matematik http://www.flickr.com/photos/diathesis/402718282/ Diskret, som i åtskiljd, inte som i obemärkt Muffinsar är diskreta Tårtor är kontinuerliga

Diskret matematik behandlar t.ex. teoretisk datavetenskap logik mängdlära kombinatorik grafteori topologi sannolikhet spelteori Diskret matematik i denna kurs Mängder Relationer Funktioner Algoritmer Grafer och träd Varför är diskret matematik viktigt för en kognitionsvetare? Modellering med hjälp av diskret matematik Ett formellt språk för att diskutera teorier och resonera inom/om bl.a. Diskreta modeller AI Språkteknologi Programmering Databaser Begrepp och kunskap om hur dessa används. Diskreta modeller ett sätt att representera data/information/kunskap som kan modelleras och bearbetas av datorprogram språk spelvärld internt tillstånd hos en agent/robot nätverksstrukturer

Notation f(x) =2x +3

{x x 2 N,x<10} Begrepp Ett exempel från uppgiftsanalys Task Layer Diagram - ett sätt att abstrahera och analysera uppgifter (Arnowitz 2004)

Initialt uppgiftsflöde för call-centerapplikation Cykler borttagna och tidsflöde etablerat Open file Open file Add record 0 Find 1 Input name 2 Add record Find Make call 3 Input name Create record Input telephone 4 Check duplicates Create record Input telephone 5 Check duplicates Make call FIG. 11.3. Task set in an application flow chart. 6 FIG. 11.4. Layering result after peeling. Redundanta beroende borttagna Uppgiftsanalysen en diskret modell består av en mängd uppgifter + riktade relationer mellan dem: en graf med hjälp av kunskaper i diskret matematik får vi de begrepp vi behöver för att representera detta i en dator vi kan sedan implementera ett program som hjälper oss skapa ett sådant diagram FIG. 11.5. Task Layer Map.

Modellering med hjälp av diskret matematik Algoritmer ett sätt att lösa problem som kan implementeras av datorprogram söka information tolkning/generering av språk analys av sociala nätverk Vad är programmering?

Progammering och kogvet Datainsamling Interaktionsdesign, interaktions- och webbprogrammering Språkteknologi Simuleringar Artificiell intelligens Närmaste framtiden 729G06 Programmering och logik (Kogvet 1, VT) 729G09 Språkvetenskaplig databehandling (Kogvet 1, VT) 729G43 Artificiell Intelligens (Kogvet 2, HT) D Sharon Pruitt: http://www.flickr.com/photos/pinksherbet/ Varför programmera? För att man är lat... För att datorn kan göra det snabbare För att man vill simulera något För att man vill automatisera något För att det är roligt! För att man vill skapa något För att datorn är bättre på att hantera den typen av data... http://ifttt.com

Vad behöver man för programmera Träning Tid Kunskap

Vad gör man när man programmerar? Problemlösning Dela upp problemet i delproblem Uttrycker sig på ett sätt så att en dator förstår Logiskt Tydligt Små steg i taget http://www.flickr.com/photos/senoranderson/3363262014/ Cargo Bot http://twolivesleft.com/cargobot/ patrick h. lauke: http://www.flickr.com/photos/redux/

Teknik bakom programmering Light Bot http://www.light-bot.com/hocflash.html En vanlig dator En vanlig dator Program / Applikationer Operativsystem Hårdvara Program / Applikationer Operativsystem Hårdvara

Ram (arbetsminne) Hårdvara Lagringsutrymme - Hårddisk (långtidsminne) Extern in- och utmatning (sinnen) CPU/Processor (Hjärna) En vanlig dator Program / Applikationer Operativsystem Hårdvara Operativsystem En vanlig dator Windows: Vista/7/8 Mac OS X: Snow Leopard/Lion/Mountain Lion Linux: Ubuntu, Debian, Red Hat, Slackware BeOS, Solaris... Program / Applikationer Operativsystem Hårdvara

Program En vanlig dator Officeprogram Webbläsare Spel Videouppspelningsprogram Skärmsläckare Här kommer vi hålla till Program / Applikationer Operativsystem Hårdvara Program A program is a sequence of instructions that specifies how to perform a computation. The Way of the Program How To Think Like a Computer Scientist Program skrivs med hjälp av ett programmeringsspråk Programmeringsspråk = formellt språk Svenska, engelska, tyska osv = naturliga språk

Program forts Formella språk skiljer sig från naturliga språk genom att de är: har en strikt syntax saknar tvetydighet är bokstavliga, dvs ingenting "mellan raderna" HAI CAN HAS STDIO? PLZ OPEN FILE "LOLCATS.TXT"? AWSUM THX VISIBLE FILE O NOES INVISIBLE "ERRROR!" KTHXBYE

Högnivå- och lågnivåspråk Fibonaccital Högnivå/Abstrakt Python LISP Java Ada Summan av de två föregående fibonaccitalen. De första två är 0 och 1. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 C Assembler Lågnivå/Maskinnära Maskinkod Fibonaccital F(4) = F(3) + F(2) = (F(2) + F(1)) + (F(1) + F(0)) = (F(1) + 0)) + 1 ) + (1 + 0) = 3 8B542408 83FA0077 06B80000 0000C383 FA027706 B8010000 00C353BB 01000000 B9010000 008D0419 83FA0376 078BD98B C84AEBF1 5BC3 A function in 32-bit x86 machine code to calculate the nth Fibonacci number

fib: mov edx, [esp+8] cmp edx, 0 ja @f mov eax, 0 ret @@: cmp edx, 2 ja @f mov eax, 1 ret @@: push ebx mov ebx, 1 mov ecx, 1 @@: lea eax, [ebx+ecx] cmp edx, 3 jbe @f mov ebx, ecx mov ecx, eax dec edx jmp @b @@: pop ebx ret The same Fibonacci number calculator as above, but in x86 assembly language using MASM syntax def fib(n): if n == 0: return 0 elif n == 1: return 1 else: return fib(n-1) + fib(n-2) The same Fibonacci number calculator, but in Python Vad är programmering? def fib(n): if n == 0: return 0 elif n == 1: return 1 else: return fib(n-1) + fib(n-2) The same Fibonacci number calculator, but in Python Aktivitet där man skapar program. Materialet för skapandet är programkod som skrivs i ett formellt språk. Programmering är en kreativ process som kräver problemstrukturering och problemformulering.

Dagens föreläsning Allmän kursinformation Kort om diskret matematik Kort om programmering Läs Strandh kap 1 för en mer detaljerad introduktion. Nästa föreläsning Mängdlära Vad är en mängd? Hur beskriver man en mängd? Vad kan man göra med en mängd? Hur ritar man en mängd? Läsanvisningar: se kurshemsidan!