Objektorienterad programmering
Välkommen till Pär Erikssons delar av kursen. Min enkla pedagogiska ide' och erfarenhet är att man lär sig mycket genom att lägga ner tid ca 2-4 timmar varje dag på att läsa i kursboken, titta på inspelningar samt skriva av befintlig kodexempel ur boken, inspelningar etc. Gör små förändringar i och av den för att sen testköra och se vad som händer. Ta paus varje timme. Ha en tänkt app för företag, klubb eller förening som du använder dina nya kunskaper på. Där du tänker, hur kan jag tillämpa det nya jag lärt mig på deras app? Jag kör ofta en tänkt liten bilfirma som jag applicerar nya koncept/kunskaper på och skriver koden för.
Veckoplanering - Vad titta på? Vad läsa? Vad göra?
Att läsa
- Kap 2 Input, Processing, and Output och rubrikerna: Designing a Program, Input, Processing, and Output, Displaying Output with the print statements
- Kap 2 och rubrikerna: Variables, Reading Input from the Keyboard
- Kap 2 och rubrikerna: Performing Calculations, More About Data Output, F-string formating
- Kap 3 Decision Structures and Boolean Logic och rubrikerna: The if Statement, The if-else Statement, Comparing Strings
- Kap 3 och rubrikerna: Nested Decision Structures and the if-elif-else Statement
- Kap 3 och rubrikerna: Logical Operators, Boolean Variables
Att titta på
- Youtube - Börja med att installera Python och PyCharm. - Hur du installerar python och Pycharm. Samt hur du kodar och kör ditt första pythonprogram. Leta reda på Community Edition https://www.jetbrains.com/pycharm/download/other.html för installation. Inte professional
- Youtube - Code with me - Hur koda tillsammans via 'code with me' i Pycharm.
- Fö1 - Intro om datorer and programmering av Hans Jernberg - Intro av Hans Jernberg om datorer and programmering: Hardware and Software, How Computers Store Data, How a Program Works Using Python
- Fö2 - Problemlösning av Ulrika Aurthursson Wissa - Hur lösa programmerings problem?
- Fö3 - print() - Enkelt program med print() funktionen
- Fö4 - input process output - För att lösa programmeringsproblem börja med att tänk i input process output genom att skapa pseudokod, IPO diagram innan du börja skriva kod. Exemplet är beräknning av lön.
- Fö5 - Messageboxar och simpledialogrutor - Gör om exemplet med att beräkna lön med använding av messageboxar och simpledialogrutor
- Fö6 - Fel i pseudokod - Finna fel i pseudokoden. Gör om den så att de blir rätt innan vi sen skriver kod. Typ konvertering med float() från sträng till flyttal för att kunna göra beräkning
- Fö7 - Variabler - Vad är variabler? Hur tilldelar du variabler värden? Olika datatyper för variabler: heltal, flytttal, strängar. Problem med att python är ett löst typat språk
- Fö8 - Inläsning från tangetbordet - Inläsning med input() från tangetbordet, type konvertering från strängar med float(), int()
- Fö9 - Fler beräkningsexempel - Vad är ett uttryck och dess delar? F string formattering med platshållare för variabler och dess formatering tex antal decimaler
- Fö10 - Lånekalkylator - Vad ska du betala per månad för ett lån. Användning av konstanter.
- Fö11 - F string formatering - Mer om F string formatering med platshållare för variabler och dess formatering, tex antal decimaler, vänster- centering eller högerjustering av text, mm
- Fö12 - F string Grocery list exemplet - Grocery list exemplet
- Fö13 - if else satsen - Flödesschema för if else. villkor och jämförelseopertor. Exemplet får du rösta i valet?
- Fö14 - Jämföreleoperatorer - Går igenom olika jämförelseoperator som kan användas i if satser
- Fö15 - Minsta talet av tre - Vilket är det minsta talet av tre
- Fö16 - Nästlade if satser - Vad är nästlade if satser?
- Fö17 - if-elif-else satsen och debuggern - Exemplet jordbävningar och richter skalan. Hur använda intervall i if satsers villkor. Hur används debuggern, break point, stega fram i programmet?
- Fö18 - Jämförelseoperatorn == - Inloggning exemplet där jämförelseoperatorn == används
- Fö19 - or operatorn - Hur används or operatorn, exemplet enkelt larmsystem. Vad är sanningstabeller?
- Fö20 - and operatorn - and operatorn exemplet värmesystem med tröskel värden.
- Fö21 - not operatorn - not operatorn exemplet bevattningssystem
- Fö22 -debuggern - Användning av debuggern i bevattningssystemet.
- Fö23 - match satsen(styrstrukter) - Hur använda match satsen (styrstrukturen). Liknar att använda flera if satser efter varandra för att se om ett värde matchar.
Övningar
- Gör valfri Checkpoints ur kapitlen 2 och 3
- Sist i kapitlen finns blåa/grön sidor, gör Review questions som multiple choice, true false samt short answers
- Sist i kapitlen finns blåa/grön sidor, välj ur Algorithm workbench först nån uppgift som känns lätt, därefter en som är verkar rolig för att sist välja nån som känns utmanande.
- Programmeringsuppgifter för energistudenter. All användarinteraktion ska göras med messageboxes och simpledialog.
- 1. Skriv ett Python-program som kontrollerar om en given temperatur är lämplig för solpanelens effektivitet. Villkoren är följande: Om temperaturen är under 0 grader Celsius, skriv ut 'För kallt för optimal effektivitet.' Om temperaturen är mellan 0 och 25 grader Celsius (inklusive), skriv ut 'Optimal temperatur för solpanelens effektivitet.' Om temperaturen är över 25 grader Celsius, skriv ut 'För varmt för optimal effektivitet.'
- 2. Skriv ett Python-program för att bestämma energieffektiviteten för ett hem baserat på dess isolering. Användaren ska mata in isoleringens R-värde, och programmet ska mata ut motsvarande betyg: Om R-värdet är mindre än 10, skriv ut 'Låg effektivitet.' Om R-värdet är mellan 10 och 20 (inklusive), skriv ut 'Måttlig effektivitet.' Om R-värdet är större än 20, skriv ut 'Hög effektivitet.'
- 3. Skriv ett Python-program för att bestämma typen av förnybar energikälla baserat på användarinput. Be användaren att ange namnet på en förnybar energikälla (sol, vind, vattenkraft) och skriva ut ett lämpligt meddelande: Om energikälla är 'solenergi', skriv ut 'Solenergi kommer från solen.' Om energikälla är 'vind', skriv ut 'Vindenergi genereras av vindens kinetiska energi.' Om energikälla är 'hydro', skriv ut 'Vattenenergi härrör från strömmande vatten.' För alla andra inmatningar, skriv ut 'Ogiltig inmatning'.
- 4. Skriv ett Python-program för att bestämma en byggnads energieffektivitet baserat på dess byggår. Användaren ska ange vilket år byggnaden byggdes, och programmet ska mata ut motsvarande effektivitetsnivå: Om året är före 1980, skriv ut 'Låg effektivitet'. Om året är mellan 1980 och 2000 (inklusive), skriv ut 'Måttlig effektivitet'. Om året är efter 2000, skriv ut 'Hög effektivitet'.
- 5. Skriv ett Python-program för att beräkna den potentiella energin för ett föremål baserat på dess massa och höjd. Användaren ska mata in massan (i kilogram) och höjden (i meter), och programmet ska mata ut den potentiella energin. Använd formeln: potential_energy = massa * g * höjd, där g är accelerationen på grund av tyngdkraften (ungefär 9,8 m/s^2). Om den potentiella energin är mindre än 500 J, skriv ut 'Låg potentiell energi.' Om den potentiella energin är mellan 500 och 1000 J (inklusive), skriv ut 'Måttlig potentiell energi'. Om den potentiella energin är större än 1000 J, skriv ut 'Hög potentiell energi'.
- 6. Skriv ett Python-program för att kontrollera om ett fordon är berättigat till en energieffektiv märkning baserat på dess bränsleeffektivitet. Användaren bör ange fordonets bränsleeffektivitet i kilometer per liter, och programmet bör mata ut kvalificeringen: Om verkningsgraden är mindre än 10 km/l, skriv ut 'Ej berättigad till energieffektiv etikett'. Om verkningsgraden är mellan 10 och 20 km/l (inklusive), skriv ut 'Kvalificerad för en standard energieffektiv etikett'. Om verkningsgraden är högre än 20 km/l, skriv ut 'Kvalificerad för en avancerad energieffektiv etikett'.
Inlämningar
- Labb 1: Sist i kapitlen 2 och 3, focus kap 3, finns blåa/grön sidor, välj ur Programming excercises först två uppgifter som känns lätt, därefter två som är verkar rolig för att sist välja två som känns utmanande. All användarinteraktion ska göras med messageboxes och simpledialog.
Frågor och svar
Formulera ditt svar. Tryck sen på frågan för att se mitt svar. Jämför svaren. Vad för likheter och skillnander ser du? Vad saknas i mitt respektive ditt svar?
- What are the basic steps involved in designing a program?
- What is the purpose of input, processing, and output in a program?
- How do you declare a variable in Python?
- How can you print multiple values in Python with a single print statement?
- how to write a Python program that reads the user's age and prints it.
- How do you perform a basic arithmetic operation like addition in Python?
- How can you format output using f-strings in Python?
- How does the if statement work in Python?
- What is the purpose of the if-else statement?
- What are the logical operators in Python and what do they do?
Att läsa
- Kap 4 och rubrikerna: Introduction to Repetition Structures, The while Loop: A Condition-Controlled Loop, The for Loop: A Count-Controlled Loop
- Kap 4 och rubrikerna: Calculating a Running Total, Input Validation Loops
Att titta på
- Fö1 - While loop håll igång ett program - While loop för att hålla igång ett program tills användaren väljer att avsluta det genom att via en messagebox svar ja eller nej om hen vill att avslutprogrammet eller ej.
- Fö2 - While loop lånekalkylatorn - Gör om tidigare lånekalkylator så att användaren kan hålla på med tills hen väljer att avsluta programmet.
- Fö3 - Spel gissa på ett tal - while loop för att skapa spelet, Jag tänker på ett tal, vilket? Använder Random för att få slumpade tal.
- Fö4 - Enarmad bandit - while loop för att simulera en enkel enarmad bandit.
- Fö5 - Talserier - While loop skapa talserier.
- Fö6 - Summera och beräkna medel - while loop för att summera tal och beräkna medel värde på dem.
- Fö7 - Antal vokaler - while loop för att att räkna antalet vokaler i en mening.
- Fö8 - Validering av indata - while loop för att validera inmatat data tex pris
- Fö9 - Validering med med try except - while loop exemplet de fyra räknesätten där jag validerar med try except för felhantering
- Fö10 - for loop - Användning av for loop och range funktionen för att få en sekvens av tal. Går igenom 'upphöjt i' 2 resp 3.
- Fö11- Konvertera mellan mph och km/h - for loop för att konverter fart mellan mph och km/h
- Fö12 - Räkna vokaler - for loop för att räkna antal vokaler i en mening.
- Fö13 - Muliplikationstabell - for loop för att skapa en multiplikationstabell.
- Fö12 - Nästlade for loopar - Nästlade for loopar för studenters provresultat
Övningar
- Gör valfri Checkpoints ur kapitel 4
- Sist i kapitlet finns blåa/grön sidor, gör Review questions som multiple choice, true false samt short answers
- Sist i kapitlet finns blåa/grön sidor, välj ur Algorithm workbench först nån uppgift som känns lätt, därefter en som är verkar rolig för att sist välja nån som känns utmanande.
- Programmeringsuppgifter för energistudenter All användarinteraktion ska göras med messageboxes och simpledialog.
- 1. Skriv ett Python-program som beräknar den totala energiförbrukningen för ett hushåll under en period av dagar. Användaren ska mata in den dagliga energiförbrukningen och programmet ska fortsätta att begära inmatning tills användaren anger ett negativt värde. Slutligen ska programmet skriva ut den totala energiförbrukningen.
- 2. Skriv ett Python-program för att simulera laddningen av ett elfordon. Användaren bör ange den initiala batterinivån, laddningshastigheten och tiden (i timmar) fordonet kommer att laddas. Använd en while-loop för att uppdatera batterinivån tills den når 100 %. Skriv ut den slutliga batterinivån och den totala laddningstiden.
- 3. Skriv ett Python-program som beräknar effektiviteten hos ett värmesystem. Användaren ska mata in energitillförseln och användbar energiutgång för varje uppvärmningscykel tills de bestämmer sig för att sluta genom att ange ett negativt värde för energitillförseln. Slutligen bör programmet skriva ut den genomsnittliga effektiviteten.
- 4. Skriv ett Python-program för att simulera sönderfallet av ett radioaktivt material. Användaren bör mata in den initiala mängden av materialet och sönderfallskonstanten. Använd en while-loop för att kontinuerligt beräkna den återstående kvantiteten tills den faller under en viss tröskel (t.ex. 1 % av den initiala kvantiteten). Skriv ut den tid det tar för materialet att sönderfalla under tröskeln.
- 5. Skriv ett Python-program för att uppskatta återbetalningstiden för en solpanelsinstallation. Användaren bör ange den initiala kostnaden för installationen, den årliga energibesparingen och kostnaden för el. Använd en while-loop för att beräkna de ackumulerade besparingarna varje år tills den överstiger den ursprungliga kostnaden. Skriv ut återbetalningstiden i år.
Inlämningar
- Labb 2 Loopar: Sist i kapitel 4 finns blåa/grön sidor, välj ur Programming excercises först två uppgifter som känns lätt, därefter två som är verkar rolig för att sist välja två som känns utmanande. All användarinteraktion ska göras med messageboxes och simpledialog.
Frågor och svar
Formulera ditt svar. Tryck sen på frågan för att se mitt svar. Jämför svaren. Vad för likheter och skillnander ser du? Vad saknas i mitt respektive ditt svar?
- N/A
- N/A
Att läsa
- Kap 5 och rubrikerna: Introduction to Functions, Defining and Calling a Void Function ,Designing a Program to Use Functions
- Kap 5 och rubrikerna: Local Variables, Passing Arguments to Functions
- Kap 5 och rubrikerna: Introduction to Value-Returning Functions, Generating Random Numbers Writing Your Own Value-Returning Functions
Att titta på
- Fö1 - Funktioner - Intro till funktioner vi gör om tidigare lånekalkylator till att använda funktioner.
- Fö2 - Processfasens funktion - Vi fortsätter att dela upp vår lånekalkylator i funktioner och vi tittar på funktionen för beräkning av månadsbetalning i processfasen. Visar hur den funktionen tar argument och returnerar ett värde det månadsbelopp som ska betalas.
- Fö3 - Inputfasens funktion - Lånekalkylatorns funktion för att hantera användar input i inputfasen.
- Fö4 - Outputfasens funktion - Lånekalkylatorns funktion för att hantera användar output i outputfasen.
- Fö5 - Flytta ut funktioner i egen modul, egen py fil - Lånekalkylatorns egengjorda funktioner flyttas över till egen py fil som importeras.
- Fö6 - Antal vokaler - Vi har tidigare gjort beräkning av vokaler i en mening, nu gör vi en egen funktion för beräkna antal vokaler i en mening.
- Fö7 - Cirklen area och omkrets - Funktioner för att beräkna area och omkrets för en cirkel.
- Fö8 - Statistikmodul med funktioner - Användning av funktioner från pythons egen statistikmodul.
- Fö9 - Meny - Hur skapar och använder man en meny. Exemplet visar en meny för de fyra räknesätten. Felhantering vid felaktig inmating med try och except.
Övningar
- Gör valfri Checkpoints ur kapitel 5
- Sist i kapitlet finns blåa/grön sidor, gör Review questions som multiple choice, true false samt short answers
- Sist i kapitlet finns blåa/grön sidor, välj ur Algorithm workbench först nån uppgift som känns lätt, därefter en som är verkar rolig för att sist välja nån som känns utmanande.
- Programmeringsuppgifter för energistudenter. All användarinteraktion ska göras med messageboxes och simpledialog.
- 1. Write and test a function, kinetic_energy, that calculates the kinetic energy of an object given its mass (in kilograms) and velocity (in meters per second). The function should have arguments and return a value. The formula for kinetic energy is: KineticEnergy=1/2×mass×velocity^2. Let the user continue using the program until he/she decides to quit it.
- 2. Write and test a function potential_energy that calculates the potential energy of an object given its mass (in kilograms), height (in meters), and gravitational acceleration (in meters per second squared). The function should have arguments and return a value. The formula for potential energy is: PotentialEnergy=mass×gravitationalacceleration×height. Let the user continue using the program until he/she decides to quit it.
- 3. Write and test a function calculate_power that calculates the power given the energy (in Joules) and time (in seconds). The function should have arguments and return a value. The formula for power is: Power= Time/Energy. Let the user continue using the program until he/she decides to quit it.
- 4. Write and test a function calculate_efficiency that calculates the efficiency of a machine given the input energy and output energy. The function should have arguments and return a value. The formula for efficiency is: (output_energy / input_energy) * 100. Let the user continue using the program until he/she decides to quit it.
- 5. Write and test a function heat_energy that calculates the heat energy required to change the temperature of a substance given its mass, specific heat capacity, and temperature change. The function should have arguments and return a value. The formula for heat energy is: mass * specific_heat_capacity * temperature_change. Let the user continue using the program until he/she decides to quit it.
- 6. Now create a menubase app that displays menu options for the user to select the type of calculation above they want to perform or use. Use a loop to handle user input and call the appropriate function based on the user's choice. Display results after performing the calculation, display the result to the user. Include an option to exit the application when user decides to quit it.
- 7. Redo the menubased app so that the functions for the different calculations are removed from the menu app and are in its own modul, its own py file that you import to the menu app. Test that teh app still works.
Inlämningar
- Labb 3 Funktioner: Sist i kapitel 5 finns blåa/grön sidor, välj ur Programming excercises först två uppgifter som känns lätt, därefter två som är verkar rolig för att sist välja två som känns utmanande. All användarinteraktion ska göras med messageboxes och simpledialog.
Frågor och svar
Formulera ditt svar. Tryck sen på frågan för att se mitt svar. Jämför svaren. Vad för likheter och skillnander ser du? Vad saknas i mitt respektive ditt svar?
- N/A
- N/A
Kursnamn: Objektorienterad programmering
Program: Grafisk design och webbutveckling – kandidatprogram
Beskrivning: Kursen behandlar grundläggande termer, begrepp och nyckelord inom objektorienterad mjukvaruutveckling. Därtill gås problemlösningsstrategier samt skapandet och användandet av klass, objekt, operationer, parameter/argument, returvärde igenom. Vidare behandlas variabler, datatyper och i/o samt klasser ur programbibliotek(API). Samt styrning av programflöden med hjälp av sekvens, selektion och iteration samt manipulation av temporära datastrukturer.