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

Relevanta dokument
Allmän (och viktig) kursinformation

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

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

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

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

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

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

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

Programmering, grundkurs

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

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

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

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

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

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

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

Programmera C++ Programkurs 6 hp Programming C++ TDDE18 Gäller från: 2018 VT. Fastställd av. Fastställandedatum

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

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

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

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

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

Databasteknik. Programkurs 6 hp Database Technology TDDD37 Gäller från: 2018 VT. Fastställd av. Fastställandedatum

Datavetenskapligt program, 180 högskolepoäng

DATORLÄRA Christophe Clément - Fysikum

Processprogrammering och operativsystem

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

Programmeringsteknik II

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

729G04 - Diskret matematik. Hemuppgift.

Problemlösning och programmering

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

MA2047 Algebra och diskret matematik

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

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

Föreläsning 9 Innehåll. Söndra och härska. Fibonaccitalen. Söndra och härska. Divide and conquer teknik för att konstruera rekursiva algoritmer.

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

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

Formella språk och automatateori

EDAA01 Programmeringsteknik - fördjupningskurs

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

Programmeringsteknik I

Introduktion till informatik - människa, teknik, organisation

Kursanalys DA2003 höst 2017

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

TDDE44 Programmering, grundkurs

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

Kursbeskrivning i franska 9AFR71. Franska 91-97,5hp

Kursanalys DA2003 sommar 2017

TDDC77 Objektorienterad Programmering

Kognitionsvetenskap Kandidatprogrammet

Imperativ och Funktionell Programmering i Python #TDDD73

729G04 Programmering och diskret matematik

Kursplan för kurs på grundnivå

ENGK01, Engelska: Kandidatkurs, 30 högskolepoäng English: Level 3 - B. A. Course, 30 credits Grundnivå / First Cycle

Föreläsning 9 Innehåll. Söndra och härska. Fibonaccitalen. Söndra och härska. Divide and conquer teknik för att konstruera rekursiva algoritmer.

Kurshandledning. Bruksspel. 7,5 hp VT Kurskod: 918G09 Kursansvarig: Anna Englund Bohm

Kognitionsvetenskapligt kandidatprogram

732G16: Databaser - Design och programmering

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

Utbildningsplan för Datavetenskapligt program, 180 högskolepoäng

Datorteknik och realtidssystem

Föreläsning 1: Introduktion till kursen

Programvarutestning. Programkurs 6 hp Software Testing TDDD04 Gäller från: 2019 VT. Fastställd av. Fastställandedatum

Programmering - abstraktion och modellering

Kurshandledning. Bruksspel. 7,5 hp VT Kurskod: 918G27 & 918G29 Kursansvarig: Anna Englund Bohm

Fly me to the moon. Laboration om relationer, TDDC75 Diskreta strukturer. Mikael Asplund. 5 september 2017

Datamodeller och databaser, avancerad kurs

Föreläsning 1: Introduktion till kursen

Hur man programmerar. Exempel på problemlösning i Python

Föreläsning 1: Introduktion till kursen

Kandidatprogrammet i kognitionsvetenskap

Utbildningsplan Dnr CF 52-66/2007. Sida 1 (7)

TYSK02, Tyska: Kandidatkurs, 30 högskolepoäng German: BA Course, 30 credits Grundnivå / First Cycle

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: 8-13, den 18 februari 2012

Objektorienterad Programmering (TDDC77)

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

Diskret matematik. Fristående kurs 8 hp Discrete Mathematics ETE306 Gäller från: 2019 VT. Fastställd av. Fastställandedatum

Universe Engine Rapport

Enterprise Systems. Programkurs 6 hp. TDP024 Gäller från: 2019 VT. Fastställd av. Fastställandedatum. Programnämnden för data- och medieteknik, DM

Programvaruteknik, hp

Visuell teori. Programkurs 6 hp Visual Theory TRTE13 Gäller från: 2017 VT. Fastställd av. Fastställandedatum

SVEK11, Svenska: Språklig inriktning - kandidatkurs, 30 högskolepoäng Swedish Language: Level 3 - B. A. Course, 30 credits Grundnivå / First Cycle

Introduktionsföreläsning

Kandidatprogrammet i kognitionsvetenskap

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

Kurshandledning. Bruksspel. 7,5 hp VT Kurskod: 918G07 Kursansvarig: Anna Englund Bohm

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT Lars Larsson Algoritmer 1

Modelling of Biological Systems

Kursanalys DD1312 hösten 2008

Kursintroduk+on etjänster och Webbprogrammering

Innehålls förteckning

DD1314 Programmeringsteknik

SFX - Tricks of the Trade

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

Uppgifter till tenta i 729G04 Programmering och diskret matematik. 17 december 2015, kl 14:00-18:00

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

Tillämpning av geografiska informationssystem (GIS) för ekologer

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

Transkript:

729G04 Programmering och diskret matematik Kursintroduk+on Jody Foo <jody.foo@liu.se>

Föreläsningsöversikt Allmän kursinforma9on Vad är diskret matema9k Vad är programmering

Allmän kursinformaion

Att läsa på universitetet Vad jag som lärare tror om er: Ni är intresserade av universitetsstudier Ni är i alla fall nyfikna på kogni9ons- vetenskap Ni läser kursinforma9on och tar ansvar för era egna studier

Att läsa på universitetet Kursinforma9on ska finnas på kurshemsidorna/lisam Fråga om något är oklart!

Universitetskurser Formell struktur Personal och roller

Kursnamn och kurskod Namn: Programmering och diskret matema9k Kurskod: 729G04 Kurskoden är vik$g

Examination Kurser examineras. Varje kurs har minst er examina+onsmoment. Varje examina9onsmoment har en provkod. Resultat på examina9onmoment registreras via provkod i Ladok. Ni ser resultaten från Ladok i studentportalen. EVer ar ni får godkänt på alla examina9onsmoment får ni betyg på hela kursen.

729G04 Examinationsmoment och provkoder UPG1 HemuppgiV i diskretmatema9k LAB5 Individuella datorlabora9oner LAB6 Datorlabora9oner i par TEN3 Datorsalstenta

Personal och roller Administratör: har hand om allt som ska registreras formellt: betyg, kursregistrering m.m. Assistent: Lek9onsassistent, labbassistent Examinator: examinerar och särer betyg Kursassistent: har hand om "opera9v" kurslogis9k Kursansvarig: Ansvarar för kursen under kursens gång Lärare: Håller föreläsningar

Personal på 729G04 Examinator och kursansvarig: Jody Foo Kursassistent: Evelina Rennes Lärare i diskret matema+k: Anders Märak Leffler Lärare i programmering: Jody Foo

Personal på 729G04 Lek+onsassistenter i DM: Anders Märak Leffler, Johan Falkenjack Labbassistenter: Evelina Rennes, Ida Palm, Per Fallgren & Sarah Albertsson Kursadministratör: Annelie Almquist

Kurshemsidan http://www.ida.liu.se/~729g04!

E-post 729G04@ida.liu.se!

Kursplan, kursmål och kursinnehåll

Kursplan Varje kurs har en kursplan Du hirar kursplanen på kurshemsidan och via kogvetprogrammets sida för studenter Kursplanen består bl.a. av kursmål: kunskapsmål som examineras kursinnehåll: översikt över innehåll

Kursmål för 729G04 använda begrepp och modeller från grundläggande diskret matema9k konstruera grundläggande datorprogram och formella modeller för enkla kogni9onsvetenskapliga 9llämpningar förklara vad en algoritm är och 9llä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 ar konstruera enkla datorprogram

Kursinnehåll för 729G04 grundläggande diskret matema9k, t ex mängder, rela9oner, funk9oner, diskreta datastrukturer, defini9oner och formella språk, datatyper/datastrukturer, t ex tal, strängar, tupler, listor, träd, sekven9ella och hierarkiska strukturer, arrayer, länkade strukturer, uppslagsbaserade strukturer, styrstrukturer, t ex sekvens, selek9on, itera9on, rekursion, villkor algoritmer och datastrukturer, t ex för sökning, urval, omformning, och uppslagsalgoritmer handhavande av aktuella datorsystem översiktlig introduk9on 9ll datavetenskap principer för abstrak9on programmeringsspråket Python felsökning

729G04 - Examinationsmoment UPG1 1,5hp HemuppgiV i diskretmatema9k LAB5 1 hp Individuella datorlabora9oner LAB6 1 hp Datorlabora9oner i par TEN3 2,5 hp Datorsalstenta För betyget G: Alla moment godkända För betyget VG: Alla moment godkända & VG på tentan

Hemuppgift, tenta, deadlines för labbar HemuppgiQ i diskret matema+k vecka 39, komplerering vecka 43 Datorsalstenta 17 december 2015, omtenta 18 januari 2016 Godkänd bok får tas med. Test av tentamiljön kommer erbjudas. Labbar Förstagångsinlämningar 11 januari 2016 KompleReringar 25 januari 2016 TIPS: Gör labbarna under terminen var i fas. Tentasök: hrp://www4.student.liu.se/tentasearch/

Kurslitteratur Strandh, R. 2014. Introduk*on *ll Datavetenskap. Kuhlman och Dahllöf. 2014. Matema*k för språkteknologer. (PDF:er) Miller & Ranum. 2013. How to Think Like a Computer Scien*st Learning with Python: Interac*ve Edi*on (Using Python 3.X). http://interactivepython.org/runestone/ static/thinkcspy/index.html! Downey. 2012. Think Python How to Think Like a Computer Scien9st. http://www.greenteapress.com/ thinkpython!

Översiktsschema Kursen är på 6hp UtspriR över 18 veckor ger ca 9h/vecka

Diskret matematik

hrp://www.sovicons.com/designers/deleket

Diskret matematik diskret = åtskiljd diskret obemärkt Gren av matema+ken logik mängdlära kombinatorik graveori topologi

Diskret och kontinuerlig

Diskret matematik i denna kurs Mängder Rela9oner Funk9oner Algoritmer Grafer och träd

Varför är diskret matematik viktigt för en kognitionsvetare? ER formellt språk för ar diskutera teorier och resonera inom/om t.ex. diskreta modeller i Ar9ficiell Intelligens Språkteknologi Programmering Databaser Denna kurs tar upp begrepp och deras nota+on, samt hur dessa används.

Diskreta modeller Världen är komplex och ovast inte diskret, men diskreta modeller är lärare ar jobba med: informa9on, kunskapsrepresenta9on språk (t.ex. bokstäver och ord) spelvärldar internt 9llstånd hos robot/agent nätverksstrukturer (t.ex. sociala nätverk, datornätverk)

Notation

f(x) =2x +3

{x x 2 N,x<10}

Begrepp

Exempel från uppgiftsanalys Task Layer Diagram er sär ar abstrahera och analysera uppgiver (Arnowitz 2004)

Initialt uppgiftsflöde för callcenterapplikation Open file Add record Input name Find Make call Check duplicates Create record Input telephone FIG. 11.3. Task set in an application flow chart.

Cykler borttagna och tidsflöde etablerat 0 Open file 1 2 Add record Find 3 Input name Input telephone Create record 4 Make call 5 Check duplicates 6 FIG. 11.4. Layering result after peeling.

Redundanta beroenden borttagna FIG. 11.5. Task Layer Map.

Uppgiftsanalysen en diskret modell består av en mängd uppgiver + riktade rela9oner mellan dem: en graf med hjälp av kunskaper i diskret matema9k får vi de begrepp vi behöver för ar representera dera i en dator vi kan sedan implementera er program som hjälper oss skapa er sådant diagram

Modellering med hjälp av diskret matematik Algoritmer er sär ar lösa problem som kan implementeras av datorprogram Exempel på uppgiver som kan lösas med en algoritm sökning (t.ex. ever en persons telefonnummer i en lista) tolkning/generering av språk analys av sociala nätverk

Vad är programmering?

D Sharon PruiR: hrp://www.flickr.com/photos/pinksherbet/

Programmering och kogvet Datainsamling Interak9onsdesign, interak9ons- och webbprogrammering Språkteknologi Simuleringar Ar9ficiell intelligens Närmaste fram+den 729G06 Programmering och logik (Kogvet 1, VT) 729G09 Språkvetenskaplig databehandling (Kogvet 1, VT) 729G43 Ar9ficiell Intelligens (Kogvet 2, HT)

Varför programmera? För ar man är lat... För ar datorn kan göra det snabbare För ar man vill simulera något För ar man vill automa9sera något För ar det är roligt! För ar man vill skapa något För ar datorn är bärre på ar hantera den typen av data...

ifttt.com

Att lära sig programmera Träning Tid Kunskap

hrp://www.flickr.com/photos/senoranderson/3363262014/

Vad gör man när man programmerar? Problemlösning Dela upp problemet i delproblem URrycker sig på er sär så ar en dator förstår Logiskt Tydligt Små steg i taget

patrick h. lauke: hrp://www.flickr.com/photos/redux/

Tekniken bakom programmering

En dator Program / Applika9oner Opera9vsystem Hårdvara

Hårdvara

Operativsystem Windows Mac OS X Linux BeOS, Solaris, ios, Android...

Program Word, Powerpoint Webbläsare Spel Videouppspelningsprogram...

En dator Program / Applika9oner Opera9vsystem Hårdvara

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 Program skrivs med hjälp av er programmeringsspråk Programmeringsspråk = formellt språk Svenska, engelska, tyska osv = naturliga språk

Program Formella språk skiljer sig från naturliga språk genom ar de: har en strikt syntax saknar tvetydighet är bokstavliga, dvs ingen9ng "mellan raderna"

Lista över programmeringsspråk

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 Summan av de två föregående fibonaccitalen. De första två är 0 och 1 0, 1 0, 1, 1 0, 1, 1, 2 0, 1, 1, 2, 3 0, 1, 1, 2, 3, 5...

Fibonaccital

Maskinkod 8B542408 83FA0077 06B80000 0000C383! FA027706 B8010000 00C353BB 01000000! B9010000 008D0419 83FA0376 078BD98B! C84AEBF1 5BC3! A func9on 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

def fib(n):! if n == 0:! return 0! elif n == 1:! return 1! else:! return fib(n-1) + fib(n-2)!

Vad har vi gått igenom idag? Allmän kursinforma9on Kort om diskret matema9k Kort om programmering Se Strand kap 1 för en mer detaljerad introduk9on.

Nästa föreläsning Diskret matema9k med Anders Märak Leffler Begrepp: Mängder (alltså inte mängder med begrepp, utan begreppet mängder)

! http://www.ida.liu.se/~729g04! 729G04@ida.liu.se!