Course syllabus
Länkar: Startsida • Föreläsningar • Övningar • Laborationer • Resurser
Kurs-PM
DAT555 Programmeringsteknik i Python lp1 HT22 (7,5 hp)
Kursen ges av institutionen för Data- och informationsteknik
Kontaktuppgifter
Examinator och kursansvarig: Niklas Broberg (niklas.broberg@chalmers.se)
Assistenter: Beata Ringmar, Johan Andersson, Dadi Andrason, Felix Bjerhem Aronsson, Sara Borg, Dennis Christensen, Egor Diatchkov, Simon Engström, Samuel Falck, Elias Falk, William Frisk, Isac Hansson, Dino Hromic, Isac Ingvast Wennerström, Josef Jakobson, William Johansson, Deaa Khankan, Axel Larsson, Adam Magnusson, August Nordlinder, Elliot Ripa, Johan Selin, Clara Simonsson, Roj Mert Tekin, Maximilian Ygdell, Omar Younes
Kontakta oss via kursens Slack-rum: Slack
Kursrepresentanter: Leo Zhu, Emmy Haavisto, Julia Malmborg, Martin Klasa, Olivia Agertoft
Kursens syfte och innehåll
Se kursplanen!
Schema
Kurslitteratur
Du bör ha tillgång till att kunna läsa stycken ur följande bok:
- Sandro Mancuso, The Software Craftsman: Professionalism, Pragmatism, Pride, Pearson Education, 2015
Jag rekommenderar er starkt att köpa och läsa hela boken, men enbart kortare delar kommer att användas som underlag för reflektion i kursen. För kursens ändamål kan ni t ex gå samman i grupper och köpa ett gemensamt exemplar ni skickar runt så alla får läsa.
Någon av följande böcker rekommenderas, framförallt för dig som uppskattar att ha en bok som komplement till lärandet. Det är inte obligatoriskt, och ingenting i kursen kräver att du har en bok, men båda böckerna ger värdefulla alternativa vinklar till det vi går igenom i kursen.
- John M. Zelle, Python Programming: An Introduction to Computer Science, 3rd edition, Franklin, Beedle, & Associates, 2017 https://mcsp.wartburg.edu/zelle/python/
- OBS: Store har problem att ta in denna bok i år pga strul med rättigheter; den finns som e-bok här: https://redshelf.com/book/522399/python-programming-522399-9781590282779-john-zelle
- Jan Skansholm, Python från början, Studentlitteratur, 2019
Zelle är min rekommendation i första hand, men Skansholm är också bra och rekommenderad för dig som vill ha en kursbok på svenska.
Examination
Kursen examineras genom fyra separata moment:
- Programmeringsuppgifter som görs i grupper om 3 studenter; fyra uppgifter, med inlämning varannan vecka under kursens lopp.
- Reflektionsuppgifter som genomförs individuellt; fyra uppgifter, med inlämning varannan vecka under kursens lopp.
- Uppgifter knutna till grupparbete och gruppdynamik; ett gruppkontrakt, och en gruppreflektion.
- Skriftlig salstentamen, under tentaveckan i läsperiodens slut.
Utöver dessa tre obligatoriska delar finns även möjlighet att genomföra bonusuppgifter, för en större utmaning och djupare lärande. Dessa är inte obligatoriska, men kan bidra till att ge ett högre betyg.
1. Programmeringsuppgifter
Även kända som laborationer, dessa fyra uppgifter innebär att ni ställs inför ett problem, och ska konstruera ett program som löser problemet. Varje uppgift examineras genom en muntlig redovisning för TA vid något handledningstillfälle innan relevant deadline.
Följande lärandemål kommer ni att examineras på vid redovisningen:
Kompetens och färdigheter:
- Använda grundläggande mekanismer och koncept inom programvaruutveckling, så som typer, variabler, referenser, objekt, satser och uttryck mm
- Implementera enkla imperativa och objektorienterade program med både textbaserade och grafiska användargränssnitt
- Konstruera och strukturera algoritmer för att lösa enkla programmeringsproblem
- Strukturera stora program i hanterbara och återanvändbara enheter med hjälp av begrepp som moduler, klasser och funktioner, samt funktionell nedbrytning
- Utforma lättläst, deskriptiv och väldokumenterad programkod
- Använda en modern utvecklingsmiljö, med verktyg som editor och versionshantering
- Tillämpa grundläggande verktyg och metoder som stödjer ett inkluderande samarbete i grupp
Värderingsförmåga och förhållningssätt:
- Argumentera för gjorda implementationsval med hänvisning till god praxis för programvaruutveckling
Dels bedöms er kod av den TA ni redovisar för, så den uppfyller kraven som ställs av de första fem lärandemålen; dessutom behöver var och en i gruppen enskilt kunna redogöra för kodens struktur och funktion, och argumentera för gjorda val. Ni kommer också att behöva resonera kring er arbetsprocess i grupp, samt användande av utvecklingsverktyg.
2. Reflektionsuppgifter
Även kända som inlämningar, dessa fyra uppgifter innebär att ni skriver en kort reflekterande text utifrån en given frågeställning. Dessa kommer därefter genomgå peer review, där var och en läser och kort kommenterar på en eller flera andra studenters inlämningar.
Följande lärandemål kommer att täckas in av dessa reflektionsuppgifter:
- Reflektera över etiska konsekvenser av att följa god praxis för programvaruutveckling
- Tillämpa grundläggande verktyg och metoder som stödjer ett inkluderande samarbete i grupp
3. Gruppdynamiska uppgifter
Dessa uppgifter rör frågor kring hur ni arbetar i er grupp. Tidigt i kursen formulerar ni och lämnar in ett gruppkontrakt; och senare en reflektionsuppgift ni gör som grupp.
Följande lärandemål kommer att täckas in av dessa uppgifter:
- Tillämpa grundläggande verktyg och metoder som stödjer ett inkluderande samarbete i grupp
4. Skriftlig tentamen
Den skriftliga salstentamen är utformad i två delar enligt ett speciellt format:
Del A motsvarar de grundläggande kunskaper och färdigheter som förväntas av er för ett godkänt betyg. Dessa frågor kan ge maximalt 32 poäng, varav 24 krävs för godkänt. Nås inte 24 poäng på del A spelar poängen på del B ingen roll.
Del B motsvarar mer avancerade kunskaper och färdigheter, och avgör tillsammans med del A vilket betyg ni får. Dessa frågor är medvetet formulerade för att kräva mer avancerade och resonerande svar, och är erkänt svåra. Betyget på tentamen sätts enligt följande tabell utifrån totalpoängen på del A och del B:
- 24-35 poäng: betyg 3
- 36-47 poäng: betyg 4
- 48+ poäng: betyg 5
Följande lärandemål kommer att täckas av den skriftliga tentamen:
- Redogöra för grundläggande koncept inom imperativ och objekt-orienterad programmering, med användning av adekvat terminologi
- Redogöra översiktligt för förhållandet mellan hårdvara, operativsystem och applikation
- Använda grundläggande mekanismer och koncept inom programvaruutveckling, så som typer, variabler, referenser, objekt, satser och uttryck mm
- Konstruera och strukturera algoritmer för att lösa enkla programmeringsproblem
- Reflektera över etiska konsekvenser av att följa god praxis för programvaruutveckling
5. Bonusuppgifter
Ni som vill maximera ert lärande och utmana er själva kan genomföra en större programmeringsuppgift, med mindre vägledning och högre ställda krav. Även dessa görs i grupp. Denna möjlighet finns främst till för att tillgodose de av er som redan har lite programmering med er, men är öppen för alla oavsett tidigare erfarenheter.
Lärandemålen som testas är desamma som för de obligatoriska programmeringsuppgifterna, men med större tonvikt vid kodkvalitet och argumentation.
En väl genomförd bonusuppgift kan ge upp till 3 bonuspoäng, som läggs till resultaten på den skriftliga tentamens del B. De kan således inte påverka om ni blir godkända eller inte, men kan påverka vilket betyg ni får.
Förändringar sedan förra kurstillfället
Kursen är helt ny!