Giter Site home page Giter Site logo

dbosk / intropy Goto Github PK

View Code? Open in Web Editor NEW
5.0 3.0 4.0 16.56 MB

En introduktion till programmering i Python

Home Page: https://daniel.bosk.se/intropy

License: Other

Makefile 3.20% HTML 1.90% TeX 45.94% Python 46.05% Shell 0.18% SCSS 2.73%
programmering python laborationer undervisningsmaterial

intropy's Introduction

intropy's People

Contributors

celinahenriksson avatar celinasoori avatar dbosk avatar mazen-mardini avatar shootingstar42 avatar yasminaaltayy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

intropy's Issues

Files: discuss search paths

Several students have problems that they put the file in the wrong directory. Cover current working directory.

Show literate programming

It is probably good to introduce the idea of literate programming as an alternative to Jupyter #4.

Literate programming might require higher cognitive skills in programming. This should be investigated first.

Ta upp testning mer konkret

Studenterna måste kunna utvärdera sin egen kod på ett bra sätt. Ta upp testning

  • systematisk testning av koden (pytest).
  • debug-by-print: lägg in print-satser här och där.
  • pdb: genomgång för de som är mer avancerade.
  • PySnooper

Structure for files lecture

Cover the basics in a first lecture. Use the with statement. Cover better file handling using libraries; e.g. CSV, json.

In the second lecture, cover character encoding.

Seminar oriented labs

Let the students do the labs. Check that they run (simple testing). Have a seminar where we discuss various solutions.

The group can present the solution. That's how we check that they actually did the work themselves.

Lägg till en vecka i slutet för Matlab

Flytta Matlab till slutet och lägg till en vecka, istället för att ha tomt sista veckan (som nu). Då kan vi köra Matlab-fredag den veckan efter att projektet är klart.

Exempelut- och -inmatningar på labbarna

Ge ett exempel på en körning med inmatning och förväntad utmatning.

Om vi säger att deras inlämningar ska ge samma utskrifter och ta samma inmatningar, då kan vi rätta dem mer systematiskt (automatisk testkörning).

Labbar att revidera:

  • variables
  • conditionals
  • containers
  • functions
  • files
  • classes
  • graphics
  • eqns
  • graphs

Modifiera existerande program som övning

Är det ett bättre upplägg att låta labbarna vara att modifiera färdiga program? Iallafall i början. Då ser de helhelten först (programmet fungerar), sedan kan de enkelt se skillnaderna som förändringarna gör (variation). (Borde vara bra enligt Martons variationsteori.)

Det kan vara lämpligt på de första programmen iallafall.

Extrauppgifter

Vi behöver extrauppgifter som utmanar studenterna lite mer. De är inte obligatoriska, men kan användas inför övningarna.

Vi följande:

  • variables/extras
  • conditionals/extras
  • containers/extras
  • functions/extras
  • files/extras
  • classes/extras
  • graphics/extras

Idéer graphics

Rita en kurva över olika q och g_1. Använd matplotlib och integrera resultatet i tkinter.

Utvärdering prgi20

Studienämndens utvärdering

Date: Wed, 11 Nov 2020 11:05:18 +0100
To: Daniel Bosk [email protected]
Subject: Svar på utvärdering av DD1315 period 1
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset=utf-8

Här kommer som utlovat de frågor och en sammanfattning av svaren från
enkäten vi gjorde om DD1315 i P1:

Hur har föreläsningarna varit? Tänk på både positiva saker och
förbättringsmöjligheter.

Generellt sätt bra. Ibland går det lite för snabbt i exemplen, vore bra om
man hann med att själv skriva av i en editor medans kodstycket
förklarades.

Fixas med förinspelade föreläsningar. Då kan man pausa och spola tillbaka. Samt ställa frågor med FeedbackFruits.#62

Exemplen har uppfattats som svåra, kanske ta lite lättare
exempel i början av föreläsningen och sen trappa upp
svårighetsgraden. Många har uppfattat svårighetsgraden som lite för
svår.

Kan nog också avhjälpas med förinspelade föreläsningar. Och möjlighet att ställa frågor. #62

Bra med mycket konkret programmering. Tydliga lösningar på problem
och bra förklaringar. Det uppskattas att det finns en asse i chatten som
kan svara på frågor. Det uppskattas att föreläsningarna i efterhand läggs
upp på canvas​

Hur har hjälpen varit i kursen via övningar och labbtillfällen? Vad tycker
om dessa? Lärorika, onödiga, svåra, lätta m.m.
Övningstillfällena på plats har varit mycket lärorika och roliga medan de
på distans har fungerat sämre och det blir svårare att lära sig där.
Exemplen på övningstillfällena har varit bra med ibland lite för komplexa,
lite svåra att överblicka. Hade varit bra om assarna och föreläsaren
pratade igenom labbarna så man inte får olika svar beroende på vem man
frågar.

Kan avhjälpas med att frågor och svar postas i Canvas. #63

Lite korta övningar(1h). De verkar som att många inte varit med på
labbtillfällena just eftersom det upplevdes som svårt att få hjälp. Någon
önskar mer feedback på labbarna, inte bara P/F.

Åtgärdas med muntlig redovisning.#58
Åtgärdas även med rättningsmall för labbarna. #73

Hur har labbarna varit? Svåra, lätta, lärorika m.m.
​Blandade reaktioner, några tycker lätta medan andra tycker svåra. Vore
bra om man hunnit ha båda föreläsningarna innan labbarna skulle lämnas in.
Stegrade snabbt i svårighetsgrad. Ibland otydligt formulerade men efter
revidering har de varit lärorika. Den sista labben upplevdes bland
många som särskilt svår.

Ska balansera svårighetsgraden. #61

Rangordna vilket undervisningstillfälle som du har lärt dig mest på. Ge
det bästa tillfället en 1:a, det näst bästa en 2:a o.s.v.. Om du anser två
tillfällen vara lika bra, ge dem samma siffra.
​Både övningarna och inlämningsuppgifterna varje vecka har upplevts som de
tillfällen där man lärt sig mest. Därefter ungefär lika mellan
föreläsningar och annat(Youtube, Github etc.)

Datorprovet vi skrev den 22 Oktober, hur kändes det?
Konsensus bland svaren att datorprovet var bra. Vissa tycker det är
konstigt att ha en programmeringsexamination i "provform" eftersom det
inte är en naturlig form av programmering. Frågorna var lämpliga till
kursens innehåll​

Övrigt- Hur var introduktionen till kursen? Upplägget osv
Kaotisk början. Det var oklart vad man verkligen behövde göra (terminalen,
anslutning till KTH:s system, OLI, Latex, etc.). Vissa uppfattade det som
att man behövde göra allt. Det vore bra om det kunde förtydligas till
nästa år.

Fixas med datintro.

Kontinuerliga uppgifter som "tvingar" en att hänga med är mycket
bra.

Vissa kände att kursen förutsatte att man hade förkunskaper om
programmering. Övningarna var lite korta, 2h istället för 1h hade nog
varit bättre (om schemat tillåter)​

Prata lite om studieteknik i början. #68

Förändringsförslag

Slå ihop labbar i början. Högre tempo. #61

Funktioner och klasser tidigare. Mer avancerade labbar generellt. #61

Vissa har svårt med att se syftet med klasser. #64

Arbeta mer med tkinter. Frivillig labb. #65

Mer tid för specar, arbeta mer med specen under en vecka med fler labbtillfällen. Just nu behöver de hjälp när de skulle redovisa. #66

"Matlabfredag" till modul

En timme är för kort. Två timmar gick. Man hinner bara göra en av uppgifterna bra på den tiden.

Verkar finnas skillnader mellan Matlab online och inte (behöver inte hold on).

Svårt med detaljkunskap i Matlab. (Ingen vill lära sig Matlab :-P)

Lite mer förberedelsetid. Föreläsning, sedan några dagar med förberedelseuppgifter (lekuppgifter), så att man vänjer sig vid Matlab innan övningen. Kan ha en enkelt sak som en summeringsfunktion.

De behövde lära sig Newton-Raphsons metod. (Har de inte Newton-Raphsons i gymnasiematten?)

Studenterna läser linjär algebra parallellt.

Svårt att förklara matten och matlab etc. på två timmar.

Varför fplot istället för plot? Titta på det under föreläsningen?

Svårt att ta konceptet vidare till andra labbar. Bättre att ha labbarna som de är. De kan lösa labbarna under labbtillfällena, lämna in labbarna på fredag inför övningen.

De olika grupperna blev tilldelade datorer i datorsalarna. Assen satt då där och kunde gå igenom saker på tavlan.

Classes lecture

Cover basics: getters and setters.

Cover Python's specialized method names to make iterables, overloading operators, etc.

Projektspecifikation

Från Camilla:

  • Hur lång ska specen vara?
  • Finns det en mall för specen? Jag tror att det skulle vara till väldigt stor hjälp så att de får hjälp att skapa så bra specerier som möjligt.
  • Vad ska “algoritm” bestå av? P-uppgifterna är hyfsat stora, jag tror att det kan bli många missförstånd kring vad som hör till “algoritmen”. Är det main de ska beskriva eller den mest avancerade delen av programmet. Det skulle vara bra med ett exempel.
  • Jag antar att det är obligatoriskt att lista några lämpliga funktioner. I och med att det står “Du kan dela upp din algoritm i funktioner” tror jag att det finns en risk att de kan tolka det som att de ska skriva vilka funktioner som de kommer dela upp algoritmen i, om de väljer att dela upp den i funktioner

Matlabföreläsning

Skapa skript i filer. Använd inte bara "command window". Förtydliga likheterna med pythontolken.

Move functions earlier

We need functions much earlier, from the beginning to really learn to not repeat code already from the beginning.

Ha en "sorting hat" att skapa grupperna med?

Ska vi skapa grupperna med hjälp av ett diagnostiskt prov?

Vad finns det för forskning om nivågrupperingar? Det finns en del negativa saker. Men det kanske bara är om man döper grupperna till "lätta gruppen", "bra gruppen", "svåra gruppen" etc.?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.