Labb 1: Filer, klasser och listor i Python
- Inlämningsdatum 6 sep 2023 av 19:00
- Poäng 10
- Lämnar in en filuppladdning
- Filtyper py och jpg
Mål | Läs i kursboken |
|
□ Hederskodex
Bägge gruppmedlemmarna ska göra följande:
- Läs igenom reglerna i hederskodexen.
- Kompletterande regler för användning av generativ AI (t ex chatGPT):
- Kod som skrivits av AI räknas som kod som en kompis skrivit åt dig - du får inte redovisa den som ditt eget verk på en labb.
- Du får gärna använda AI för att be om förklaringar och exempel.
- I vissa labbar kommer du att uppmuntras att testa chatGPT men det är aldrig obligatoriskt.
- Gör Hederskodex-quiz
□ Git 
Med git kan du spara olika versioner av din kod, och dela koden med din labbkompis.
Bägge gruppmedlemmarna ska göra följande:
- Gå in på https://gits-15.sys.kth.se/
- Gå igenom Git Hello World Tutorial Links to an external site. (ca 10 min)
- Gör detta Git-quiz
□ Parprogrammering
Laborationerna görs lämpligen i grupper om två.
- Läs på om parprogrammering
- Diskutera med din labbkompis hur ni ska organisera ert arbete. Om ni sitter på olika håll kan replit Links to an external site. vara användbart.
- Gör sedan detta Parprogrammeringsquiz
□ Kattis 
-
Bägge gruppmedlemmarna ska göra följande:
- Gå till sidan för DD1320 tildah23 i Kattis Links to an external site.
- Logga in (längst upp till höger) med ditt KTH-id
- Tryck på knappen Register Now för att komma till registreringssidan för tildah23. Tryck där på Register för att ansluta till Kattis-omgången för denna kurs.
- Läs om hur man lämnar in Python3-program i dokumentationen
- Lös problemet Hello (Tryck först på knappen Start assignment timer för att komma åt kursens uppgifter.)
□ Repetera Python
Apoorva har skapat en fil med koreanska dramer Links to an external site.. Tryck på Raw och spara ner denna csv-fil. (Svårt? Prova först med denna förenklade fil: kdramaMini.txt Download kdramaMini.txt)
- Skriv ett program som läser varje rad i filen och skriver ut den på skärmen.
- Använd modulen csv Links to an external site.
- Här är det OK att be chatGPT om ett exempel: "Skriv en python-funktion som läser rader från en fil med hjälp av csv-modulen."
- Skriv en egen klass Drama som representerar en rad i filen.
- Klassen ska ha ett attribut för varje rubrik (Drama Name, Rating, Actors, Viewship Rate, Genre, Director, Writer, Year, No of Episodes, Network)
- Klassen ska ha minst fem metoder, bland annat dessa tre:
- __init__
- __str__
- __lt__
- Skriv ett program som skapar två Drama-objekt och anropar de fem metoderna, så att du ser att dom fungerar som dom ska.
- Skriv sedan en funktion som
- läser in alla rader från filen,
- skapar ett objekt för varje rad,
- lagrar objekten i en lista (Pythons list())
- returnerar listan.
- Skriv också en funktion för att söka efter något i listan. Du får själv välja vilket attribut som ska användas vid sökningen.
- Testa till sist att programmet fungerar korrekt.
OBS! Ett enkelt program utan finesser räcker här. Om du har tid över ska du gå vidare till nästa labb!
Redovisning
Labben lämnas in indivuellt med "Lämna in uppgift"-knappen högst upp på denna sida, och ska redovisas muntligt av bägge gruppmedlemmarna. Skriv bägge gruppmedlemmarnas namn i kommentarsfältet!
Boka en tid för den muntliga redovisningen
Vid redovisning ska bägge gruppmedlemmarna
- kunna sammanfatta hederskodexen,
- kunna förklara vad Git används till, och beskriva arbetsgången,
- kunna beskriva riktlinjerna för parprogrammering,
- kunna visa upp en godkänd Kattis-inlämning (gruppmedlemmarna måste visa upp varsin inlämning),
- kunna förklara hur klasser/objekt/listor/filhantering fungerar i Python, med hjälp av program.
Betyg
Denna labb kan endast ge betyg E. Du måste lämna in den i Canvas och redovisa den muntligt i tid för att få göra labbarna för högre betyg i period 2. (Om ditt kansli inte har hunnit lägga in dig på kursen ännu så får du dispens - du kan lämna in och redovisa labb 1 nästa vecka.)