Programmering. Hur, var, när och varför. 22 November. Lars Ohlén Tieto lars.ohlen@tieto.com



Relevanta dokument
Inledande programmering med C# (1DV402) Introduktion till C#

Introduktion till programmering, hösten 2011

SMD 134 Objektorienterad programmering

Inledande programmering med C# (1DV402) Introduktion till programmering

Introduktion till programmering

ALM Live: Testfokus bättre mjukvarukvalitét med Visual Studio 2008 Team System

Grundläggande programmering DVG A08 & ISG A04. Allmän information. Å vem är jag då. Karlstads Universitet, Johan Öfverberg 1

Innehålls förteckning

1:5 SLUTRAPPORT - POST MORTEN LARS EHRMAN WP

Objektorienterad Programmering (TDDC77)

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

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

Grundkurs i programmering - intro

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Continuous Integration med Jenkins. Linus Tolke Enea Experts

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

Objektorienterad Programmering (TDDC77)

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

Software Technology. Josef Svenningsson

Taxi boknings system, inpassering och medlemshanterings system, betallösningar, realtidssystem, App utveckling

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

Programmering av NXT Lego- robot Labbrapport för programmering av en Lego- robot

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

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk:

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

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

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Programmering för alla!

Kvalitetssäkra ditt projekt med kontinuerlig integration

Objektorienterad Programmering (TDDC77)

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

Programmering för alla!

Outline. Objektorienterad Programmering (TDDC77) Kursinfo. Outline. Hemsida. Organization. Ahmed Rezine Examination. Webreg.

Föreläsning 2. Operativsystem och programmering

Övning 1. Datateknik A, Java I, 5 poäng. Att ladda hem och installera Java Att skriva ditt första Javaprogram Att kompilera och exekvera ditt program

Föreläsning 3. Programmering, C och programmeringsmiljö

Java Programmer for JDK Developer for Java 2 Platform 2002

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion

Testdriven utveckling. Magnus Jonsson Siemens Medical Solutions

Göteborgs universitet Chalmers Tekniska Högskola

Föreläsning 3. Programmering, C och programmeringsmiljö

UTVECKLINGSVERKTYG. Praktiska tips för PUM-projekten

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

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Översikt 732G11 PROGRAMMERING 1. Personal. Kursens mål. Litteratur. Kursens innehåll

Program & programmering

Datorsystemteknik DAV A14 Föreläsning 1

KONSULTPROFIL Rodrigo

IT för personligt arbete F6

JAVAUTVECKLING LEKTION 1

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Programmering B med Visual C

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

Domänspecifika språk. TDP007 Konstruktion av datorspråk Föreläsning 5. Peter Dalenius Institutionen för datavetenskap

Curriculum Vitae. Systemutvecklare/konsult. Kontaktuppgifter. Sammanfattning. Uppgifter hos Pulsen. Stefan Elvestål. Född: 1973 Nationalitet: Svensk

F4. programmeringsteknik och Matlab

STYRKAN I ENKELHETEN. Business Suite

Lär dig programmera! Prova på programmering med enkla exempel! Björn Regnell

Preliminär specifikation av projekt

Objektorienterad programmering i Java I

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

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

SKOLFS. beslutade den XXX 2017.

12 principer of agile practice (rörlig)

PROGRAMMERINGSMETODIK

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Objektorienterad programmering i Java. Föreläsning 5 Kort om Java-Applets

ALM Live. April 2008 Effektivare projektarbete med Visual Studio 2008

Testning av applikationer

Laboration 10 - Eclipse

Elisabet Stöök Konsult SAS Institute AB Copyright 2003, SAS Institute Inc. All rights reserved.

Sustainable engineering and design

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

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Teknikprogrammet, inriktning informations- och medieteknik

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

Introduktion till hårdvara, mjukvara och operativsystem

Dela, koda och korrigera! Undervisningsmaterial inom digital kompetens

Daniel Persson. Födelsedatum: Vindragaregatan 3B, Göteborg Telefon: Portfolio:

Editering, Kompilering och Exekvering av Javaprogram

Utbildning. Anställningar. Jonathan Wahlund Topeliusvägen Bromma

Alla rättigheter till materialet reserverade Easec

Felsökning av mjukvara

Instruktioner för att kunna programmera på skolans datorer

Öppen/Fri programvara

Labb 1: Vad, hur, och varför?

OOP Objekt-orienterad programmering

Kurser inom våra tre ämnen

Objektorienterad programmering

DIG IN TO Nätverksadministration

Föreläsning 1 Datastrukturer (DAT037)

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

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

1 Installationsinstruktioner

Innehållsförteckning. 9 Större projekt Övningsuppgifter...32

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

Transkript:

Programmering Hur, var, när och varför 22 November Lars Ohlén Tieto lars.ohlen@tieto.com

Agenda Om mig Programmering Vad är? Varför kunna? Hur använda kunskapen? Framtiden Sammanfattning Q+A 2

Om mig Arbetat mer än 25 år i IT branschen 30 år med programmering Arbetat på statliga myndigheter, konsultbolag och produktbolag Olika roller: programmerare, systemledare, arkitekt, affärsutveckling Anställd på Tieto 18000 anställda 30 länder Ledande IT företaget i Norra Europa Karlstad ca 450 anställda

Jag och programmering Min trevande början 10 PRINT HEJ 20 GOTO 10

Jag och programmering Min trevande början 10 PRINT HEJ ; 20 GOTO 10

Programmering En definition Programmering handlar om att instruera en maskin eller del av en maskin, till exempel en mikrodator, dator, robot eller NC-maskin att utföra ett visst arbete [Wikipedia, 2012-11-13] 6

Programmering I Vardagen Ex Inspelningsbar DVD Timers Klimatkontroll 7

Programmering I Vardagen Microsoft Excel 8

Programmering I detta sammanhang Programmering är att skriva rätt instruktioner i ett programspråk för att lösa ett visst problem. [Lars, nyss] 9

Vad finns program? Stationära datorer Laptops Stordatorer Smart Phones 10

Program Överallt! Hissar Blu-Ray spelare Bilar I våra hem 11

Program Några ytterligare definition Många olika typer av program. Ex Klientapplikation (Windows /Linux) Appar (för Smart Phones) Web applikationer Server lösningar Drivrutiner (styrprogram) för t.ex. printrar Inbäddade system (gränsen mellan hårdvara tunn) Många namn: Program, Programvara - det kom körs Mjukvara, Software, källkod, kod - det man skriver Program som samverkar kallas system Ex. operativsystem 12

Program i sin enklaste form 0101000110100101 0101000101010001 0101100101010101 1110011101111111 13

Program Historia Från Wikipedia 14

Olika programspråk MOV AH,9 MOV DX,offset hello INT 21h MOV AH,4Ch INT 21h hello db 'Hej',0dh,0ah,'$' Assembler #include <stdio.h> void main (int argc, char **argv) { printf ( Hej\n ); } C public class Message { public static void main (String[] args) { System.out.println ( Hej ); } } Java 15

Programmering En enkel beskrivning Symbolisk beskrivning Källkod Översättning 01010001 10100101 01010001 01010001 01011001 01010101 11100111 01111111 Körbar kod 16

Programmering Många olika programspråk Varför finns det många olika programspråk? Ändamål! Miljömiljön Ingen kan alla språk - många kan några Programspråket C grund till många 17

Vad gör programmeraren? En programmerare: Kan programvarukonstruktion (Software Engineering) Algoritmer och datastrukturer Kan programspråket som används Goda kunskaper om målmiljön Har domänkunskap! 18

Vad gör programmeraren? Skapar program som: Uppfyller de krav som ställts (av kund) Är fel - och driftsäkra Utnyttjar datorns resurser på ett effektivt sätt Skriver programkoden på ett sätt som andra kan förstå Enkelt går att vidareutveckla 19

Programutveckling Programmerarens roll klassiskt Behov Krav Modell Program Verifierat program Kravdefinition Design Programmering Test

Programmerare -> Systemutvecklare Finns nästan inga programmerare längre! Titeln är oftast systemutvecklare Design Test Dialog med kund om krav Modern mjukvara skrivs inte - den byggs ihop! Ta in färdiga komponenter 3rd parts inköpta moduler Open Source Integrera med tjänster på nätet Öppna tjänster Cloud tjänster

Att arbeta som systemutvecklare Arbete sker ofta/alltid i projektform Projekt består av 1 eller flera teams Oftast enligt Scrum, Canban (projektformen) Team Cross-functional teams Ofta geografiskt spridda Självständigt Korta delmoment Work tasks drivet (arbetsuppgift, felrapporter) Kontinuerlig testning Tät avstämning med kund

Vardagsvy 23

Arbetsprincip Tasks databas Arbetsuppgifter (JIRA, Jazz, Bugzilla) Utvecklings miljö Skriver programkod Kompilerar Debug Unit test Uppdaterar tasks Check-in / check-out Versions hantering system Källkod (SVN, Git etc) 24

Vanlig arbetsmetodik Continuous Integration Static Code analysis Versions hantering system Continuous Integration (Jenkins, Hudson) Build Test incheckningar Deploy 25

Varför kunna programmering? Jobba i IT branschen men inte med programmering IT branschen har många andra yrkesroller. Ex Projektledare Testare Kravanalytiker Arkitekter Team ledare Chef Genomgående är att man klarar alla roller mycket bättre med bra insikt i programmering Bättre överlevnad I grund och botten: All IT verksamhet bygger på mjukvara! 26

Varför kunna programmering? Varför ska en icke IT ingenjör kunna programmera Mjukvara styr världen! Gränsen mellan hårdvara och mjukvara suddas ut De senaste 20 åren har hela branscher ställts om Finansindustrin, Bilindustrin, Telefonoperatörer Mjukvaran är företaget kan inte bara hanteras av IT människor! Domänkunskapen + programmeringskunskaper = din personliga framgång! 27

Varför kunna programmering! Varför ska en icke IT ingenjör kunna programmera Roll som kravställare Bättre dialog med systemutvecklare! Kombinationskunskaper viktig för innovation Konkurrensfördel för din potentiella arbetsgivare 28

Framtiden Det är svårt att göra förutsägelser i synnerhet om framtiden [Niels Bohr]

Framtid. Värden kommer att vara ännu mer beroende av mjukvara 50 miljarder uppkopplade enheter inom 10 år Prylar som idag är dumma kommer att bli smarta Enorma mängder data som genereras! Högre hastigheter och täckning på mobilnäten Nya tjänster som inte finns än 30

Framtid. Kraven på utveckling kommer att förändras Få fram mjukvara på kortare tid, med mer finnesser och till ett lägre pris! Principer för systemutveckling måste förändras! Snabbare gå från krav till färdig lösning Modellbaserad utveckling kan vara en lösning Beskriva system med grafiska modeller (ex UML) Generera kod alt exekverbara modeller 31

Sammanfattningsvis Mjukvara är ett viktigt konkurrensmedlen i många branscher. Program finns överallt Systemutvecklare måste ha domänkunskap Programmeringskunskaper en bra baskunskap även om du inte tänker jobba med programmering Mjukvara kommer att bli ännu viktigare i framtiden Mjukvara i miljarder uppkopplade prylar Sättet vi tar fram mjukvara på kommer att förändras

? 33

Tack! 34

35