Programmering Introduktion

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

OOP Objekt-orienterad programmering

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

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

F4. programmeringsteknik och Matlab

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

F1 - Introduktion. ID1004 Objektorienterad programmering Fredrik Kilander

Introduktion till programmering och Python Grundkurs i programmering med Python

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

Objektorienterad programmering i Java

Föreläsning 2. Operativsystem och programmering

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

Föreläsning 1 & 2 INTRODUKTION

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

l uppgiftsformulering l algoritmkonstruktion l verifikation l kodning l testning och avlusning l validering l dokumentering l underhœll Kapitel 2

Grundkurs i programmering - intro

Föreläsning 1 & 2 INTRODUKTION

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

Objektorienterad Programmering (TDDC77)

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

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

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

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

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

TDDC77 Objektorienterad Programmering

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

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

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas.

Objektorienterad Programmering (TDDC77)

Program & programmering

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

NetBeans 7. Avsikt. Projektfönster

NetBeans 5.5. Avsikt. Projektfönster

Lektion Java Grunder. Javas historia. Programmeringsspråket Java. Skillnaderna mellan Java och C++ JVM (Javas Virtuella Maskin)

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

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU

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

Programmering A. Johan Eliasson

SMD 134 Objektorienterad programmering

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

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

Editering, Kompilering och Exekvering av Javaprogram

TDDC77 Objektorienterad Programmering

Föreläsning 2 - Intro till Java

Objektorienterad programmering i Java I

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.

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

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

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

Java: Utvecklingsverktyg, datatyper, kontrollstrukturer

Programmering för språkteknologer I, VT2012. Rum

Att skriva till och läsa från terminalfönstret

Objektorienterad Programmering (TDDC77)

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

Enkla datatyper minne

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Objektorienterad Programmering (TDDC77)

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

SMD 134 Objektorienterad programmering

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

Tentamen OOP

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

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

Klassdeklaration. Metoddeklaration. Parameteröverföring

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

Introduktion till programmering. Programspråk och paradigmer

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Språkkonventioner och redigering av tal.

E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I

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

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

Programmering för alla!

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

TDDE10 TDDE11, 725G90. Gemensam kurswebsida på:

Tentamen ID1004 Objektorienterad programmering May 29, 2012

TENTAMEN OOP

En kort text om programmering i C.

Introduktion till programmering, hösten 2011

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

DAT043 Objektorienterad Programmering

Programmering för alla!

1 Datorn som miniräknare. 1.1 Räkneoperationer. 1.2 Variabler

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

Programmering för språkteknologer II, HT2011. Rum

Objektorienterad Programmering DAT043. Föreläsning 1 15/1-18 Moa Johansson

Inledning. Statistisk Programmering. UNIVAC 1107 (sextio- och sjuttiotal) Hålkorten. Att använda dator

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Introduktion till datoranvändning. Välkomna till NADA. (Numerisk Analys och DAtalogi) och kursen. Datalogi, grundkurs 1, 15hp

Tentamen, EDAA10 Programmering i Java

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

Föreläsning 1-2 innehåll

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

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

Ö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

Mattias Wiggberg Collaboration

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

Transkript:

1DV506: Problemlösning ochprogrammering Lars Karlsson kala224@lnu.se Läsanvisningar, s l i d e s och Java-exempel fi n n s på Moodle 2016-10-31 1(31)

Agenda (Idag) Datorsystem Hårdvara Digital information på binär form Mjukvara Programspråket Java Objektorienterad programmering Kursinformation 2(31)

Datorsystem Ett datorsystem (eng. Computer System) består av 1. Hårdvara (eng. Hardware) Materiella delar man kan ta på Processorn Primärminnet Hårddisken DVD/CD läsare/brännare Bussar (ledningar inuti datorn) Tangentbord Skärm 2. Mjukvara (eng. Software) Mjukvara = program+data = sekvens av instruktioner Operativsystemet Övriga program (applikationer) 3. Hård- och mjukvaran är värdelösa utan varandra 4. Denna kurs handlar om att utveckla mjukvara 5. Vi tar upp ett minimum av hårdvara Datorsystem 3(31)

Hårdvara Minne Processor Hårddisk CD/DVD Skärm Tangentbord Nätverk (Mikro)Processorn (eng. Processor or CPU = Central Processing Unit) Ett chip som (mycket snabbt) bearbetar (enkla) instruktioner (Primär)Minne (eng. Main Memory or RAM) Här lagras program/data medan de processas. Litet men med snabb åtkomst. Hårddisken (eng. Hard Drive) Permanent lagringsplats för program/data som inte används. Stort, långsamt. Hårddisken är en typ av Sekundärminne där information lagras permanent. överlever att strömmen slås av Andra typer är: SSD, CD, DVD, magnetband, floppy Datorsystem 4(31)

Exekvering = Att köra ett program Exekvering ett program läses från sekundär- till primärminnet och börjar processas. Processorn består av en aritmetisk/logisk enhet som utför beräkningar ett register (mycket litet/snabbt minne) där data/resultat sparas Ett exekverbart program = en sekvens instruktioner på binär form C = A + B ********** 1. Läs i n värdet av A t i l l R(1) 2. Läs i n värdet av B t i l l R(2) 3. Beräkna R1+R2 och spara i R(3) 4. Ti lld ela C värdet i R(3) Här är R(N) = Reg ister N Binär form instruktionerna är en sekvens av ettor och nollor som (nästan) bara datorn förstår. Olika typer av datorer har olika uppsättningar instruktioner Binär form *********** 1. 01010101 10110010 11000110 01001100 2. 00100010 11100111 00101010 10001111 3. 10010010 11100100 11001001 11010100 4. 10101011 00100101 11000011 10010001 Datorsystem 5(31)

Digital information Digital kommer från engelskans digit = siffra All information på en dator lagras som heltal (eng. integer) Förutom instruktioner gäller det även: decimaltal text ljud bild film Bilder lagras som fyra heltal (röd, grön, blå, transparens) per pixel. Text: Varje tecken i texten lagras som ett heltal. Datorer lagrar alla sina heltal på binär form. Tex, talet 14 lagras som 1110. Digital information 6(31)

Olika talsystem Decimala tal Det vanliga (decimala) talsystemet har basen 10. Vi använder bara siffrorna 0-9 för att ange ett tal 234 = 2 100 + 3 10 + 4 1 = 2 10 2 + 3 10 1 + 4 10 0 Varje siffra (2,3 eller 4) har olika vikt. Decimalt har vi vikterna..., 10000, 1000, 100, 10, 1 den n:te siffran från höger har vikten 10 n 1 Binära tal Det binära talsystemet har basen 2. Vi använder bara siffrorna 0 och 1 för att ange ett tal 1110 2 = 1 2 3 +1 2 2 +1 2 1 +0 2 0 = 1 8+1 4+1 2+0 1 = 14 10 Dvs, 1110 i basen 2 är lika med 14 i basen 10. Binärt har vi vikterna..., 128, 64, 32, 16, 8, 4, 2, 1 den n:te siffran från höger har vikten 2 n 1 Digital information 7(31)

Binära tal En binär siffra (0 eller 1) kallas en bit 8 bitar kallas en byte Med en byte kan vi representera 256 heltal mellan 0 (0000000) och 255 (11111111) Generellt: Med n bitar kan vi representera 2 n heltal mellan 0 och 2 n 1 Negativa tal: Den första biten ger tecken (1 = +, 0 = ), de övriga ger storlek. Varför binära tal? Hårdvaran bestämmer. Vi kan lättare, snabbare och säkrare både transportera och lagra information på binär form I kablar (transport): Spänning på = 1, spänning av = 0 I minnen (lagring): Magnetisering upp = 1, magnetisering ner = 0 Primärminnen: 1 GB (GigaByte = 2 30 byte, mer än en miljard byte) Hårddiskar: 1 TB (TeraByte = 2 40 byte, mer än 1000 miljarder byte) Övrigt: 1KB = 1 KiloByte = 2 10 = 1024 byte, 1MB = 1 MegaByte = 2 20 = 1048576 byte Digital information 8(31)

Exempel: Kodning av text Varje tecken (alfabet + övriga) representeras av ett heltal Vanligast är att man använder 1 byte/tecken 255 möjliga tecken Det finns några olika standarder som används. Vanligast är ASCII. Heja Boden! H=72, e=101, j=106, a=97, " "=32, B=66, o=111, d=100, e=101, n=110,!=33. radbryt=10 Även osynliga tecken som mellanslag, tab och radbrytning (Enter) har en heltalskod. En textfil är en lång sekvens av bytes där varje byte motsvarar ett tecken. En texteditor (tex Wordpad) vet om detta och konverterar mellan tecken och heltal då filen läses/sparas. Digital information 9(31)

Mjukvara Ett datorsystems mjukvara delas upp i: 1. Operativsystem: Programmet som styr datorn Startar upp datorn Fördelar datorkraft mellan olika program Gränssnitt (eng. GUI = Graphical User Interface) för användaren vi kan via musklick och menyer styra datorn Ett mjukvaruskikt mellan hårdvara och andra program. Skyddar hårdvaran Ger andra program möjlighet att styra hårdvaran Vanliga OS: Windows, Mac OS, Unix, Linux 2. Applikationsprogram: Alla övriga program Ordbehandling Datorspel Web browser (tex Google Chrome, Mozilla Thunderbird) Emailhanterare (tex Microsoft Outlook, Mozilla Firefox) Styrsystem för bilar Antivirus-program, mp3-spelare,... Utför specifik uppgift genom att styra hårdvaran via OS. Mjukvara 10(31)

Olika programnivåer Processorn förstår bara binära instruktioner (även kallat maskinkod, maskininstruktioner) Vi människor har svårt att förstå binära instruktioner 50-60 talet: Assemblerkod Assembler (C = A + B) ========= 1. Load A R1 2. Load B R2 3. Add R1 R2 R3 4. Save R3 C Assembler: Att ge varje instruktion/register ett namn Binär form ========== 1. 11100111 00101010 10001111 2. 11100111 11001001 11010100 3. 10101011 10001111 11010100 00100010 4. 00100101 00100010 10010001 Enkelt att översätta till binär form (en bit assembler en binär kod) Används fortfarande i vissa drivrutiner för hårdvara Mjukvara 11(31)

Högnivåspråk Assembler är fortfarande väldigt jobbigt att använda Programmeraren måste känna till allt om hårdvaran På 60-talet kom högnivåspråken där varje instruktion motsvarar flera maskininstruktioner Vanliga högnivåspråk: C, Ada, Pascal, Visual Basic, C++, C# och Java Översättningen till maskinkod sköts av en kompilator ett program som översätter högnivåspråk till maskinkod Språk Kompilator Maskinkod Kompilatorn är specifik för: Ett högnivåspråk och en typ av maskinkod Kompilatorn känner till maskinkod, vi programmerare avlastas. Kompilatorn säger också till om programmet ej följer språkets regler Error: Missing semi-colon on line 234 Mjukvara 12(31)

Högnivå programmering Ett programspråk har en specific syntax. Syntax är regler som säger: Vilka ord och symboler som kan ingå i ett program Hur dessa ord och symboler kan sättas samman till korrekta satser Ett program är i princip ett stort antal satser Programmering (i princip) 1. Skriv in (editera) programmet som vanlig text 2. Spara texten i en fil 3. Kompilera programmet generera maskinkod 4. Exekvera programmet Programmering i verkligheten Editera Kompilera Syntaxfel Exekvera / Kontrollera Logiskt fel Programmering 13(31)

Varför lära sig programmera? Datorn Extremt kraftfullt problemlösningsverktyg Programmera tag kontroll över datorn (utan omvägar) Icke programmera begränsad av andra människors program Lite programmering enkla skript för websidor enkla drivrutiner (styra andra maskiner) utföra ganska komplicerade beräkningar förstå vad det handlar om. Mycket programmering utveckla kommersiell programvara, tex spel administrativa program missilsystem sökmotorer Notera: Att utveckla robusta och lättanvända program för icke-experter kräver mycket programmering. Programmering 14(31)

Första Java-programmet: Hello.java / Hello. java Author: Jonas Lundberg Created 2007 11 02 / package chap1 2; // Paket deklaration / Ett program som skriver Hello World pa skarmen. / Public class Hello { // Klassdefinition } public static void main(string [] args) { // main metoden System.out. println ( Hello World! ); // Utskrift } Programspråket Java 15(31)

Programspråket Java Java uppfanns av James Arthur Gosling på Sun Microsystems Databas-företaget Oracle köpte Sun Idag kontrolleras Java av Oracle. Java introducerades 1995 och dess popularitet ökar Java bygger bl a på erfarenheter från språken C och C++ Ett Java-program består av ett antal klasser En klass består av ett antal metoder En method innehåller ett antal satser. Klass, metod, sats är byggstenar i olika storlekar. (Tänk: Vägg, sten, sandkorn) Ett Java-program börjar alltid i en metod med namnet main Java-program sparas alltid i filer med ändelsen.java Programspråket Java 16(31)

Kommentarer Kommentarer påverkar inte programmets funktion (Kompilatorn börjar med att ta bort dem.) Kommentarer är till för dokumentation underlättar förståelsen Dom anger syftet med koden och förklarar svåra partier Kom ihåg: Det självklara nu är kanske inte självklart om ett år (eller mindre ) Kom ihåg: Andra personer skall kanske läsa din kod. Inom industrin räknar man med att 10 olika personer kommer att läsa varje rad kod som skrivs. Tre olika typer av kommentarer // Kommentar som fortsätter till slutet av raden /* En kommentar som fortsätter från en rad till en annan. */ /** En javadoc kommentar. Mer om detta senare */ Programspråket Java 17(31)

Strukturen hos ett (enkelt) Java program / Kommentar om klassen / public class Hello { // klasshuvud ( signatur ) / Kommentar om metoden main / public static void main(string []args) { // metodsignatur // Har börjar programmet } // metoden slutar / Har kommer kanske fler metoder /... } // klassen slutar En metod/klass har ett huvud (signatur) och en kropp (innehåll). Orden public, static, void, class är nyckelord som specificerar egenskaper hos klasser och metoder. (Mer om detta senare.) Programspråket Java 18(31)

En paus på 10 minuter! ZZZZZZZZZZZZZZZZ... Programspröket Java 19(31)

Identifierare (Hello.java) Identifierare är ord man använder för att namnge olika saker Hello är namnet på en klass, main är namnet på en metod Identifierare består av: bokstäver, siffror och tecknen ( ) och ($) Identifierare kan inte börja med en siffra Java skiljer på stora och små bokstäver (eng. case-sensitive) HEJ Hej hej Ibland väljer vi identifierare själva (tex Hello) Ibland använder vi identifierare som andra hittat på (tex println) Java har rekommendationer för hur identifierare skall väljas Vissa ord är reserverade (tex public, class, static) och har en speciell betydelse. Dessa kan inte användas för att namnge något. Programspråket Java 20(31)

Reserverade ord i Java a b s t r a c t boolean break byte case catch char class const continue d e f a u l t do double else enum ext en ds false final f i n a l l y float for goto if implements import i n s t a n c e o f int i n t e r f a c e long n a t i v e new null package p r i v a t e protected public r e t u r n s h o r t s t a t i c s t r i c t f p super swi tc h synchronized this throw throws t r a n s i e n t true try void volatile while Reserverade ord kan inte användas som namn på något. Ungefär hälften av dessa används i denna kurs. Programspråket Java 21(31)

Javas klassbibliotek (Hello.java) System.out.println("Hello World!") Vi anropar metoden println i Javas klassbibliotek texten Hello World! skrivs ut på skärmen. Javas klassbibliotek följer med varje Java-installation println är en av tusentals färdiga metoder vi kan välja mellan. klassbiblioteket är enormt stort! Vissa delar är mycket specialiserade (tex XML hantering) och används sällan. Andra delar (tex metoden println) används i nästan alla program. Att använda klassbiblioteket underlättar programmeringen mycket Att lära sig hitta rätt i biblioteket är mycket viktigt I Java kommer vi åt hårdvaran via klassbiblioteket. Det mesta som exekveras i ett Javaprogram kommer från klassbiblioteket. Programspråket Java 22(31)

Program och klassbibliotek Mitt lilla Java-program Javas klassbibliotek Operativ-systemet Hårdvaran Programspråket Java 23(31)

Syntax och Semantik Ett språks syntaktiska regler bestämmer hur vi kan kombinera reserverade ord, identifierare och andra symboler till ett giltigt Java program. Syntaxfel upptäcks av kompilatorn Finn 5 fel! public static main void (String[]args) { system.uot.println("hello World!) } Språkets semantik bestämmer vad de olika konstruktionerna betyder/gör. Exempel: Semantiken hos System.out.println("Hello World") är att skriva ut Hello World på skärmen. Notera: Ett syntaktiskt korrekt program behöver inte vara logiskt korrekt. Ett program gör exakt vad vi säger till det att göra, inte nödvändigtvis vad vi vill att det skall göra. Datorn gör (nästan) aldrig fel. Det är vi programmerare/användare som ger datorn felaktiga instruktioner. Programspråket Java 24(31)

Indentering Indentering: Systematisk indragning av vänsterkanten för att visa vad som hänger ihop. Gör programmet mer lättläst public class Hello { public static void main(string [] args) { System.out. println ( Hello World! ); } } En kompakt men korrekt version Svår att förstå public class Hello{public static void main(string [] args) {System.out. println ( Hello World! );}} En slumpartad men korrekt version Svår att förstå Programspråket Java public class Hello{ public static main(string [] args) { Hello World! ) void System.out. println ( ;}} 25(31)

Java-kompilering En Java-kompilator översätter Java-kod (X.java) till ett speciellt format som kallas Java bytecode (X.class). Java bytecode är inte maskinkod för någon processor Ett annat program som kallas Java Virtual Machine (JVM) översätter bytecoden till maskinkod och exekverar den. Java-program kan därför exekveras på alla maskiner som har en JVM Man säger därför att Java-program är plattformsoberoende. Kompilera Hello.java Hello.class skapas C:\Temp\> javac Hello.java Exekvera Starta JVM:n med Hello.class som indata C:\Temp\> java Hello Notera: Ni kommer inte att använda terminalfönstret för kompilering/exekvering i denna kurs. Ni kommer att använda ett program som heter Eclipse som väsentligt underlättar hela processen. Programspröket Java 26(31)

Kompilering Kompilera/exekvera Java-program Java program (.java filer ) Java bytecode Java kompilator Java bytecode Virtual Machine Operativ-system Hårdvara Exekvering Programspröket Java 27(31)

Kursinformation 1DV506: Problemlösning och programmering (7,5hp) Kursen följs efter jul av 1DV507: Programmering och datastrukturer (7,5hp) Lärare: Lars Karlsson Labhandledare: Michael Johansson, Peter Danielsson, Lucas Wik, Martin Arvidsson Litteratur: Big Java - Late Objects, senaste upplagan, Cay Horstmann (Boken används också i 1DV507. Köp den!!) Moodle en webbaserad läroplattform Nyheter Föreläsningsanteckningar Programexempel Läsanvisningar Laborationer Länkar till Java och Eclipse Chat forum Moodle nås via mymoodle.lnu.se Tillgång till Moodle är viktigt! Maila mig (Namn+Pnr+LnU Username) om ni inte kommer åt Moodle för kursen 1DV506. Kursinformation 28(31)

Kursupplägg 11 lektioner (2h/lektion, måndagar och onsdagar, oregelbundet) 2 labtillfällen per vecka Ett komplett schema finns i Moodle Notera: Kursen ges i 2 versioner: på svenska, engelska. Välj rätt schema, se Moodle! 3 tentatillfällen (2 runt jul, sista under sommaren) Godkänt kräver: G på tenta + G på alla labbar Slutbetyg: Tentaresultat(40%) + Labbar(60%) Vi använder ETCS betyg A-F Väl godkänt: A,B (A=strålande) Godkänt: C,D,E ( E=precis godkänd) Underkänt: F ( F=underkänt, försök igen) Kursinformation 29(31)

Grupper Eng, Sve och Kalmar/Distans Laborationstillfällena Studenter indelade i två grupper Svenska och Engelska Varje grupp har sitt eget schema (det finns en grupp i Kalmar samt distans) => Läs rätt schema! Att närvara är viktigt statistiskt sett Närvarande -> 80% godkända Inte närvarande -> 40% godkända Java Testet Praktiskt programmeringtest 3 uppgifter, 2 timmar De som har godkänt på lab 1-3 skall klara detta Preliminärt datum är 21 december Kan ses som en femte praktisk obligatoriskt del Kursinformation 30(31)

Labregler Labbarna är individuella ni skall lämna in en egen uppsättning labbar. Varje laboration (1-4) har en vikt (impact factor) av 15% av kursens slutbetyg För godkänt krävs en lösning (ett bra försök i alla fall) till alla icke-vg uppgift. VG-uppgifter: Vissa labuppgifter är märkta med VG. Dessa uppgifter är inte obligatoriska men krävs för de högre betygen A,B. Ni måste lämna in era labbar innan deadline! Ingen inlämning ni är inte aktiva på kursen ni stryks från kursen Ej komplett inlämning det ni lämnat in rättas men ni får lämna in en komplettering efter kursens slut Missad deadline betyget för laborationen sänks. Undantag till denna regel kan ges om ni innan den aktuella tidsgränsen kontaktar er labhandledare och anger ett giltigt skäl. Utbyt idéer men inte lösningar. Plagiarism, dvs om någon student kopierar hela, eller delar av ett program från någon annan student (eller någon annan källa) alla inblandade studenter får F. Läs reglerna i Moodle noggrant! Kursinformation 31(31)

Första labtillfället (Torsdag) Introduktion till våra datorer Enkla Java-program Utvecklingsmiljön Eclipse Om ni har en laptop, tag med den på labbarna. Inför labintroduktionen (Viktigt!) Installera Java hemma Installera Eclipse hemma Installationshjälp? Se länkar i Lab 1 Inför nästa lektion: Läs avsnitten 1.1-1.6 i boken av Horstmann (Hoppa över 1.7, det tas upp senare) Kursinformation 32(31)