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



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

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

Seminarier i datavetenskap, datorteknik och informationsteknik

Seminarier i datavetenskap, datorteknik och informationsteknik

Seminarier i datavetenskap, datorteknik och informationsteknik

Seminarier i datavetenskap, datorteknik och informationsteknik

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?

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

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

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

Datavetenskapligt program, 180 högskolepoäng

Datateknik Teknologie kandidatexamen, 180 sp

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

Datavetenskapliga programmet, 180 hp

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

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

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

Introduktion till Programmering. Dåtid, nutid och framtid

Kandidatprogrammet. Pedher Johansson. 5 september 2011

Programmering, grundkurs

Objektorienterad programmering

Programinformation för Webb, internet och programvaruteknik, 120 högskolepoäng

Objektorienterad programmering

CIVILINGENJÖRSEXAMEN MASTER OF SCIENCE IN ENGINEERING

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

Ny programansvarig och visioner för Datateknik, 300hp

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

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

Studienämnden Data

PROGRAMRÅD INTERAKTIONSDESIGN

Välkomna till Utvecklingsarbetet Nykomna Svenskar Lärande seminarium 2. Landstinget i Jönköpings län

Teknikprogrammet, inriktning informations- och medieteknik

Riktlinjer för Verksamhetsförlagd utbildning, VFU6, inom förskollärarutbildningen. Ht 15

CTH-IT-Data original Sida 1 INFORMATIONS- TEKNIK. 300hp

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

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

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

Sammanställning kursutvärdering

Kommande kurser om samspelet mellan människa och teknik. Mattias Wallergård Institutionen för designvetenskaper

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

VIMENTIS VIP. FÖR STARTUPS & SMÅFÖRETAGARE Med hjälp utav Vimentis VIP kommer en helt ny värld att öppnas upp för dig som företagare.

Föreläsning 1 & 2 INTRODUKTION

Programinformation för. Masterprogram i Software Engineering, 120 högskolepoäng

Bättre Självförtroende NU!

Kursrapport Förskollärarutbildning, 210 hp

LEGO Mindstorm-robot

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

Datavetenskapligt program, N1COS

SKOLFS. beslutade den XXX 2017.

13. Vad tycker du om samarbete och enskilt arbete på kurserna när det gäller laborationer?

ITinstitutionen bit för bit

Konsten att leda workshops

Specialiseringar InfoCom

Sammanställning av studentutvärderingen för kursen Estetiska lärprocesser 15 hp, ht 2007

Ungdomsgruppen 18 april

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

Kursutvärdering Digital kompetens/it-ämnen vt11

TEKNIK/EKONOMIPROGRAMMET, 120 POÄNG Programme for Business Economics and Engineering, 120 points

Datavetenskapliga programmet, Spel, 180 högskolepoäng

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

Datavetenskapliga programmet, Mjukvaruutveckling 180 högskolepoäng

Datavetenskapliga programmet, 180 högskolepoäng

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

3=delvis av samma åsikt. 4=helt av samma åsikt

Innehållsförteckning Sida 3 Om IT-Högskolan Sida 4-5.NET-utvecklare Sida 6-7 Applikationsutvecklare till iphone och Android Sida 8-9 Mjukvarutestare

Liten introduktion till akademiskt arbete

Ungdomars inställning till IT

Vill du lära känna cheferna på Microsoft, IBM och Ericsson redan innan du har tagit examen?

Grupparbete om PBL Problembaserat Lärande

Objektorienterad programmering

Prototyping. Planera och genomföra webbproduktionsprojekt. Innehåll. Fördelarna med Pappersprototyper. Lofi-prototyp. Prototyping

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

Gruppenkät. Lycka till! Kommun: Stadsdel: (Gäller endast Göteborg)

Att överbrygga den digitala klyftan

Vad roligt att ni har valt att bjuda varandra på den här timmen.

Filosofie kandidatexamen med huvudområdet datavetenskap. Degree of Bachelor of Science with a major in Computer Science Grundnivå

Ämnesdidaktik: Svenska samhällsförhållanden 1 & 2 Ht 10 Upplägg, uppgifter & examination

En annan mycket roligare del i arbetet var att jag ofta fick följa med min handledare ut på

Vanliga frågor och svar om Förskollärarutbildningen med inslag av validering utannonsering till höstterminen 2016

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

Grunderna i stegkodsprogrammering

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

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

HF0010. Introduktionskurs i datateknik 1,5 hp

Thomas Padron-Mccarthy Datateknik B, Mobila applikationer med Android, 7.5 hp (Distans) (DT ) Antal svarande = 14

Välkommen till IT-design programmet :-D

Datavetenskapligt program, N1COS

KREATIVA BÖNESÄTT. en praktisk hjälp till dig som är ledare! Initiativtagare till materialet: Maria Melin

Kortfattad sammanfattning av studenternas synpunkter och förslag

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

Introduktion till programmering. Programspråk och paradigmer

729G06 Föreläsning 1 Objektorienterad programmering

OKT/2015 ALLT OM DÖRRAR. Nyhetsbrev Arkitekter

Programmering A. Johan Eliasson

Designmönster - EMW. Kent Petersson epost1: kentp@cs.chalmers.se epost2: kent.petersson@emw.ericsson.se URL:

ENHETSRAPPORT - SOLHEMS GRUPPBOSTÄDER I O II

Programvaruteknik, hp

Industriutbildningar. Hösten 2014

Dethär tycker vi är viktigt! De ungas röst Ann Backman

Att ge feedback. Detta är ett verktyg för dig som:

Transkript:

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

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

Översikt Kort feedback från introprogrammeringen Fyll i enkäten!! 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

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 lapparna (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

Quiz: Vanligaste svaret på frågan Vilka råd vill jag ge till nästa års studenter? Utmana er själva! (28) Ta föreläsningarna på allvar (21) 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

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 Management 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å ) kanhjä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 Management 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: Objekt-orienterad programmering Maskinnära programmering Funktionell programmering

Objektorientering (OO) OO programmering (introduktionskurs) Grundläggande imperativ programmering, introduktion till objekt och OO-tänkande (Java) OO programmering, 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 Programmering av Inbyggda System Fokus på maskinnära programmering (C) Datatekniskt projekt Applicera i praktiken (Inbyggda system (Master), datorsystem, hårdvarukonstruktion ) Mer nästa seminarium: Digital konstruktion och inbyggda system, 8/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, 22/10 (Lp1 w8)

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, w1) 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: Programmering av inbyggda system (EDA481) Andra maskinnära kurs (C) År 2/3: Datatekniskt projekt (DAT290); valbart. Ex: Parallell Programmering (TDA383); Advanced FP (TDA342)

Informationsteknik LP1: Objektorienterad programvaruutveckling (TDA545) Första OO-kurs LP1: Grundläggande datorteknik (EDA433) Första maskinnära kurs (assembler) LP2: Objektorienterad programvaruutveckling, fortsättningskurs (TDA550) Andra OO-kurs LP4: Objektorienterat programmeringsprojekt Tredje OO-kurs År 2/3: Programmering av inbyggda system (DAT016); valbart. Ex: Parallell Programmering (TDA383); Funktionell Programmering (TDA452); AdvancedFP (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: 2015-10-08 Var: HB4 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.