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å
Ö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å
Ö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å
Ö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

Ulrika Arthursson Wissa

uaw@du.se

Pär Eriksson

pei@du.se

Variabler och if satser
Se spellista
While och for loopar
Se spellista
Funktioner
Se spellista

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.

Se kursplan