Principer för hållbar design

Principer för hållbar design

Principerna för hållbar design är integrerade i alla stadier i design- och byggprocessen och kan driva innovation, samtidigt som naturresurserna bevaras.

Denna kurs innehåller videoföreläsningar, designutmaningar, programvaruhandledning för Fusion 360 och en rad hållbara designdokument och exempel från ledande experter inom området. Under denna kurs kommer du att använda programvaran Fusion 360 CAD / CAM för att designa, utveckla, prototypa och testa hållbar innovation genom en serie 3-timmars utmaningsuppdrag.

Genom att använda detta strukturerade tillvägagångssätt kan du lära dig att stänga av dina förutfattade meningar och se saker på ett nytt sätt. Oavsett om du vill förbättra en befintlig lösning eller ta itu med en hållbar utmaning för första gången, förbereder denna kurs produktdesigners och ingenjörer att ta ett snabbt steg framåt för att integrera principerna för hållbarhet i deras designprocess.

The Principles of Sustainable Design

The principles of sustainable design are integral to all stages of the design and build process and can drive innovation, while also preserving natural resources.

This course includes video lectures, design challenges, Fusion 360 software tutorials, and a range of sustainable design documents and examples from leading experts in the field. During this course, you’ll use Fusion 360 CAD/CAM software to design, develop, prototype, and test sustainable innovation through a series of 3-hour challenge assignments.

Working through this structured approach, you can learn how to suspend your judgment and look at things in a new way. Whether you are looking to improve an existing solution or address a sustainable challenge for the first time, this course prepares product designers and engineers to take a quick step forward to integrating the principles of sustainability into their design process.

Project resource download

Getting started
In this lesson, we’ll discover what you’ll learn in this course and download the software and resources you need.

Instructor guidePrinciples of Sustainable Design – Instructor guide

Lesson 1: Introduction to sustainable design
This lesson introduces you to case studies of good practice models.

Lesson 2: Extending product lifetimes
This lesson introduces you to good practice models for improving product lifetimes.

Lesson 3: Green materials
This lesson provides you with lectures, videos, case studies, and good practice models for green materials selection.

Lesson 4: Reducing energy loss
This lesson introduces you to case studies and good practice models for energy-efficient design, including fluid dynamics, optimizing heat transfer, and reducing friction.

Lesson 5: Lightweighting
This lesson introduces you to case studies and good practice models for lightweighting in design.

Lesson 6: Persuasive design
This lesson introduces you to case studies and good practice models for persuasive design.

Lesson 7: Biomimicry
This lesson introduces you to case studies and good practice models for biomimicry.

Appendix: Getting started with Fusion 360
This lesson introduces you to case studies and good practice models when using CAD/CAM in the design development process.

The values and principles of the Agile Manifesto

The Four Values of The Agile Manifesto

The Agile Manifesto is comprised of four foundational values and 12 supporting principles which lead the Agile approach to software development. Each Agile methodology applies the four values in different ways, but all of them rely on them to guide the development and delivery of high-quality, working software.

1. Individuals and Interactions Over Processes and Tools
The first value in the Agile Manifesto is “Individuals and interactions over processes and tools.” Valuing people more highly than processes or tools is easy to understand because it is the people who respond to business needs and drive the development process. If the process or the tools drive development, the team is less responsive to change and less likely to meet customer needs. Communication is an example of the difference between valuing individuals versus process. In the case of individuals, communication is fluid and happens when a need arises. In the case of process, communication is scheduled and requires specific content.

2. Working Software Over Comprehensive Documentation
Historically, enormous amounts of time were spent on documenting the product for development and ultimate delivery. Technical specifications, technical requirements, technical prospectus, interface design documents, test plans, documentation plans, and approvals required for each. The list was extensive and was a cause for the long delays in development. Agile does not eliminate documentation, but it streamlines it in a form that gives the developer what is needed to do the work without getting bogged down in minutiae. Agile documents requirements as user stories, which are sufficient for a software developer to begin the task of building a new function.
The Agile Manifesto values documentation, but it values working software more.

3. Customer Collaboration Over Contract Negotiation
Negotiation is the period when the customer and the product manager work out the details of a delivery, with points along the way where the details may be renegotiated. Collaboration is a different creature entirely. With development models such as Waterfall, customers negotiate the requirements for the product, often in great detail, prior to any work starting. This meant the customer was involved in the process of development before development began and after it was completed, but not during the process. The Agile Manifesto describes a customer who is engaged and collaborates throughout the development process, making. This makes it far easier for development to meet their needs of the customer. Agile methods may include the customer at intervals for periodic demos, but a project could just as easily have an end-user as a daily part of the team and attending all meetings, ensuring the product meets the business needs of the customer.

4. Responding to Change Over Following a Plan
Traditional software development regarded change as an expense, so it was to be avoided. The intention was to develop detailed, elaborate plans, with a defined set of features and with everything, generally, having as high a priority as everything else, and with a large number of many dependencies on delivering in a certain order so that the team can work on the next piece of the puzzle.

With Agile, the shortness of an iteration means priorities can be shifted from iteration to iteration and new features can be added into the next iteration. Agile’s view is that changes always improve a project; changes provide additional value.

Perhaps nothing illustrates Agile’s positive approach to change better than the concept of Method Tailoring, defined in An Agile Information Systems Development Method in use as: “A process or capability in which human agents determine a system development approach for a specific project situation through responsive changes in, and dynamic interplays between contexts, intentions, and method fragments.” Agile methodologies allow the Agile team to modify the process and make it fit the team rather than the other way around.

The Twelve Agile Manifesto Principles

The Twelve Principles are the guiding principles for the methodologies that are included under the title “The Agile Movement.” They describe a culture in which change is welcome, and the customer is the focus of the work. They also demonstrate the movement’s intent as described by Alistair Cockburn, one of the signatories to the Agile Manifesto, which is to bring development into alignment with business needs.

The twelve principles of agile development include:

  1. Customer satisfaction through early and continuous software delivery – Customers are happier when they receive working software at regular intervals, rather than waiting extended periods of time between releases.
  2. Accommodate changing requirements throughout the development process – The ability to avoid delays when a requirement or feature request changes.
  3. Frequent delivery of working software – Scrum accommodates this principle since the team operates in software sprints or iterations that ensure regular delivery of working software.
  4. Collaboration between the business stakeholders and developers throughout the project – Better decisions are made when the business and technical team are aligned.
  5. Support, trust, and motivate the people involved – Motivated teams are more likely to deliver their best work than unhappy teams.
  6. Enable face-to-face interactions – Communication is more successful when development teams are co-located.
  7. Working software is the primary measure of progress – Delivering functional software to the customer is the ultimate factor that measures progress.
  8. Agile processes to support a consistent development pace –Teams establish a repeatable and maintainable speed at which they can deliver working software, and they repeat it with each release.
  9. Attention to technical detail and design enhances agility – The right skills and good design ensures the team can maintain the pace, constantly improve the product, and sustain change.
  10. Simplicity – Develop just enough to get the job done for right now.
  11. Self-organizing teams encourage great architectures, requirements, and designs – Skilled and motivated team members who have decision-making power, take ownership, communicate regularly with other team members, and share ideas that deliver quality products.
  12. Regular reflections on how to become more effective – Self-improvement, process improvement, advancing skills, and techniques help team members work more efficiently.

The intention of Agile is to align development with business needs, and the success of Agile is apparent. Agile projects are customer focused and encourage customer guidance and participation. As a result, Agile has grown to be an overarching view of software development throughout the software industry and an industry all by itself.

Kent Beck
Mike Beedle
Arie van Bennekum
Alistair Cockburn
Ward Cunningham
Martin Fowler
James Grenning
Jim Highsmith
Andrew Hunt
Ron Jeffries
Jon Kern
Brian Marick
Robert C. Martin
Steve Mellor
Ken Schwaber
Jeff Sutherland
Dave Thomas

© 2001, the above authors

Agil systemutveckling

Att bedriva utveckling med agila metoder innebär att man arbetar iterativt och inkrementellt med många små och snabba delleveranser i regelbundet korta intervaller.
Arbetssättet är flexibelt och betonar snabb­­het, in­formellt sam­arbete, täta kund­kontakter och möjlig­het att ändra under arbetets gång. (Se agil.) Även krav­specifikationen bör kunna revideras under projektets gång eftersom behov, önskemål och förutsättningar kan förändras över tid.
Det är mer att betrakta som en rörelse, inte en en­­hetlig metod.
Manifestet för agil system­­utveckling (länk) publicerades 2001 av en grupp pro­grammerare som hade reagerat på strävan efter detaljerade kravspecifikationer, omfattande dokumentation och byrå­kratiserande metoder och processer som var resultatet av den traditionella projektmodellen ”vattenfallsmetoden”. De bildade Agile Alliance (länk), och har sedan dess utvecklat verk­tyg och andra hjälp­medel. Scrum och Kanban är två vanliga agila metoder som hjälper projektteam att prioritera, synliggöra arbete och framsteg och minska flaskhalsar i produktionen.
Klicka här för en artikel om Kanban.

Klicka här för en artikel som beskriver grunderna i Scrum.

Klicka här för att läsa ett blogginlägg om vad det innebär att arbeta agilt.

Agila manifestet består av följande fyra grundläggande värden och 12 stödjande principer som leder den agila strategin för mjukvaruutveckling. Varje agil metodik tillämpar de fyra värdena på olika sätt, men alla litar på dem för att vägleda utvecklingen och leveransen av högkvalitativ, fungerande programvara.

Vi finner bättre sätt att utveckla programvara genom att utveckla själva och hjälpa andra att utveckla. Genom detta arbete har vi kommit att värdesätta:

1. Individer och interaktioner framför processer och verktyg.
2. Fungerande programvara framför omfattande dokumentation.
3. Kundsamarbete framför kontraktsförhandling.
4. Anpassning till förändring framför att följa en plan.

Det vill säga, medan det finns värde i punkterna till höger, värdesätter vi punkterna till vänster mer.

Principerna bakom det agila manifestet

Vi följer dessa 12 principer:

  1. Vår högsta prioritet är att tillfredsställa kunden genom tidig och kontinuerlig leverans av värdefull programvara.
  2. Välkomna förändrade krav, även sent under utvecklingen. Agila metoder utnyttjar förändring till kundens konkurrensfördel.
  3. Leverera fungerande programvara ofta, med ett par veckors till ett par månaders mellanrum, ju oftare desto bättre.
  4. Verksamhetskunniga och utvecklare måste arbeta tillsammans dagligen under hela projektet.
  5. Bygg projekt kring motiverade individer. Ge dem den miljö och det stöd de behöver, och lita på att de får jobbet gjort.
  6. Kommunikation ansikte mot ansikte är det bästa och effektivaste sättet att förmedla information, både till och inom utvecklingsteamet.
  7. Fungerande programvara är främsta måttet på framsteg.
  8. Agila metoder verkar för uthållighet. Sponsorer, utvecklare och användare skall kunna hålla jämn utvecklingstakt under obegränsad tid.
  9. Kontinuerlig uppmärksamhet på förstklassig teknik och bra design stärker anpassningsförmågan.
  10. Enkelhet – konsten att maximera mängden arbete som inte görs – är grundläggande.
  11. Bäst arkitektur, krav och design växer fram med självorganiserande team.
  12. Med jämna mellanrum reflekterar teamet över hur det kan bli mer effektivt och justerar sitt beteende därefter.

Läs gärna mer om manifestet med tydliga förklaringar av varje princip i denna artikel på engelska.

Gymnasieämnet Programmering

Ämne – Programmering

Ämnet programmering behandlar hur mjukvaror skapas, anpassas och utvecklas samt programmeringens roll i informationstekniska sammanhang som datorsimulering och praktisk datoriserad problemlösning.

Ämnets syfte

Undervisningen i ämnet programmering ska syfta till att eleverna utvecklar kunskaper om programmeringens grunder, färdigheter i att tillämpa relevanta metoder för programutveckling och förmåga att lösa programmeringstekniska problem. Undervisningen ska även bidra till att eleverna utvecklar förmåga att analysera, designa och vidareutveckla program. Undervisningen ska också bidra till att eleverna utvecklar kunskaper om några vanligt förekommande programspråk samt traditioner och nya trender i utvecklingen av programspråk. Dessutom ska undervisningen leda till att eleverna utvecklar kunskaper om datorns användning i samhället och datorns möjligheter och begränsningar.

I undervisningen ska eleverna ges möjlighet att arbeta i projekt och att enskilt eller i grupp utföra programmeringsuppgifter av varierande komplexitet och inom olika tillämpningsområden.

Undervisningen i ämnet programmering ska ge eleverna förutsättningar att utveckla följande:

  1. Kunskaper om programmerbara system.
  2. Förmåga att formulera och planera programmeringsuppgifter med pseudokod och diagramteknik.
  3. Förståelse av och färdigheter i att använda datavetenskapliga begrepp och principer.
  4. Kunskaper om programspråk och programmeringsparadigm.
  5. Förmåga att skriva, läsa, strukturera, analysera, dokumentera och kommentera programkod.
  6. Färdigheter i att skapa program med ett givet syfte och för en avsedd användare.
  7. Kunskaper om gränssnitt mot filer, filsystem, databashanterare och internet.
  8. Kunskaper om och färdigheter i objektorienterad programmering.
  9. Förmåga att finna, analysera, åtgärda och förhindra syntaxfel, programkörningsfel och programmeringslogiska fel.
  10. Kunskaper om samspelet mellan program, exekveringsmiljö, operativsystem och hårdvara.

Kurser i ämnet

  1. Programmering 1, 100 poäng.
  2. Programmering 2, 100 poäng, som bygger på kursen programmering 1.
  3. Programmering 3, 100 poäng. Kursen får bara anordnas i vidareutbildning i form av ett fjärde tekniskt år i gymnasieskolan.

Programmering 1
Kurskod: PRRPRR01

Kursen programmering 1 omfattar punkterna 1–6 och 9–10 under rubriken Ämnets syfte.

Centralt innehåll

Undervisningen i kursen ska behandla följande centrala innehåll:

  • Grundläggande programmering i ett eller flera programspråk varav minst ett av språken är textbaserat.
  • Programmering och dess olika användningsområden ur ett socialt perspektiv inklusive genus, kultur och socioekonomisk bakgrund.
  • Programmeringens möjligheter och begränsningar utifrån datorns funktionssätt.
  • Strukturerat arbetssätt för problemlösning och programmering.
  • Grundläggande kontrollstrukturer, konstruktioner och datatyper.
  • Arbetsmetoder för förebyggande av programmeringsfel, testning, felsökning och rättning av kod.
  • Grundläggande datastrukturer och algoritmer.
  • Gränssnitt för interaktion mellan program och användare.
  • Normer och värden inom programmering, till exempel läsbarhet, dokumentation, testbarhet, rena gränssnitt och nyttan av standard.

Kunskapskrav och bedömningsmatris