eb based) - chalmers.instructure.com
TRANSCRIPT
Välkomna 2021!
1
Corona Edition (i.e. Web based)
KommunikationAllt ni behöver finns på ...
Canvas- Föreläsningar, övningar, laborationer, m.m.- Meddelanden kommer att dyka upp. Kolla med jämna mellanrum!
Slack- Här kan ni be om hjälp (begära Zoom-möte, redovisa labbar)- Se kurssida > Övningar och Laborationer för länk
Zoom- Videomöten, ...känner ni säkert till. Föreläsningar ges m.h.a. Zoom.
2
Lärare och HandledareKursansvariga, examinatorer, föreläsare och handledare
- Joachim von Hacht, [email protected], 031 772 1003
Övriga Handledare - Se Canvas > Kursöversikt
3
KursrepresentanterNi kan alltid tala med mig (JvH) om eventuella problem
Ni kan alternativt/även tala med kurs- representanterna
- Se Canvas > Kursöversikt
4
Imperativ programmering
main = do putStrLn "Input non-negative integer (end with -1): " v <- getLine let value = (read v :: Int) if value < 0 then return () else main
Haskell
Imperativ programmering är ett programmeringsparadigm inom vilket ett datorprogram programmeras som en sekvens av satser (uttryckta i imperativ form). Enkelt uttryckt så måste programmeraren steg för steg ange i vilken ordning instruktionerna ska utföras.
~ Samma tänk som
Väldigt olikt
Assembler
Objektorienterad programmering
class Eq a where (==) :: a -> a -> Bool (/=) :: a -> a -> Bool -- let's just implement one function in terms of the other
x /= y = not (x == y)
Haskell
Objektorienterad programmering är en programmeringsstil där ett program byggs upp av en varierande uppsättning objekt som interagerar med varandra (delmängd till imperativ programmering).
~ Olikt
Olikt (saknas/undviks)
Assembler
Progression
1 2 3 4 5 6 7Veckor
7
Imperativ programmering (old school)
Objektorienterad programmering
Objektbaserad programmering
Funktionell nedbrytning/Testning Objektmodeller
8
Slutmål Programmering
8
Detaljerade mål finns på kurssida
Slutmål Teori
9
A a = new A(); // 1B b = new B(); // 2IX ix = new IX(); // 3IY iy = null; // 4
a = b; // 5b = (A) a; // 6
ix = iy; // 7iy = ix; // 8
ix = a; // 9a = (A) ix; // 10ix = b; // 11iy = b; // 12 ix = (IX) iy; // 13
Referenser Typer
Kunna “rita bilder” utifrån kod Vilka rader fungerar (varför)?
Detaljerade mål finns på kurssida.
Arbetsplanering
Tentamen
Lab1xerweek1.zip
xerweek2.zip
xerweek3.zip
xerweek4.zip
xerweek5.zip
xerweek6.zip
Lab2
Lab3
Lab4
Övningar
2
3
4
5
6
7
8
9
1Veckor
Laborationer
Övningar - Övningar förbereder för laborationer och tenta (en övningsbunt
(zip-fil)/vecka)- Nybörjare kommer inte att hinna alla: Gör de som anges som
förberedande för labben- Behöver inte redovisas men diskutera gärna lösningar med
handledare- Markerat som Övn/Lab i schemat.
Laborationerna - Förbereder för tentan.- Fyra stycken obligatoriska under kursen (ca 2 veckor/styck). - Ni arbetar i två-grupper.- Ni redovisar laborationer för handledare under Övn/Lab-passen. Alla
i gruppen måste bli godkända (kunna svara på frågor) för att gruppen skall bli godkänd.
Tentamen- Troligen hemma/digitalt.
Struktur Föreläsningar
lectweek1.zip
ex1basics B1VariablesAssign.java B2IO.java B3StringConcat.java B4ArithmeticOps.java B5Math.java B6Slope.java ex1basics.pdf Slope.pdfex2ifwhileex3arraysfor ...ex4methodsex5classes
En vecka
Ett kapitel
Ett avsnitt
Kapitlet övergripande
Ev. extramaterial
Ladda ner från Kurssida > Föreläsningar
Föreläsningarna är en “bok” i form av kod (med många kommentarer) och slides packat som IntelliJ-projekt, mer om IntelliJ strax ...
- För varje vecka ett antal kapitel innehållande ett antal avsnitt. - Det finns vanligen en pdf med övergripande innehåll i varje
kapitel.- Ev. extramaterial kan förekomma.
- Föreläsningarna kommer att följa denna struktur.- Ofta introduceras saker ganska ytligt för att därefter efterhand
fördjupas.
Teoriövningar på Föreläsningarxertheory innehåller teoriövningar,
Kommer att köra så många jag hinner under föreläsningar (viss har lösningar andra inte)
Rekommenderad Bok
13
Valfri bok, i bilden en engelsk som är bra, vill man ha en svensk tar man den andra
IntelliJ, Java och JavaFX
14
Använder
IntelliJ är vår utvecklingsmiljö (Integrated Development Environment, IDE, där skriver vi koden m.m.)
- Se kurssida > Resurser för detaljerade anvisningar.- IntelliJ använder i sin tur Java SDK och JavaFX (som måste
installeras).- Lägg alla dessa i en katalog!! (namnförlag: java-devel, det gäller att
veta var saker är)
IntelliJ- projekt
15
Bara en och endast en .idea-mapp!
Ni jobbar alltid i IntelliJ-projekt (alla föreläsningar/övningar/labbar är projekt)
- Ett projekt består av många filer i flera mappar- Ni laddar ned zippade projekt. - Ni zippar upp och i öppnar i IntelliJ- En del filer/mappar används bara av IntelliJ: iml-filer och allt i
mappen .idea (inte pilla!)- Det skall bara finnas en enda mapp .idea i projektet (annars fel på
projektet -> problem, kontakta handledare)- Se upp med Windows, när man packar upp kan det skapas
extra mappar … blir ofta fel.- Det ni skall arbeta med finns i mappen src (source)
Inställningar IntelliJ
16
Man kan behöva göra/justera vissa inställningar.- Görs under File > Project Structure
- T.ex vilken Java version.- Kontakta handledare vid problem.
En Vanlig Dag vid Datorn
17
1
2
ÖvningarFöreläsningar
3
Detta är det tänkta arbetssättet. 1. Börja med övningar för någon vecka. Om du inte kommer vidare ...2. ...titta på motsvarande veckas föreläsningar,
a. Det finns en kommentar längst upp i övningen som tipsar var i föreläsningen du kan hitta kod som kan hjälpa till. Du kan alltså ha flera projekt uppe samtidigt, flera fönster.
b. Titta igenom pdf:er. Där finns bilder, begrepp, definitioner, m.m.3. Kommer inte vidare ändå? Gå till Slack (länk kurssida)4. Även om du kommer vidare titta igenom föreläsningarna, för att se
hur man “brukar göra”, hur man skall skriva/organisera m.m.
Klar med nödvändiga övningar? Om så börja med labb - Det står i övningarna vilka du bör göra innan du börja med labben.
Språk
18
Svårt område:- Jag talar/använder det som känns bäst men försöker använda
svenska (speciellt när det svenska ordet är “självförklarande”, enklare eller kortare).
- Anger ofta begrepp på engelska också- All kod (verkligen all även kommentarer) skrivs dock på engelska- Se länk kurssida om olika svengelska uttryck.
Programmering är mer ...
19
Arbetssätt
Kvalitet
ProblemlösningFackspråk
Verktyg
Förutom själva inlärningen av språket och kodandet sker det flera andra aktiviteter då man lär sig programmera
- Vi måste lösa problem som inte direkt har med kodandet att gör. Problemet “i sig” kan vara svårt.
- Vi måste arbeta på ett ordnat sätt. Om ej kör vi fast och kommer inte vidare!
- Våra program måste hålla av viss kvalitet, det räcker inte att programmet (kanske) fungerar.
- Vi måste lära oss de verktyg vi behöver.- Vi bygger upp ett fackspråk så att vi kan göra oss förstådda.
ExaminationFör att klara kursen måste du få alla laborationer godkända samt klara tentamen. Kursbetyg ges av tentamen enligt
Betyg Poäng/Maxpoäng5 0,804 0,633 0,40U < 0,4
20
Tentan blir troligen hemtenta..
Frågor
?
21