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

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

Ny programansvarig och visioner för Datateknik, 300hp

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

Programmering, grundkurs

Objektorienterad programmering

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Datavetenskapligt program, 180 högskolepoäng

Introduktion till programmering. Programspråk och paradigmer

CIVILINGENJÖRSEXAMEN MASTER OF SCIENCE IN ENGINEERING

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

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

INSTITUTIONEN FÖR DATA- OCH INFORMATIONSTEKNIK

Specialiseringar InfoCom

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

Välkommen till IT-design programmet :-D

SKOLFS. beslutade den XXX 2017.

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

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

Presentation. Curriculum Vitae för Lars Kristiansson,

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

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

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

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

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

Datavetenskapligt program, N1COS

729G06 Föreläsning 1 Objektorienterad programmering

Datateknik Teknologie kandidatexamen, 180 sp

Objektorienterad programmering

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

Maskinorienterad Programmering LP3-2017/2018

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

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

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

Datavetenskapligt program, N1COS

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

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

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

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

? sensornätverk, distans

Studienämnden Data

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

Programvaruteknik, hp

Studienämnden Data

Introduktion till Programmering. Dåtid, nutid och framtid

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

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Utbildningslinjen för Informationsteknologi

Computer Science, masterprogram

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

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

Maskinorienterad Programmering IT2, LP2-2016/2017

PROGRAMMERINGSMETODIK

Datavetenskapliga programmet, Spel, 180 högskolepoäng

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

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

Datavetenskapliga programmet, 180 hp

Distribuerade affärssystem

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

Informationsträff IT-design

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

Increased free choice for Systemvetenskapliga programmet. Possibility to specialize

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

Programinformation VT 2012 för

Objektorienterad programmering

Kandidatprogrammet. Pedher Johansson. 5 september 2011

Utbildningsplan. Fakulteten för teknik. Utveckling och drift av mjukvarusystem, 180 högskolepoäng Software Development and Operations, 180 credits

LOKAL UTBILDNINGSPLAN INFORMATIKPROGRAMMET 120 POÄNG IF04

Datavetenskapliga programmet, Mjukvaruutveckling 180 högskolepoäng

Datavetenskapliga programmet, 180 högskolepoäng

Information från programledningen

Undervisningsprogram Uppdaterad DATAVETENSKAP

Kurser inom våra tre ämnen

DATATEKNIK, TkK ÅRSKURS 1 Läsåret Block Kod Lärare Datum Tid och auditorium M Ti O To F

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

Utbildningsplan. Utbildningens mål. Kunskap och förståelse. Gäller för antagna till utbildningen fr o m HT18.

Civilingenjör i datateknik, 300 hp

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

TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java

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

Till detta finns specifika tillägg för de olika inriktningarna, se bilaga 2.

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

Välkomna! WWW-adress:

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

Programbeskrivning för Datateknik, 300hp (Chalmers)

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

Utbildningsplan. Utbildningens mål. Kunskap och förståelse. Gäller för antagna till utbildningen fr o m HT17.

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

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo

Utbildningsplan. Utbildningens mål. Kunskap och förståelse. Färdigheter och förmågor. Gäller för antagna till utbildningen fr o m HT15.

Utskrift Kurser - enkel lista

SKOLFS. beslutade den -- maj 2015.

Transkript:

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

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?

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 Spetsfokus mot modellering och korrekthet 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 på framtida seminarium om Digital konstruktion och inbyggda system

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å framtida seminarium om Funktionell programmering

Breda koncept Datastrukturer, Algoritmer Applicerbart inom alla paradigmer (om än med viss specialisering) Läses av alla programmen Mer om detta på senare seminarium om Algoritmer 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 (DIT953) Andra OO-kurs År 2/3: Parallell programmering (DIT391); massor av valbart! Ex: Grundläggande datorteknik (DIT791); Maskinorienterad programmering (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 (vt) Fokus på maskinnära program Precision, hårdvaruintegrering Programspråksteknologi (vt) Teorier och mekanismer bakom programspråk Software Engineering (lp2) Fokus på mjukvaruutveckling Modeller, högre-nivå-abstraktion Processer för utveckling

Kursutvärdering För introprogrammeringen, nu utskickad!

Frågor?