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



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

Studentportalen UNIX-konton (systemansvariga P4118) Lärare: Anna Eckerdal,

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

Studentportalen UNIX-konton (systemansvariga P4118) Lärare: Tom Smedsaas,

Programmeringsteknik I

Föreläsning 1: Introduktion till kursen

Föreläsning 1: Introduktion till kursen

Föreläsning 1: Introduktion till kursen

Grundkurs i programmering - intro

Program & programmering

Introduktion till programmering och Python Grundkurs i programmering med Python

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

Föreläsning 2. Operativsystem och programmering

OOP Objekt-orienterad programmering

Programmeringsteknik II

Datorsystemteknik DAV A14 Föreläsning 1

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647

Datorarkitektur. Informationsteknologi sommarkurs 5p, Agenda. Slideset 3

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

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

Imperativ programmering

Föreläsning 1 & 2 INTRODUKTION

TDDC77 Objektorienterad Programmering

Viktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator

Lågnivåprogrammering. Föreläsning 2 Lågnivåprogrammering. Binära tal. En enkel modell av datorns inre

Programmering för alla!

IT för personligt arbete F5

Objektorienterad Programmering (TDDC77)

Föreläsning 1 & 2 INTRODUKTION

Välkomna till kursen i grundläggande programmering DVGA08, ISGA04

Objektorienterad Programmering (TDDC77)

Programmering för alla!

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

Grundläggande datavetenskap, 4p

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

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

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

System S. Datorarkitektur - en inledning. Organisation av datorsystem: olika abstraktionsnivåer. den mest abstrakta synen på systemet

HF0010. Introduktionskurs i datateknik 1,5 hp

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär:

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

Objektorienterad programmering i Java

Föreläsning 5 5DV086 - Programspråk

Introduktion till programmering

Introduktion till programmering. Programspråk och paradigmer

DD1361 Programmeringsparadigm Föreläsning 1: Intro

KURSMÅL WINDOWS STARTA KURSEN

Introduktion till programmering, hösten 2011

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

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

Felsökande av en Lego Mindstorm robot

Innehålls förteckning

Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade)

Programmering och begrepp

Datorsystemteknik DAV A14 Föreläsning 1

Programmering. Den första datorn hette ENIAC.

Definition DVG A06. Varför operativsystem? Operativsystem. Översikt. - Vad är ett operativsystem?

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

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

TDDE44 Programmering, grundkurs

JAVAUTVECKLING LEKTION 1

Boken?!?! Vad är ett program? Kompilerande-Interpreterande Programmeringsmiljö Hello World! Att programmera och ett enkelt program Variabler printf

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

Programmering och begrepp

Programmering A. Johan Eliasson

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

DD1361 Programmeringsparadigm Föreläsning 1: Intro

SMD 134 Objektorienterad programmering

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

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

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

Programutveckling med Java 7.5 p, ht 2007 (D0019N) STUDIEHANDLEDNING - ALLMÄN INFORMATION

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

Operativsystem DVG A06. Definition. Varför operativsystem? - Vad är ett operativsystem?

OOP F1:1. Föreläsning 1. Introduktion till kursen OOP Vad är Java? Ett första Java-program Variabler Tilldelning. Marie Olsson

Datorhistorik. Föreläsning 3 Datorns hårdvara EDSAC. Eniac. I think there is a world market for maybe five computers. Thomas Watson, IBM, 1943

Assemblerprogrammering del 1

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

DVG A06. Operativsystem, mm. Karlstads universitet Datavetenskap. DVG A06 Johan Eklund. Datavetenskap, Karlstads universitet 1

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

729G06 Föreläsning 1 Objektorienterad programmering

Digital- och datorteknik

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

F4. programmeringsteknik och Matlab

Varmt välkommen till en helt ny värld.

NetBeans 7. Avsikt. Projektfönster

Planering Programmering grundkurs HI1024 HT TIDAA

6. Ge korta beskrivningar av följande begrepp a) texteditor b) kompilator c) länkare d) interpretator e) korskompilator f) formatterare ( pretty-print

Planering Programmering grundkurs HI1024 HT data

Tentamen i Programmeringsteknik I, ES,

Imperativ programmering. Föreläsning 4

Programmering från början

Kursinformation Grundkurs i programmering med Python

Digitalt lärande och programmering i klassrummet

Program kan beskrivas på olika abstrak3onsnivåer. Högnivåprogram: läsbart (för människor), hög abstrak3onsnivå, enkelt a> porta (fly>a 3ll en annan ar

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

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

Mer datorarkitektur. En titt I datorn Minnen

Transkript:

Föreläsning 1: Intro till kursen och programmering λ Kursens hemsida http:www.it.uu.se/edu/course/homepage/prog1/mafykht11/ λ Studentportalen http://www.studentportalen.uu.se UNIX-konton (systemansvariga P4118) λ Lärare: Anna Eckerdal, Anna.Eckerdal@it.uu.se rum P2415, tel: 471 7893 Torsten Jarkrans (resurs) Programmeringsteknik I: F1 1

Kursmaterial λ Kursbok: Introduction to computing & programming with JAVA. Guzdial and Ericson Kursprogramvara: Java och drjava (eller motsvarande) Tips: Installera på egen dator, se kurshemsidan Rekommenderas att arbeta med egen laptop Material på webben, t.ex Kurshemsida: lektionsmaterial, föreläsningsanteckningar Portalen: KONTROLLERA SJÄLV FRAMSTEG Dokumentation av programmeringsspråket java Programmeringsteknik I: F1 2

Kursupplägg Lektioner i datasal (UNIX-salar Pollax) OK använda egen laptop i datasalarna Arbeta två och två i datasalarna Kan utföras hemifrån Ingen redovisning men rekommenderas starkt! Gör klart innan nästa föreläsning Mycket tid vi tangentbordet! 1 lektion i klassrum Föreläsningar (9) Obligatoriska uppgifter (3 hp) 4 redovisas muntligt i datasal. Uppgift 5 muntligt + skriftlig Börja i tid! Tentamen (2 hp) - skriftlig Programmeringsteknik I: F1 3

Kursmål Redogöra för de grundläggande begreppen klass, objekt, inkapsling och därtill hörande underbegrepp; Analysera problem och designa lösningar genom att använda ovanstående begrepp; Använda programmeringsspråk Java genom att - förklara vad ett givet program utför - skriva och använda klasser som innehåller instansvariabler, metoder och konstruktorer - Skriva program med flera samverkande klasser; Använda en programutvecklingsmiljö; Testa och felsöka program. Programmeringsteknik I: F1 4

Varför ska man lära sig programmera? Datorer och program finns överallt Programmering = problemlösningsverktyg Användbart i utbildning och yrkesliv Java: en bra grund OOP: spritt på universitet och industri Kul! Programmeringsteknik I: F1 5

Vad man lär sig... λ λ Analysera och strukturera problem Modellera översätta problemet till datorn Få en bild av: Vad innebär programmering? Programmeringstänk Vad menas med objektorienterad programmering? Programmeringsbegrepp: objekt, klass, metod... Syntax: språkets byggstenar (if, while,...) Programmeringsteknik I: F1 6

Hur... Övningstillfällen: Laborationer, 11 Lektion, 1 Föreläsningar: 9 st Inlämningsuppgifter, 5 st, 7 tillfällen Litteratur Sitt mycket vid tangentbordet, dela tiden! Programmeringsteknik I: F1 7

Vad är programmering? Skapa en detaljerad instruktion som en dator kan utföra/förstå för att lösa en uppgift. Som att skriva ett recept till din favoriträtt Eller ge en vägvisning till ditt hem. Eller få en robot att göra det du vill. Programmeringsteknik I: F1 8

Varför inte använda engelska som språk? Engelska bra för kommunikation mellan (intelligenta) människor Datorer är begränsade De kan bara +,-,*,/ och jämföra, lagra samt hämta data i minnet. Behöver ett språk som är enkelt och entydigt. Programmeringsteknik I: F1 9

Vad är ett program? En samlad ordning instruktioner som talar om för datorn vad vi vill att den skall göra. Datorn förstår bara 1:or och 0:or Instruktionerna måste egentligen alltså ges på ett språk som består av enbart av nollor och ettor Programmeringsteknik I: F1 10

För att programmera behövs ett språk Tre olika typer av språk Maskinspråk (maskinkod) språket man programmerade i datorns begynnelse. Assemblerspråk Högnivåspråk Programmeringsteknik I: F1 11

Maskinspråk Datorns eget språk Språket består bara av nollor och ettor Olika sorters datorer har olika språk Ex. på 3 st maskinkodsinstruktioner 1100 1000 1001 1111 0100 0011 1011 0001 0110 0011 1011 1000 Knöligt att prata med datorn via ett sådant (lågnivå)språk! Programmeringsteknik I: F1 12

Lite högre nivå Enkla ord som motsvarar några maskinkodinstruktioner Ex. assemblerkod LD #10, R0 LD #12, R1 ADD R0, R1 MOV R1, 45 Assemblerspråk Lagra värdet 10 i datorregistret R0 (LD=load) Lagra värdet 12 i datorregistret R1 (LD=load) Addera R0 med R1, lägg resultatet i R1 Innehållet i R1 minnet med adress 45 Översättning från assemblerkod till maskinkod måste göras. Programmet som översätter kallas assemblatorn. Assemblerspråk är specifik för en viss datortyp. Programmeringsteknik I: F1 13

Högnivåspråk Instruktioner av ord och fraser Lättare att läsa/förstå för människan, men ej för datorn. Instruktionerna måste översättas till maskinkod Översättningen kallas kompilering och görs med ett program kompilatorn. Instruktionerna kan fungera på olika datortyper, men måste kompileras till rätt maskinkod. Programmeringsteknik I: F1 14

Mer om högnivåspråk Finns inbyggda funktioner/metoder, bibliotek Språk stöder olika sorters programmeringsprinciper: exvis ett objektorienterat språk Källkod och kompilator Ett språk har en syntax, dvs en grammatik Instruktionerna kan fungera på olika datortyper, men måste kompileras till rätt maskinkod. Programmeringsteknik I: F1 15

Vilket högnivåspråk? Det finns många olika programmeringsspråk Se t ex http://en.wikipedia.org/wiki/programming_language Kan skriva program i vilket du vill Datorn bryr sig inte om vilket, eftersom det översätts till maskinkod. Språket har däremot betydelse för programmeraren. Hur lång tid tar det att skriva programmet? Hur svårt är det att ändra programmet? Hur lång tid tar det att köra programmet? Programmeringsteknik I: F1 16

Vad är en dator bra på? Kan mycket snabbt utföra matematiska (+,-,*,/) och/eller logiska (>,<,or,and) beräkningar samla in, lagra och bearbeta stora informationsmängder (t.ex. söka/sortera). Och: Producerar samma svar varje gång Programmeringsteknik I: F1 17

En dator består av Hårdvara och mjukvara. Hårdvaran är just det som är hårt, det som går att ta på Mjukvaran är program och data som behandlas av hårdvaran. Ett program är de instruktioner som får all hårdvara att fungera tillsammans. Programmeringsteknik I: F1 18

Hårdvaran i datorn In- och utenheter Skärm, mus, tangentbord, skrivare Hjärnan - Central Processing Unit (CPU) Kan göra göra matematiska och logiska beräkningar Minnen Primärminnet RAM Sekundärminnen: Hårddisk, CD, DVD, USB Programmeringsteknik I: F1 19

CPU Datorns hjärna består av tre delar Aritmetisk Logisk enhet (ALU) Datorns kalkylator gör aritmetik och logik på tal lagrade i register. Styrenheten Läser instruktioner från primärminnet och tolkar dem och utför instruktionerna mha ALU. Därefter läses nästa instruktion. A B C Register 345 263 608 Programmeringsteknik I: F1 20 Addera register A med register B. Lagra summan i register C.

En modell av en dator CPU ALU Styrenhet Register Primärminne Här finns program (instruktioner) och data (värden) Programmeringsteknik I: F1 21

Minnen Datorns minne används för att lagra data. Data kan vara instruktioner (program) eller värden. Den minsta minnesenheten är en bit (Binary digit) En bit kan vara av (ingen spänning) eller på (har spänning), vilket kan tolkas som 0 eller 1. Minnet är organiserat i 8-bits grupper som kallas byte. 1 byte = 8 bit. En megabyte (MB) = 1 miljon byte. 0 0 0 0 1 1 1 0 Programmeringsteknik I: F1 22