Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg

Relevanta dokument
Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg niklas.broberg@chalmers.

Seminarier i datavetenskap, datorteknik och informationsteknik

Seminarier i datavetenskap, datorteknik och informationsteknik

Seminarier i datavetenskap, datorteknik och informationsteknik

Seminarier i datavetenskap, datorteknik och informationsteknik

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

Datavetenskapligt program, 180 högskolepoäng

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

Introduktion till Programmering. Dåtid, nutid och framtid

Ny programansvarig och visioner för Datateknik, 300hp

Kurser inom Datavetenskapligt kandidatprogram och Computer Science Master s programme våren 2010

Programmering, grundkurs

Objektorienterad programmering

Objekt-orienterad Programmering och Design. TDA551 Alex Gerdes, HT-2016

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

CIVILINGENJÖRSEXAMEN MASTER OF SCIENCE IN ENGINEERING

Specialiseringar InfoCom

13 1MA302 Automatateori DV1 4 A D, M 1TD442 Algoritmer och datastrukturer DV1 6 A D

Datavetenskapligt program, 180 högskolepoäng

Objekt-orienterad programmering och design. DIT953 Niklas Broberg, 2018

Introduktion till programmering. Programspråk och paradigmer

SKOLFS. beslutade den XXX 2017.

Ökad valbarhet för Systemvetenskapliga programmet. Möjlighet till inriktning

INSTITUTIONEN FÖR DATA- OCH INFORMATIONSTEKNIK

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID

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

Att välja kurser på Datateknik år 4-5

Objekt-orienterad Programmering och Design. TDA552 Alex Gerdes, HT-2018

Fakulteten för ekonomi, kommunikation och IT. Utbildningsplan. Högskoleingenjörsprogrammet i datateknik

Datateknik Teknologie kandidatexamen, 180 sp

Beslut om fastställande: - - Behörighetskrav: -

Välkommen till IT-design programmet :-D

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

Poäng. Start v. Applikationsprogramm ering i Python 7.5. Antal registrerade (män/kvinnor) 50 (34/16)

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

Varmt välkommen till IT-design programmet :-D

Maskinorienterad Programmering LP3-2017/2018

Fakulteten för ekonomi, kommunikation och IT. Utbildningsplan SGITD. IT-Designprogrammet. Study programme in IT-Design

1DV433 HT13. I vilken utsträckning har kursens innehåll och uppläggning gett förutsättningar för att du ska ha uppnått respektive lärandemål?

729G06 Föreläsning 1 Objektorienterad programmering

Information om utbildningsprogram. Högskoleingenjör Datateknik - TIDAB

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

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

Fakulteten för ekonomi, kommunikation och IT. Utbildningsplan SGITD. IT-design. Study programme in IT-Design

Fakulteten för ekonomi, kommunikation och IT. Utbildningsplan. Högskoleingenjörsprogrammet i datateknik TGDDI

Utbildningslinjen för Informationsteknologi

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Objektorienterad programmering

Programvaruteknik, hp

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

Datavetenskapliga programmet, Spel, 180 högskolepoäng

Datavetenskapligt program, N1COS

Maskinorienterad Programmering IT2, LP2-2016/2017

Syfte : Lära sig objektorienterad programmering Syfte : Lära sig programmering i ett OO-språk vilket?

Utbildningsplanen är fastställd av fakultetsnämnden för medicin, naturvetenskap och teknik den 29 april 2005.

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

Presentation. Curriculum Vitae för Lars Kristiansson,

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

Imperativ programmering

Att välja kurser på Datateknik år 4-5

Datavetenskapliga programmet, Mjukvaruutveckling 180 högskolepoäng

Datavetenskapliga programmet, 180 högskolepoäng

Information från programledningen

-Programinformation, årskurs 1 Arto Heikkilä, programansvarig elektro Arne Linde, programansvarig data

Datavetenskapliga programmet, 180 hp

? sensornätverk, distans

DATA- OCH INFORMATIONSTEKNIK

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

Utbildningsplan. IT-design. Dnr: HS 2015/154

Inför valet vt18. Medieteknik TFE: MDI-inriktning Datavetenskap: Datavetenskap - Programvaruutveckling:

Civilingenjör i Mjukvaruteknik vid Linköpings Universitet Mål, Design och Erfarenheter

Datavetenskapligt program, N1COS

Högskoleingenjörsutbildning i datateknik, 180 högskolepoäng. Computer Engineering Programme, 180 Higher Education Credits

Distribuerade affärssystem

Programschemat är beslutat av utbildningsledare Kristina Lundqvist vid akademin för innovation, design och teknik Reviderat

Informationsträff IT-design

Kandidatprogram, informations- och kommunikationsteknik Bachelor's Programme in Information and Communication Technology 180,0 högskolepoäng

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

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

Viktiga roller. Martin Blom, , rum 21E411. Inger Bran, , rum 21E414

Undervisningsprogram Uppdaterad DATAVETENSKAP

Innehåll. Mina målsättningar. Vad krävs för att nå dit? Obligatoriska uppgifter. Websajten. Datastrukturer och algoritmer

Introduktionsmöte Innehåll

SKOLFS. beslutade den -- maj 2015.

Kursinformation Grundkurs i programmering med Python

Undervisningen i ämnet programmering ska ge eleverna förutsättningar att utveckla följande:

Studienämnden Data

Utbildningsplan för. International Software Engineering, 180 högskolepoäng

Studienämnden Data

Grundkurs i programmering - intro

Föreläsning 1, vecka 6: Abstraktion genom objektorientering

Kandidatprogrammet. Pedher Johansson. 5 september 2011

F1 Introduktion och ingenjörsrollen

TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java

Computer Science, masterprogram

Imperativ programmering. Föreläsning 4

Civilingenjör i datateknik, 300 hp

Transkript:

Programmering Seminarier i datavetenskap, datorteknik och informationsteknik Niklas Broberg niklas.broberg@chalmers.se 2017-09-21

Hur många från Datavetenskap? Datateknik? Informationsteknik?

Översikt Programmering som koncept Vad är det? Vad omfattas rent generellt? Hur förhåller sig programmeringen till andra områden inom D&IT? Programmering i er utbildning Vad kommer ni möta? Vad skiljer de tre studieprogrammen åt? Vilka möjligheter finns till fördjupning?

Quiz: Vanligaste svaret på frågan Vad har kursen lärt mig om mitt eget lärande? Reflektera (41) Diskussion är bra! (19) Jag kan mer än jag tror (10) Våga fråga (5) Jobba aktivt med materialet (17) Grupparbete (11) Inget, jag kunde allt (3) Studieteknik (31)

Noterbart Att det är upp till mig själv om jag vill lära mig något Att hobbyprojekt är viktiga Att jag inte borde jämföra mig så mycket med andra

Noterbart Att jag egentligen inte behöver en lärare/mentor. Jag lär mig på egen hand och ansvarar helt och hållet för mitt eget lärande. En lärare underlättar definitivt. Hur bra gruppinlärning faktiskt kan fungera om man tänker på själva inlärningsprocessen och har inlärningen som mål istället för uppgiften.

Quiz: Vanligaste svaret på frågan Vad kommer jag minnas om fem år? Python (39) Pyramiden (24) Allt! (4) Tänka logiskt (3) Reflektera (21) Uni /= gymnasiet (4) Inget (1) Studieteknik (25)

Noterbart De här övningarna (3) Kunskapen om lärande är applicerbar bortom programmeringen Jag kan lära mig vad som helst om jag bara tror på mig själv och försöker

Noterbart Hur det kändes att bli inslängd i att börja koda direkt utan att ha någon koll alls och hur man kände att man utvecklades från första tillfället till sista. Även om det kändes omöjligt i början att ta till sig något gjorde man det nästan utan att märka det. Hur vilsen jag kände mig i början och hur bra det kändes sen ju längre tiden gick och att man lär sig fatta till slut.

Quiz: Vanligaste svaret på frågan Vilka råd vill jag ge till nästa års studenter? Utmana er själva! (28) Ta läxor och föreläsningar på allvar (27) Diskutera (16) Försök själv hemma (11) Hitta rätt grupp (20) Var aktiv (20) Reflektera (8) Våga fråga! (25)

Noterbart Lyssna det är inte samma skit som tidigare Man lär sig så mycket som man vill lära sig Våga fråga det är nu folk har som mest förståelse för din okunskap

Kursutvärdering Kommer skickas ut under nästa vecka fyll i den!!!

Programmering vad är det? Kommunikation mellan programmerare och dator Konkret användning av ett programspråk, bibliotek, ramverk, Modeller, paradigmer, mönster, algoritmer, (Möjligheter och begränsningar, beräkningsbarhet, )

Programlogik Machine Learning Data Science Algoritmer Datasäkerhet Programspråk Programmeringsparadigmer Software Engineering IT Manageme Programmering Datorarkitektur Nätverk och distribuerade Datorgrafik system (användning) Interaktionsdesign Inbyggda system Kommunikationsteknik Människa- Dator- Interaktion

Abstraktion vs precision Hög-nivå vs låg-nivå Hur utvecklar vi program så effektivt som möjligt? Hur utvecklar vi så effektiva program som möjligt? Abstraktion ( hög-nivå ) kan hjälpa till med båda men ibland krävs precision för det senare (ex Datorgrafik)

Paradigmer Sätt att tänka kring programstruktur Objekt-orienterad, imperativ, funktionell, reaktiv, parallell, Inga tydliga gränser Olika programspråk har inbyggt stöd för vissa paradigmer men de flesta paradigmer går att applicera i de flesta språk bara med olika mycket stöd

Mönster Givet en paradigm, hur strukturerar jag mitt program? Inbyggda verktyg ( vad ): Funktioner, metoder, objekt, algebraiska datatyper, typklasser, generiska metoder, Användningsmönster ( hur ): Events, observers, stream transformers, semaphores, factories, facades, Ett mönster går oftast att uttrycka i vilket språk som helst det är bara mer eller mindre komplicerat Olika språk kan ha inbyggt stöd för olika mönster

Forskning om programmering? Hur kan vi skriva mer effektiva program? Algoritmer, programspråk, datorarkitektur Hur kan vi utveckla program mer effektivt? Software engineering, programspråk Hur kan vi göra programmering lättare? Programspråk, paradigmer

Programlogik Machine Learning Data Science Algoritmer Datasäkerhet Programspråk Programmering design Programmeringsparadigmer (forskning) Software Engineering (användning) Inbyggda system IT Manageme Datorarkitektur Programmering Nätverk och distribuerade Datorgrafik system Interaktions- Kommunikationsteknik Människa- Dator- Interaktion

Vi utbildar inte programmerare! Vi utbildar datavetare och ingenjörer! Mycket bredare roller än programmerare

Plats för alla! Alla behöver inte (bör inte!) bli programmerare! men alla behöver förstå programmering.

Tre studieprogram Datavetenskap Väldigt brett, (extra) flexibelt program Teoretiskt fokus Datateknik DATAvetenskap + datorteknik Flexibelt men spetsfokus mot hårdvara Informationsteknik Flexibelt men spetsfokus mot mjukvara

Programmering i utbildningen Vi tillhandahåller tre tydliga spår: Imperativ/Objekt-orienterad programmering Maskinnära programmering Funktionell programmering

Objektorientering (OO) Imperativ/OO programmering (introduktionskurs) Grundläggande imperativ programmering, introduktion till objekt och OO-tänkande (Java) OO programmering och design (fortsättningskurs) Stort fokus på OO-tänkande OO programmeringsprojekt Applicera i praktiken (Modellering, processer, Software Engineering (Master))

Maskinnära programmering Grundläggande datorteknik Introduktion till lågnivå-programmering, assembler Maskinorienterad Programmering Fokus på lågnivå-programmering (C) Datatekniskt projekt Applicera i praktiken (Inbyggda system (Master), datorsystem, hårdvarukonstruktion ) Mer nästa seminarium: Digital konstruktion och inbyggda system, 5/10 (Lp1 w6)

Funktionell programmering (FP) (Introduktion till) FP Grundläggande funktionell programmering, introduktion till FP-tänkande Avancerad Funktionell Programmering Stort fokus på FP-tänkande (Parallell FP) Mer på seminariet om Funktionell programmering, 30/11 (Lp2 w5)

Breda koncept Datastrukturer, Algoritmer Applicerbart inom alla paradigmer (om än med viss specialisering) Läses av alla programmen Mer om detta på seminariet om Algoritmer (Lp2, w7) Parallell programmering Arbeta med trådar, processer och parallellism

Bredd vs spets Bredd: Läs alla introduktionskurser! Ger en större förståelse än summan av komponenterna Spets: Fokusera på ett område för framtida specialisering Största skillnaden mellan programmen

Datavetenskap LP1: Introduktion till Funktionell Programmering (DIT440) LP2: Imperativ programmering med grundläggande objektorientering (DIT012) Första OO-kurs LP3: Objektorienterad programmering och design (DIT952) Andra OO-kurs År 2/3: Parallell programmering (DIT390); massor av valbart! Ex: Grundläggande datorteknik (DIT791); Programmering av inbyggda system (DIT152); Advanced FP (DIT260);

Datateknik LP1: Introduktion till Funktionell Programmering (TDA555) LP2: Grundläggande Datorteknik (EDA452) Första maskinnära kurs (assembler) LP3: Objektorienterad programmering (DAT043) Första OO-kurs LP4: Maskinorienterad Programmering (EDA482) Andra maskinnära kurs (C) År 2/3: Datatekniskt projekt (DAT290); valbart. Ex: Parallell Programmering (TDA383); Advanced FP (TDA342)

Informationsteknik LP1: Grundläggande programvaruutveckling (TDA548) Första OO-kurs LP1: Grundläggande datorteknik (EDA433) Första maskinnära kurs (assembler) LP2: Objektorienterad programmering och design (TDA552) Andra OO-kurs LP3: Maskinorienterad programmering (DAT017) Andra maskinnära kurs (C) År 2/3: Objektorienterat programmeringsprojekt (TDA367); valbart. Ex: Parallell Programmering (TDA383); Funktionell Programmering (TDA452); Advanced FP (TDA260);

Vidare möjligheter Mer i kommande seminarier om: Inbyggda system (nästa seminarium) Fokus på maskinnära program Precision, hårdvaruintegrering Programspråksteknologi (lp3) Teorier och mekanismer bakom programspråk Software Engineering (lp4) Fokus på mjukvaruutveckling Modeller, högre-nivå-abstraktion Processer för utveckling

Frågor?

Nästa seminarium: Vem: Lars Svensson När: 2017-10-05 Var: Se utskick. Digital konstruktion och inbyggda system Vart vi än vänder oss omges vi av datoriserade manicker: på skrivbordet, på soffbordet, på väggen i vardagsrummet, i fickan, i bilen Och detta är bara de som vi ser på nära håll: varken telenätet, elnätet, vattenförsörjningen, transportsystemen eller det mesta av industriproduktionen skulle fungera utan inbyggda elektronik- och datorsystem, i alla fall inte effektivt. Området "Digital konstruktion och inbyggda system" handlar om alla dessa manicker och om hur man konstruerar dem så att de erbjuder nödvändig flexibilitet, prestanda och batteritid. Vi rör oss från enstaka transistorer och grindar upp till enklare processorkärnor, där området "Datorarkitektur" tar vid; men även mot områden där prestanda- och effektkrav är alltför tuffa för processorlösningar.