Innhold
IGrunnleggendeprogrammering
1 Intro duksjon
1.1Naturvitenskapeligogmatematiskprogrammering
1.4Programmeringisamfunnet
1.4.1Programmeringiframtida...
1.5ProgrammeringsspråketPython
1.5.1Programmeringsmiljøer(IDE-er)...
1.5.2Kjøreprogrammerikommandolinja...
1.5.3BrukavJupyterNotebook
1.6Brukavgenerativkunstigintelligensiprogrammering
1.6.1FordelermedgenerativKI
1.6.2FallgruvervedavhengighetavKI
1.6.3BalansenmellombrukavKIogaktivlæring
2.2.1f-strengformatering
2.2.2Tipstilbrukavprint.
2.3.1Heltallogflyttall
2.3.2Standardform
2.4Tekststrenger
2.5Aritmetikk
2.5.1Regnerekkefølge
2.5.2Regningikonsollen
4
2.11Kompleksetall
2.12Kommandolinjeargumentersomalternativtil
2.13Feilsøking
3.1.1Eksempel:pH-beregninger
3.1.2Nøstedevilkår...
3.1.3Eksempel:bergarter
3.2Løkker
3.2.1While-løkker
3.2.2Eksempel:frittfall
3.3For-løkker
3.4Anvendelser
3.4.1Eksempel:følgerogrekker
3.4.2Eksempel:populasjonsdynamikk
3.5Nøstedeløkker.
3.5.1Eksempel:elektroneksitasjon
3.6Iterasjongjennomlister
3.6.1Iterasjongjennomflerelisteelementer
3.6.2Utfyllingavlister
3.7Løkkekontrollmed break og
4.1.1Hvorforfunksjoner?
4.2Funksjonermedflereparametre...
4.3Funksjonermedingenellerflerereturverdier...
4.4Argumentverdierogparameternavn
4.5Lokaleogglobalevariabler..
4.6Dokumentasjonsstrenger(docstring)
4.7Python-moduler
4.8Lambda-funksjoner.
4.9Rekursjon
5.1.1Opprettearrayer
5.1.2Behandlearraydata
5.1.3Biologieksempel:Populasjonsdynamikk
5.1.4Flerdimensjonalearrayer
5.1.5Vektorisering...
5.1.6Kopieravarrayeroglister
5.2Dictionarier
5.2.1Nøstededictionarier..
5.2.2Håndteredictionarier
6 Testing, feilhåndtering og versjonskontroll
6.1Feilhåndteringmed try-except
6.1.1Håndteringavspesifikkefeil
6.1.2Håndteringavfeilikommandolinjeargumenter
6.2Brukavtestfunksjonerforåverifisereprogrammer
6.2.1Entestfunksjonkaninkluderefleretester
6.2.2Python-verktøyforautomatisktesting
6.3VersjonskontrollmedGit
6.3.1HvordankommeigangmedGithub
6.3.2LagringavendringeriGithub-repoet
7.1Klasser,objekteroginstanser
7.2Grunnleggendeomklasser...
7.2.1Førsteeksempel:Enklassesomrepresentererfysiskeobjekter.163
7.2.2Klasserformatematiskefunksjoner ..............166
7.2.3Meromklasseprogrammering... ..............168
7.2.4Beskyttedeattributter... ..................169
7.3Spesialmetoder .............................170
7.3.1Spesialmetoderformatematiskeoperasjoner... ......173
7.4Objektorientertprogrammering ....................175
7.4.1Klassehierarkierogarv .....................175
7.4.2Arvog polymorfisme ......................178
7.4.3Etklassehierarkiforpolynomer
IIDataogvisualisering
8 Visualisering og datahåndtering 197
8.1Plottingmed Matplotlib ........................197
8.1.1Plottingavlister ........................198
8.1.2Flereplottisammefigur
8.1.3Plottingavfunksjoner
8.2Lesefiler .................................204
8.2.1Skrivetilfil ...........................205
8.2.2Lesefrafil
8.3Lesefilermedpandaer
8.3.1Tipstillesingavfil..
8.3.2Velgeutelementerfradatarammer ..............210
8.3.3Lagenyedatarammerogskrivetilfil
8.3.4Leggetilogsletteelementer
8.3.5Leseflerefiler ..........................213
8.4PlottingmedSeaborn
9 Statistikk
9.1Sentraltendensogspredning
9.1.1Sentraltendens
9.1.2Spredningsmål
9.1.3Testerforutliggere
9.2Statistiskinferens
9.2.1Hypotesetestingmedt-tester..
9.2.2Korrelasjon ...........................244
9.2.3Regresjon
10.2.1Eksempel:Tilnærmingav π medtilfeldigetall
10.2.2Eksempel:Virrevandring
10.2.3Eksempel:Tilfeldigetrekk
10.2.4Eksempel:DNA-mutasjoner...
10.3Sannsynlighetsfordelinger
10.3.1Uniformfordeling
10.3.2Binomiskfordeling
10.3.3Hypergeometriskfordeling
10.3.4Normalfordeling
10.3.5Poisson-fordeling
10.3.6Maxwell-Boltzmann-fordeling
10.3.7Fradiskretetilkontinuerligefordelinger
11.2.1DenoriginaleNewton-Raphson-metoden
11.2.2Sekantmetoden
11.3LikningsløserefraSciPy
11.3.1Likningssystemer
12.1.1Newtonskvotient
12.1.2Feilanalyse..
12.1.3Uliketilnærminger
12.2Numeriskderivasjonavdiskretedata.
12.3Klasserfornumeriskderivasjon..
12.3.1Arvogsubklasserfornumeriskederivasjonsformler
12.4.1Rektangelmetoden
12.4.2Algoritmerogimplementering
12.4.3Trapesmetoden
12.4.4Simpsonsmetode ........................342
12.4.5MonteCarlo-integrasjon
12.5Bibliotekerforderivasjonogintegrasjon
12.5.1Dobbel-ogtrippelintegrasjon
12.5.2Analytiskderivasjonogintegrasjon
15.1Uliketilnærmingertilmaskinlæring
15.2Maskinlæringsmodeller
15.2.1Beslutningstrealgoritme
15.2.2kNN-algoritme
15.3Kunstigenevralenettverk
15.3.1Loss-funksjoner
15.3.2Lineæreregresjonsmodeller
15.3.3Andreregresjonsmodeller
15.4Regresjonmedscikit-learn
VLøsningsforslag
1.Introduksjon
1.1 Naturvitenskapeligogmatematiskprogrammering
Detteerenlærebokinaturvitenskapeligogmatematiskprogrammering.Hovedformåletmeddennetypenprogrammeringerågjørematematiskeberegningerogutforskenaturvitenskapeligefenomener.
Selvommatematikkognaturvitenskaptradisjoneltharblittformidlet gjennomligninger,illustrasjonerogskriftligeforklaringer,erprogrammering etkraftfulltverktøyforåforståogutforskekompleksesystemer.Meddatamaskinensomverktøykanvisimulerealtfrakjemiskereaksjonerogplaneters bevegelsertilevolusjonæreprosesserogjordskjelv.Datamaskinenkanaltså bådebrukessometkraftigmikroskopsomlarossseenkeltatomer,ogsomet teleskopsomlarossstuderestjerner,planeteroggalakser.Idennebokavil vivisehvordanprogrammeringkanværeetdynamiskverktøyforlæringog eksperimenteringinaturvitenskapogmatematikk.
Bokagirenpraktisktilnærmingtilprogrammeringgjennomeksemplerpå problemstillingerogprogramkodefraulikenaturvitenskapeligefag.Eksempleneerforankretimatematiskteoriognaturvitenskapeligeprinsipper.Måleter ågidegeksemplerfradittegetfagområdesomfølesrelevanteogsomgirdeg
enhelhetligforståelseforhvordandukanbrukeprogrammeringsomverktøy inaturvitenskapogmatematikk.
Inaturvitenskapeligogmatematiskåndhåperviatdukanværeundrendeognysgjerrigimøtetmedprogrammering,ogatprogrammeringenkan stimuleretilkreativitetogskapergledehosdeg.
Detviktigstedukangjøreforålæredegåløsematematiskeognaturvitenskapeligeproblemermedprogrammering,eråprogrammereselv.Deter viktigatdugjørmangeoppgaversomduprøveråløsepåegenhåndførdu eventueltspøromhjelp.Viharderforlagetunderveisoppgaversomdukan løseforåsjekkeatduharforståttdetduharlest.Dissebørdugjøremensdu leser.Nårduharprøvdpåenoppgave,kandusjekkeløsningsforslagetbakerst iboka.
1.2 Algoritmer
Algoritmerogmodellerersværtviktigeinaturvitenskapeligogmatematisk programmering.Laossderforsenærmerepådissebegrepene.
Algoritmer
Enalgoritmeerenpresisbeskrivelseavenserieoperasjonersomskal utføresforåoppnåetvisstresultat.
Velkjenteeksemplerpåalgoritmererstrikkeoppskrifter,kakeoppskrifterog algoritmenesomgirossanbefaltefilmerpåNetflixogannonserpåFacebook. Algoritmerinaturvitenskaperpåsinsideenserieoperasjonersomløseret naturvitenskapeligproblem.Noenalgoritmerersværtkompliserte,mensandre erenkleåforstå.Pythonharmangebibliotekersomvikanimportereforåfå tilgangtiltusenvisavnyttigealgoritmer.
Menselvomdetfinnesferdigprodusertealgoritmer,børviogsålæreoss ålageflereavdemselv.Vileggeropptilatduskalforståogimplementere matematiskealgoritmeriPythonpåegenhåndidenneboka.Dettegjørviav flereårsaker:
•Viforståralgoritmenebedrehvisvilagerdemselv.
•Viharmulighetenetilåmodifiserealgoritmenedersomviskulletrenge det.Destomerduforstår,jomerkontrollhardupådetsomskjer.
•Nårduprogrammereralgoritmer,kandufåendabedreinnsiktidet matematiskeognaturvitenskapeligeinnholdet.
Alledisseergodegrunnertilatviskalprogrammerealgoritmerfrabunnen av,mennårduførstharlærtalgoritmene,skalviogsåsepåimporteringav ferdiglagdemetoderogalgoritmerfraprogrammeringsbiblioteker.
1.3 Modellering
Naturvitenskapeligogmatematiskmodelleringerendynamiskprosessdervi lager,vurdererogforbedrermodeller,somerforenklederepresentasjonerav virkeligheten.Dissemodellenekanværeutledetframatematiskesammenhenger,ellerdekanværeempiriske,ogdermedbasertpåeksperimenter.
EteksempelpåenmodellerHookeslov.Denbleformulerti1676ogbeskriveratkraftenvitrekkerenfjærmed(F ),erproporsjonalmedforlengelsen avfjæra(x )fralikevektspunktet(x0 ):
Modellenhar,somalleandremodeller,begrensninger.Hvisviforeksempel trekkerfjæraforlangt,kandendeformeresellerryke.Allemodellerharderfor et gyldighetsområde ogbegrensningeravhengigavsammenhengenvibenytter demi.
Figur1.1:Hookesoriginaletegningavenfjæri DePotentiaRestitutiva (1678).
F = k (x x0 )
DetsomerfascinerendemedHookeslov,eratdennemodellenfor«fjærkraften»ogsåkanbrukessommodellforåstudereandrefenomener,foreksempel kjemiskebindingerogvibrasjonikjemiskeforbindelser.Dennemodellenbrukesfaktiskimodernedatasimuleringeravmolekylerogkrystaller.Enomlag 350årgammelmodellermedandreordlikeaktuellidag!
Figur1.2:Utsnittfraensimuleringavenkrystallmedbindingermodellertsomfjærer. SimuleringenerlagdmedVPython.
Modellering
Modelleringerenprosesssominnebærerålage,vurdereogforbedre forenklederepresentasjoneravfenomenerivirkeligheten,altså modeller.
Forhverenkeltmodellerdetviktigåværeoppmerksompåbegrensningeneog forutsetningenesomgjelder.Detteerenklereåblibevisstpånårvilagerog utforskermodelleneselv,noesomerlettereåfåtilmedprogrammering.Programmeringerderforetviktigverktøyforåforståogutforskenaturvitenskap ogmatematikk.
1.4
Programmeringisamfunnet
Selvomvifokusererpåmatematiskognaturvitenskapeligprogrammeringi denneboka,erdetviktigåforståatprogrammeringharenmyebredererelevansisamfunnet.Programmeringeretverktøysombrukestilåstyreog automatisereprosesser,analyserestoredatamengder,simulerekompleksesystemerogskapenyeteknologiskeløsninger.Altfraøkonomitilmedisinbenytter segavprogrammeringforåløseproblemersomtidligerekrevdemyetidog ressurser.Nårdutilnærmerdegproblemermedprogrammeringsomverktøy, kanduogsåblienbedreproblemløser.Ensolidkunnskapomprogrammering åpnerderformangedøreridagensteknologidrevnesamfunn.
Ferdigheteriprogrammering,modelleringogdataberegningererogsåsvært viktigforåkunne forstå samfunnet.Algoritmerogkunstigintelligensomgir oss,ogvitrengerdigitaleferdigheterforåkunneengasjereosssomaktiveskapereavdenneteknologien,ikkebarekonsumenter.Menogsåsomkonsumenter avdigitalteknologierdetviktigatviforstårdenneteknologien.Detgjøross istandtilåtavelinformertevalg,ogbidrardermedtilendemokratiseringav samfunnet.
1.4.1
Programmeringiframtida
Iframtidavilteknologiforståelseogprogrammeringkunnespilleenendaviktigererolleettersomteknologienutviklersegraskt.Enveldigspennendeutviklingskjerinnenforkvantedatamaskiner,somloveråkunneløseproblemersom dagensdatamaskinerbrukermangeårpå.Kvantedatamaskinerkanpotensielt revolusjoneredataberegningersomkrevermyeressurseridag.
Figur1.3:KvantedatamaskinenIBMQ[Adventtr/iStock].
Itilleggøkerogsåbrukenavmaskinlæringogkunstigintelligensinnenfor
programvaresomhjelperdegåskrive,testeogkjørekodendinpåeneffektiv måte.EksemplerpåpopulæreIDE-erforPythoner:
1. VSCode: EtmyebruktIDEsomstøttermangeforskjelligeprogrammeringsspråk,inkludertPython.Detharmangeutvidelsersomgjørdet tiletsværtfleksibeltvalgforprogrammerere.
2. JupyterNotebook: EtpopulærtIDEforvitenskapeligprogrammering.DetlardegskriveogkjørePython-kodeismåseksjoner,noesom ersværtnyttigforåtesteutideerstegforsteg.Itilleggkanduskrive tekstogmatematikkisammemiljø,noesomgjørmiljøetgodtegnetfor vitenskapeligkommunikasjon.
3. Spyder: EtIDEsomfølgermedAnaconda-pakka.Detteerenpopulær samlepakkesominneholderPython,flereIDE-er,nyttigebibliotekerog endelannenfunksjonalitet.
4. PyCharm: EtrelativtavansertIDEsomgirdegmangeverktøyfor åjobbemedstørreprosjekter.Detharinnebygdfeilsøkingogstøtter versjonskontroll.
Detfinnesmangeflereutviklingsmiljøer,ogdubørvelgedetsompasserbest fordinarbeidsflyt.NoenforetrekkerenenkelteksteditorsomSublimeText ellerAtom,mensandrevelgermeravanserteIDE-ersomVSCodeellerSpyder.
Figur1.4:UtsnittavprogrammeringsmiljøetVSCode,etmyebruktIDE.
1.5.2 Kjøreprogrammerikommandolinja
ForutenåbrukeetIDEtilåskriveogkjøreprogrammer,erdetogsåvanligå kjørePython-programmerdirektefrakommandolinjaellerterminalen.Dette erspesieltnyttignårduønskeråkjøreetprogramutenååpneetutviklingsmiljø,ellerhvisduarbeiderpåenserverderingengrafiskbrukergrensesnitter tilgjengelig.Kommandolinjagirogsåmerkontrolloverhvordanprogrammet kjører,ogdukanenkeltsendemedparametereellerbrukeulikeverktøyfor feilsøking.
HererenkortoversiktoverhvordandukankjørePython-programmerfra kommandolinja:
1.Åpnekommandolinjaellerterminalen.
Førstmåduåpnekommandolinja(iWindows)ellerterminalen(imacOS/Linux).Detteerettekstbasertgrensesnittderdukanskrivekommandoerforå kjøreprogrammerogmanipulerefiler.
• Windows:Dukanåpnekommandolinjavedåtrykke Win+R,skrive cmd ogtrykkeEnter.
• macOS:TerminalenfinnerduvedåtrykkeCommand+Spaceogsøke etter«terminal».
• Linux:PådeflesteLinux-distribusjonerkanduåpneterminalenvedå søkeetter«terminal»iapplikasjonsmenyen.
2.Navigertilriktigmappe.
NårdukjørerPython-programmerfrakommandolinja,mådunavigeretil mappahvorPython-filaduønskeråkjøre,erlagret.Dukanbrukekommandoen cd (changedirectory)tilåbyttemappe.
Hvisforeksempelprogrammetditterlagretienmappesomheter prosjekter/python påskrivebordet,kandunavigereditvedåskrive:
cdDesktop/prosjekter/python
3.KjørPython-programmet.
Nårduharnavigerttilriktigmappe,kandukjørePython-programmetvedå brukekommandoen python etterfulgtavfilnavnet.
HvisduforeksempelharenPython-filsomheter mitt_program.py,skriverdu:
python3mitt_program.py
Dettevilkjøreprogrammetditt,ogresultatetvilvisesiterminalvinduet.
4.KjørePython-konsollen.
Iprogrammeringssammenhengreferereren konsoll spesifikttiletinteraktivt miljøsomofteåpnesfraenterminal,hvorbrukerekanskriveogevaluere Python-kodedirekte.
DukanstartePython-konsollendirekteiterminalenvedåskrive python3. DetteåpnereninteraktivPython-sesjonderdukanskriveogkjørePythonkommandoerfortløpende,utenålageenegenfilsominneholderkommandoene.Dukanogsåbrukekonsollensomenenkelkalkulator(foreksempelved åskrive 3**5 ogtrykkeEnter).Dettekanværenyttigforrasktestingavsmå kodebiterellerforågjøreenkleberegninger.
1.5.3 BrukavJupyterNotebook
Etverktøysomegnersegsværtgodttilåskrivedokumentersominneholderkode,er JupyterNotebook.DetteIDE-etinneholderbådematematisk tekstformateringogeneditorsomkankjørekode.JupyterNotebookfinnesi Anaconda-pakka,sådenkanstartesherfra.Daåpnesenlistemedfilersom ligger lokalt pådatamaskinen(selvomdetåpnesiennettleser).Alternativt kandubrukeJupyterLab,somerenannenmåteåleseoginterageremed JupyterNotebookspå.VSCodekanogsåkjøreJupyterNotebooks.
Trykkpå new og Python3,såkommerdutilettomtdokument.Notebookenbyggesoppavblokkermedinnhold.Detfinnesihovedsaktoinnholdsblokker: code (kodeblokk)og markdown (tekstblokk).Ienkodeblokkkandu skrivePython-kodeakkuratsomienanneneditor.Itilleggkjørerogsåkoden her,ogdufåretoutputunderkodeblokka.TrykkShift+Enterforåkjøre kodenihverblokk.Menpasspå–allkodeniennotebookhengersammen. Deterderforikkelikegyldighvilkenrekkefølgedukjørerkodeni.
Dersomvivilskrivetekst,kanvibruketekstblokkene.Herskriverviiet markeringsspråksomkalles markdown.Dettegjørossistandtilåblandetekst medmatematikk,bilderogannet.Markdownharsinegenkode,mendeter ikkesåmyeåholdestyrpåher.Følgendetabelloppsummererdetviktigste:
Overskrift,nivå1
Overskrift,nivå2 ### Overskrift,nivå3 _tekst_ Kursiv **tekst** Fetskrift  Settinnbilde [tittel](https://www.elg.no) Lenke |tabelltekst|tabelltekst| Tabeller
Dersomviønskeråskrivematematikkiteksten,trengerviålæreosslitt LaTeX (uttales«latekj»eller«latek»ogerikkeåforvekslemedpolymer-
emulsjonenlateks).LaTeXeretdokumentbehandlingsspråksombrukesfor åskrivepentformatertedokumenter,spesieltmedmatematisknotasjon.All matematikkiLaTeX-kodeskrivesmeddollartegnpåhversideavuttrykket. Hvisduønskermatematikkenmidtstilt,kandubrukedobledollartegnpåhver side.EndelnyttigLaTeX-kodefinnerduitabellennedenfor:
Tegn
Forklaring \alpha Greskbokstav,f.eks. α \cdot Gangetegn \rightarrow Høyrepil \rightleftharpoons Kjemisklikevektspil \frac{teller}{nevner} Brøk
Hevettekst Senkettekst \sum_{nedre}ˆ{øvre} Summetegn \int_{nedre}ˆ{øvre} Integral \lim_{x\to\infty} Grenseverdi \left( Storvenstreparentes \right) Storhøyreparentes
Forågrupperesammensatteindekserellereksponenter,ellerannentekst,kan dubrukekrøllparenteser.
1.6 Brukavgenerativkunstigintelligensiprogrammering
Idagharvitilgangtilkraftigeverktøybasertpågenerativkunstigintelligens, foreksempelChatGPTogGithubCopilot,somkanbidrabetydeligtilprogrammering.Disseverktøyenekanværesværtnyttigeforåøkeeffektiviteten oghjelpeossmedåfokuserepådetvitenskapeligeinnholdetistedetforå brukemyetidpåtekniskedetaljersomsyntaksogformatering.Likevelerdet viktigåværeklaroverbådefordeleneogfallgruvenevedåbrukeslikteknologi.
1.6.1 FordelermedgenerativKI
GenerativKIkanhjelpeossmedmangepraktiskeoppgaveriprogrammering. Noenavdeviktigstefordeleneer:
1. Raskfeilsøking. KI-verktøysomGithubCopilotkanofteoppdagefeil ogforeslåkorrigeringermensduskriverkode,noesomreduserertiden dubrukerpååidentifiseresyntaksfeilellerskriveoverflødigkode.Du kanogsåspørregenerativKIomhvasomerfeilmedkodendin.Passda pååværetydeligpåhvasomvarintensjonen,hvordankodenserutog hvilkefeildufår.
2. Effektiviseringavgjentakendekode. GenerativKIkanrasktgenererekodeforvanligeoppgaver,slikatdukanfokuserepådemer komplekseaspektenevedproblemet,sommatematiskeberegningereller naturvitenskapeligesimuleringer.MenpasspåatduforstårhvaKI-en hargjortførduleggertilendamerkompleksitet.
3. Oversettelseavfagligeproblemertilprogramkode. GenerativKI kanhjelpedegmedåoversettekomplekserealfagligeproblemstillinger tilfungerendeprogramkode.Dettekanværespesieltnyttignårdustår fastpåhvordanduskalimplementereenmatematiskmodellellernaturvitenskapeligsimuleringietprogrammeringsspråk.
4. Pedagogiskstøtte. GenerativKIkangiveiledningvedåforklarekonsepterogkodepåenforståeligmåtetilpassetdittnivå.Determedandre ordetverktøysomkanhjelpedegåforståhvordanalgoritmerogmodellerfungerer.Dettekangidypereinnsiktogsparetid,slikatdukan konsentreredegomdetmatematiskeognaturvitenskapeligeinnholdet.
1.6.2 FallgruvervedavhengighetavKI
SelvomgenerativKIkanværeetnyttigverktøy,erdetogsåviktigåvære oppmerksompårisikoenevedåstoleformyepådet:
1. KIkangenererefeilkode. SelvdebesteKI-verktøyenekanprodusere kodesominneholderfeilellergjørnoeannetenduønsker.Deterderfor viktigåalltidvalidereogtestekodengrundig,spesieltnårdetgjelder vitenskapeligesimuleringerellerkomplekseberegninger.GenerativKI kannoengangergiløsningersomserriktigeutvedførsteøyekast,men somikkefungerersomforventetellerønskeligipraksis.Detkanenten skyldesatKI-engjørfeil,elleratduharværtupresisiledetekstendu hargitttilKI-en.
2. Passivlæring. EnannenfarevedåstoleformyepågenerativKIer atdetkanføretilatdublirenpassivbrukeravverktøyene,utenå utvikleendypereforståelseavhvordankodenfaktiskfungerer.Dette kanhemmedinevnetilåløseproblemerpåegenhånd.Programmering erikkebareenferdighetiåfådatamaskinentilåfungere,menogså enprosessmedålæreproblemløsing,logikkogmodellering.Dersomdu virkeligskallærenoe,erdetviktigatduengasjererdegkognitivtmed detduskallære.Ålærenoeforutsetteratduinvestererbådetidog krefter–ensnarveikanderforhindredennelæringen.
3. Manglendekontrolloveregenkode. NårdubrukerKItilågenerere storedeleravkoden,kandumisteoversiktenoverhvordanforskjellige deleravprogrammethengersammen.Dettekangjøredetvanskeligå
feilsøke,utvideellertilpassekodensenere,spesielthvisnoegårgalteller hvismåletmedkodenendrerseg.
1.6.3
BalansenmellombrukavKIogaktivlæring
DeterviktigåfinneengodbalansemellomåbrukegenerativKIsomet verktøyogsamtidigutvikleegneprogrammeringsferdigheter.KIkanhjelpe degmedåeffektiviserearbeidetogfåraskereresultater,mendumåogså sørgeforatduikkeblirforavhengigavdet.Herernoentipsforåoppnå dennebalansen:
•BrukKItilåløsesmå,konkreteproblemerellerforåfåforslagtilhvordandukanløseetproblem,menprøvderetteråskriveomellertilpasse kodenselv.IkkelaKI-enskriveformyefordegomgangen,menvær aktivogdeltakende.
•BrukKI-verktøyenesomenlæringsressurs.Utfordreførstdegselven godstund,ogsettborttrivielletingtilKI-en.Trivielletingkanvære enkelfeilsøking,visualisering,lesingavdataogandreferdighetersom kanværemindreviktige.Detviktigsteeratdufokusererpåproblemløsning,analyseogforståelseavdetmatematiskeognaturvitenskapelige innholdet.
•TadegtidtilåforståkodensomKIgenererer,ogtestogeksperimenter medkoden.Ikkeladegluretilatduforståraltvedåbareleseigjennom koden.
•InngåidialogmedKI-en.Ikkegapoverformye,menspørhellerom småtingomgangen.Stilloppfølgingsspørsmålnårnoeeruklartellerdu ønskerålæremer.
EneffektivmåtedukanbrukegenerativKIpå,eråfåtilbakemeldingpådet dugjør.Hvisduforeksempelharbegyntpåetprogramogikkekommerdeg videre,kandukopieredetteprogrammetinniengenerativKIogforklarehva duhartenktoghvordandukankommevidere.Dettegjøratdufårindividuelle tilbakemeldingerbasertpådetduhargjort,noesomer mye mereffektivtenn åforeksempelbarefåetløsningsforslag.
VedåkombinerebrukenavKImedaktivlæring,kanduoppnåbådeøkt effektivitetogbyggeoppferdighetersomvilhjelpedegtilåblienbedreproblemløserinaturvitenskapogmatematikk.Idennebokavilvigidegnoen oppgaverderdugjernekanbrukeKItilhint,feilrettingellertilbakemelding. MendeteralltidlurtåprøvesåmyesommuligutenKInårenskallæreseg programmeringforførstegang–medetgodtfagliggrunnlagoggodgrunnforståelseblirdubådeenbedreproblemløserogenbedreprogrammerer,både medogutengenerativKI.