Course syllabus

Kurs-PM

EEN110 Introduktion till programmering i Python lp2&3, HT20 &VT21 (6 hp)

Kursen ges av institutionen för Data- och informationsteknik

Lärare

Aarne Ranta (examinator, föreläsare)  http://www.cse.chalmers.se/~aarne/

eventuella andra lärare från lärarlaget för programmering i Python

handledare: meddelas senare

Kursens syfte

Programmering med programspråket Python. Kursen är främst avsedd för studenter utan tidigare erfarenhet i programmering, och kommer därmed att även förklara allmänna begrepp i datavetenskap.

Länk till kursplanen

Schema

Kursen går i läsperioderna 2 och 3 och följer kvartsfart med vanligtvis en föreläsning per vecka. Föreläsningarna kommer att spelas in och kunna följas på distans; därtill finns eventuell kampusundevisning beroende på det aktuella läget i corona-epidemin.

Föreläsningstabellen

I tabellen nedan anges föreläsningarnas teman.  Varje föreläsning varar en dubbeltimma (2x45 minuter). Datum och klockslag anges senare. Även innehållet i föreläsningarna är preliminärt.

Efter varje föreläsning anordnas frågestunder (QA-sessions) med extramaterial och övningar.

  • slides för föreläsningarna kommer att finnas tillgängliga via länkar i schemat

Datum 

Lärare 

Innehåll 

Boken 

Övrigt

 

 

Datorer och programmering, intro

1,2

 

 

 

Problemanalys och design av program och funktioner

2,6

 

 

Beräkningar med heltal och flyttal

3

 

Strängar, listor, filer

5

 

 

 

Datasamlingar och dataanalys

11

 

 

Algoritmer med loopar och villkor

7,8

 

Objekt och grafik

4

 

 

Klasser och objektorientering

10

 

 

Objektorienterad design

12

 

Grundbegrepp i maskininlärning

 

 

 

Algoritmer för maskininlärning: linjär och polynomiell regression

 

 

Analys och design av algoritmer, rekursion, beräkningsbarhet

13

 

Repetition och frågestund

 

Sista deadline för labbarna

 

Tenta, digitalt på distans

 

Kurslitteratur, mjukvara och övrigt material

Kursboken: John M. Zelle, Python Programming: An Introduction to Computer Science, 3rd edition, Franklin, Beedle, & Associates, 2017 https://mcsp.wartburg.edu/zelle/python/

Bokens webbsida ger tillgång till gratis slides. Boken rekommenderas varmt: den är lättläst samtidigt som den förklarar sakerna grundligt. Men det är möjligt att klara kursen utan att köpa boken.

Filmer: alla föreläsningar spelas in och kommer att vara tillgängliga på webben.

Slides: föreläsningarnas OH-bilder kommer att vara tillgängliga på nätet i förhand genom länkar i föreläsningstabellen.

Webbsidan är den här sidan finnas på Canvas och ger tillgång till all information och material.

GitHub: exempelkod och andra användbara moduler kommer att finnas tillgängliga.

Mjukvara. All mjukvara är gratis och kan laddas ner från nätet.  Det finns instruktioner på https://it.portal.chalmers.se/itportal/GenStud/Python och Chalmers IT-support har lovat hjälpa om dessa inte är tillräckligt. Även kursens lärare kan hjälpa med installationen.

Kursens upplägg

Programmering är en praktisk färdighet, som man lär sig bäst genom att öva den. I gruppsessionerna övar vi “programmering i smått”, dvs vilka verktyg som finns och hur man använder dem. I inlämningsuppgifterna ("labbarna") får man då ta sina första steg till “programmering i stort”, dvs skriva hela program som gör intressanta saker. 

Labbarna görs individuellt, och det är förbjudet att kopiera kod från varandra.

Kursen har fyra labbar:

  • 1. Textanalys. Programmet ska läsa dokument, från din egen dator eller webben, och göra frekvensanalys om ordens förekomster. Programmet behöver först rensa bort html-taggar, separera interpunktion från orden, samt bestämma hur de stora och små bokstäverna hanteras. Resultatet ska kunna visas i form av snygga tabeller.
  • 2. Grafik och animering. Programmet skapar ett fönster, där man kan skjuta projektiler i olika vinklar och hastigheter. Animeringen visar hur projektilerna flyger och var de landar, genom att använda fysikens lagar.
  • 3. Linjär algebra. Programmet implementerar grundläggande algoritmer för matriser, och deras prestanda jämförs med färdiga algoritmer från Pythons standardbibliotek.  Labben utgör även grunden för Lab 4.
  • 4. Maskininlärning. Den sista labben är samtidigt en introduktion till artificiell intelligens (AI), där man inte skriver exakt vad ett program ska göra, utan programmer lär sig från data. Labben använder sig av linjär och polynomiell regression, som är  grundläggande algoritmer i AI.

Den övriga undervisningen på kursen har dessa labbar i syfte: vi kommer att gå genom precis den teori och “programmering i smått” som behövs för att kunna göra labbarna i tid. Samtidigt är labbarna designade så att de ger en bred bild av programmering och erfarenhet till otaliga nya uppgifter som deltagarna ska kunna lösa i livet efter kursen

Förändringar sedan förra kurstillfället

Kursen ges för första gången nu.

Lärandemål

Kunskap och förståelse:

  • Uttrycka matematiska formler som uttryck och algoritmer i Python
  • Välj lämpliga datatyper och datastrukturer för olika typer av data
  • Strukturera stora Python-program i hanterbara och återanvändbara enheter med hjälp av begrepp som moduler, klasser och funktioner
  • Söka och hitta relevanta programbibliotek och använda dem på lämpligt sätt
  • Förklara förhållandet mellan hårdvara, operativsystem och användarprogram
  • Använda Python programmering för grundläggande dataanalys av stora filer

Färdigheter och förmåga:

  • Skriva Python-program som manipulerar numerisk och textuell data för att utföra vanliga programmeringsuppgifter
  • Bygga interaktiva Python-program med både textbaserade och grafiska användargränssnitt
  • Skriva Python-program som läser, ändrar och skapar filer i filsystemet
  • Använda standardbibliotek och följa god praxis i programmering
  • Testa Python-program med metoder såsom enhets-, regressions- och egenskapsbaserad testning
  • Använda programmeringsverktyg såsom textredigerare och versionshanteringssystem

Värderingsförmåga och förhållningssätt:

  • Utvärdera svårigheter och resurser som krävs för typiska programmeringsuppgifter
  • Analysera kod skriven av andra och hitta fel och möjligheter till förbättring

Examination

Kursen har två möjliga betyg: godkänt (G) och underkänt (U). För att få godkänt krävs

  • 4 inlämningsuppgifter (även kallade för labbar) inlämnade och godkända före varsin deadline. Rättningen sker mest automatiskt via testprogram, och man kan lämna in mer än en gång. Men vi kommer även att göra manuella kontroller. Labbarnas ämnen är beskrivna ovan.
  • en skriftlig tenta, datum annonseras senare.

Länk till kursplanen

Course summary:

Date Details