blogs kategori-billede

Hvilken elektronik skal stå på de studerendes cv?

Af Jens Dalsgaard Nielsen,  mandag 15. feb 2010 kl. 11:15

Som man efterhånden kan læse en masse steder er det gal med elektronikken i Danmark.

Arbejdspladser lukker eller emigrerer og det er indenfor et ret bredt spektrum. Det være sig i det hørbare område og såmænd også i GSM, 3G, netværk osv osv - altså både den analoge og digital verden. Det må og skal vi gøre noget ved.

Så det første spørgsmål i min blog er: Hvad skal vi gøre med elektronikken i Danmark?

Jeg arbejder et sted, hvor man også lærer ingeniørstuderende om elektronik. Skal vi fortsat det? (jeg mener selvfølgelig ja) - og hvis vi skal det - hvad skal de så lære? Det er en del områder/emner der bør ses på - eller måske ikke ses på - fremover.

En (meget) ufuldstændig liste kunne være: analog LF elektronik(transistor i 4 "fjedre"), analog HF, power elektronik til små som store effekter, Hele sensor verden: temperatur, tryk, EKG sensor, antenner, digitale kredsløb ( i ttl/cmos ? eller måske i fpga), programmerbar elektronik osv osv.

Hvordan skal vi holde denne mulige lærdom op imod hvad aftagerne vil have (i flæng termostater, radar systemer, styring af huse,...) Skal vi tage en dedikeret approach (som at lave et Institut for fjernvarme systemer) eller skal vi have en mere generisk approach og så se områderne som applikationer. Der er nok ingen tvivl om at skal der nye områder ind skal der også nogle ud. De studerende bliver ikke ligesom tilbudt mere undervisning fremover i forhold til "i går" - for nu at sige det pænt. Så det bliver nok desværre educate smart not hard

Hvad mener Jens så? Jo vi skal blot fremad og er nødt til at pensionere nogle af de ting, vi ellers har lært folk. Måske kan man endda overveje at vende bøtten så at sige og eksempelvis køre ulineær analog elektronik op på næsten specialeniveau, så dem, der vil det faktisk bliver verdensmestre i det. Samtidig skal vi også passe på ikke at blive for applikationsfixerede (Som førnævnte Institut).

(jeg har helt glemt hvad vi skal forske i, men det må blive en anden gang)

Så jeg kunne godt tænke mig at høre hvad I alle mener om dette, og om muligt en argumenteret(!) liste over hvad vi skal putte på de studerendes CV.



15. feb 2010 kl 18:59

Andreas Møgelmose

Software

Software.

Jeg er blot en ydmyg 6. semesters studerende, og så endda fra venskabs-/rival-linien Datateknik (eller hvad det nu hedder nu om dage - jeg holder mig til det gode gamle navn), så jeg er naturligvis farvet i mine meninger og der er utvivlsomt også en bunke elektronik-felter jeg kun kender meget perifært eller slet ikke. Når det så er sagt, så undrer det mig, at der ikke er mere fokus på software end der er.

Jeg husker at vi fik at vide den allerførste dag vi havde for 2½ år siden, at selvom man læste elektronik skulle man ikke regne med at komme til at lodde ret meget, for der var efterhånden mere software end elektronik i elektronik-faget. På baggrund af det og den erfaring jeg trods alt har opsamlet over de sidste par år, synes jeg forholdet mellem Datateknik og Elektronik burde være omvendt: Datateknik eller noget lignende burde være linien med 80% af de studerende og elektronik burde være nichen. Chipdesign etc. synes jeg trygt vi kan overlade til diverse taiwanske eksperter på det område.

Derfor:
- Gem (meget af) den analoge elektronik til specialer hvor det er relevant.
- Undervis i software og software-design (og hvordan kan jeg i øvrigt have læst i nu 2½ år uden at have hørt om fx. Scrum i en eneste forelæsning - endda i den afdeling der har mest med software at gøre)
- Men hold fokus på elektronik-nært software for at opretholde differentieringen fra softwareingeniør. FPGA'er, DSP'er, microcontrollere og hvad-ved-jeg.

Men okay, det siger jeg, der netop er startet på IPS-specialiceringen hvor der kun er software, så tag det med et gran salt :-)

- Andreas Møgelmose

(og hvordan elektronik og datateknik burde positioneres ift. software-ingeniør er så en helt anden diskussion - ingen ved før de starter rigtig hvad forskellen er, men den vil jeg lade være med at tage fat på her)


15. feb 2010 kl 19:51

Per Hygum Due

75% arbejde og 25% efteruddannelse

Uanset hvilke fag man ligger ind i en uddannelse giver det ikke kvalifikationer til et helt arbejdsliv. Hvis man arbejder fra man er 20-25 år til man er 67 år giver det et arbejdsliv på 42-47 år.

Der sker en del indenfor elektronik og software over en 40 års periode. Kigger man jobannoncer over en 40 års periode vil det tydeligt fremgå.

Jeg er B.Sc.E.E fra AUC i 1995 og arbejdet med elektronik fra 1995 til 1996 og siden da softwareudvikling.

Fremtidens måde at uddanne ingeniører på kan se sådan ud:

- 2 års faktabaseret grunduddannelse i f.eks. (svagstrøm, software, svagstrøm/software). Bevisførelse udelades.
- Derefter i job
- Arbejde/uddannelse indenfor arbejdstiden, så ingeniører også har tid til et privatliv og kan holde værdien på jobmarkedet.

Fordelingen imellem arbejde/uddannelse bør ligge på 75/25 for ingeniørstillinger indenfor elektronik og software. Der er en del nyt at følge med i. Ingeniører mister værdien på jobmarkedet hvis ikke der er løbende efteruddannelse.

Hvad skal der så efteruddannes i ? Det som arbejdsgiverne har brug for. Er der mange arbejdsgivere der har brug for SAP softwareudviklere, så efteruddannes der i det. Er der mange arbejdsgivere der har brug viden om en bestemt FPGA chip, så efteruddannes der i det.

Efteruddannelse udbydes med udgangspunkt i et kompetence forecast fra arbejdsgiverne.

Efteruddannelse skal være seriøs, dvs. med individuel eksamen. Kurser uden eksamen har ikke den store værdi for arbejdsgiverne, da de ikke ved om kursisterne har lært noget eller brugt kursusdagene som "lidt ferie fra arbejdsdagen".

Hvad der udbydes som efteruddannelse justeres f.eks. hver 3 måned, så efteruddannelsen tilpasser sig den dynamiske virkelighed.


15. feb 2010 kl 19:57

Jens Madsen

Re: Software

For mange år siden, lavede man radiomodtagere med spoler og kondensatorer.

Idag, tager du en signalprocessor, og sætter antennen på indgangen. Herefter lægges kode i.

Ovenstående, er måske lidt overdrevet - men ikke meget. Meget LF stof, går over i signal processorer, eller lægge i microcontrolere. MF stof, går samme vej. HF støj, digitaliseres meget hurtigt, så HF elektronikken reduceres. I mange tilfælde, bruges nye metoder i forhold til på krystalradioens tid, fordi det hele lægges på chips, og antallet af transistorer intet betyder. At således få adskillige "LF" signaler ind, og behandle dem, med advancerede signalprocessorer, betyder næsten intet.

Indenfor power elektronikken, har man for længst erstattet styreelektronikken med en PIC microcontroler. Mulighed for at lægge andet ind, end kun styringen af duty cycle, gør at de egner sig godt til strømforsyninger. Lavere standby-strøm, og advancerede power-up algorithmer, er blandt hvad PIC programmerne kan tilbyde. Selvom de har en begrænset drivkapacitet på deres udgange - kun 20mA, ses ofte at nogle ben kobles sammen, og at de fint kan drive enten en BJT transistor ved at forspænde basis-emitter dioden i spæreretningen, eller ved at direkte styre en MOS. Specielle SMPS chips, er ved at uddø, fordi PIC kredse har lavere standby, bedre og programmerbare algorithmer, kan indeholde andet end kun dutycycle og spændingsregulering, har væld af programmerbare analoge A/D konvertere og komperatorer indbygget osv.

Tendensen er tydeligt: Læg koden i en microcontroler, og ved højere frekvenser programmer en FPGA.

Analog elektronik er en saga blot...


Alligevel, mener jeg det er en meget farlig udvikling, og jeg synes ikke at vi skal satse så ensidigt, selvom udviklingstendenserne lægger op til det. I mange tilfælde, har softwarefolk mistet "jordforbindelsen", og det skal vi gøre noget ved. Kun, hvis de har en hardware uddannelse, er de i stand til, at lave mange programmeringsopgaver i høj kvalitet.

Jeg synes, at vi skal lægge højere vægt på kvalitet og sikkerhed. I langt de fleste tilfælde, underviser man eleverne, så de "bare" skal få noget til at fungere. Men, hvor store er komponent tolerancerne? Hvad sker, hvis en komponent fejler? Er systemet redundant osv? Hvorfor holder nogle konstruktioner godt, meddens andre går hurtigt i stykker? Kan det være korrekt, at komponenterne holder evigt når de ligger i en aflåst metalboks - men går i stykker indenfor nogle år, når de placeres i konstruktionen? Hvad er årsagen, og hvordan løses det? Hvis vi plugger en plyk igennem elektronikken - fungerer den så stadigt sikkert? Vi skal vide noget som sikkerhed, og fejlmekanismerne. Hvorfor hænger et relæ? Er et relæ sikkert at anvende? Hvordan beskyttes elektronik?

Indenfor software, skal det også gøres mere ud af sikkerheden. Idag, er software karakteriseret ved éen ting - og den er næsten uundgåelig: Software fejler. Hvad skal til, for at lave software der svarer enten før, eller til tiden, og ikke for sent. Hvordan bevises det? Hvordan laver vi software, der svarer eksakt til tiden. Sådanne problemstillinger er meget vigtigt indenfor styring og regulation, da tidsparametre kan have betydning indenfor løsningen af mange styre og regulations opgaver. De kan også have betydning indenfor mange andre typer opgaver, fordi at der måske sker et uheld, hvis der ikke kommer et signal i tide, eller på eksakt rette tidspunkt. Softwarefolkene skal kunne løse sådanne problemer - ikke kun så det "statistisk set", nok går godt. Men så det går godt, og går godt hver gang. De skal også have kendskab til redundans, og automatisk fejlkorrigering, så de kan lave sikre systemer, der fungerer uanset ledninger, netkabler osv. klippes over. Og ikke mindst - så skal de vide, hvordan man laver systemer, så problemer løses hvis der opstår hardwarefejl. Det kan være et register der muterer, eller en indstruktionspointer der hopper til forkert addresse.

Softwarefolk tænker meget sjældent på sådanne forhold, fordi de ikke har kendskab til hardware. De mangler forståelsen for, hvad der skal til, for at sikre et produkt ikke fejler, og ikke kan fejle. Der er ikke taget højde for, at der går noget galt, og at en bit står forkert. Eller, måske at indstruktionspointeren, pludseligt kører progammet, der er på en helt forkert addresse.

Ingeniørerne skal lære at tænke på, hvor fejl kan opstå, og hvad der skal ske når de opstår. De skal lære, at kunne opskrive algorithmer og metoder, og placerer computerne på en måde, således der automatisk tages hånd om fejlhåndteringer, og at de kun går til mennesker, når nødvendigt - så man ikke bliver overbebyrdet, af alle mulige fejl, som ikke kan løses automatisk, og ikke er vigtige i en snæver situtation. Til gengæld, skal man også sikre sig, at den automatiske fejlretning og løsning, går efter bogen, og sikre sig at en sådan bog findes. Og det er altid nødvendigt, at "logge" den, så man ikke har elektronik og software, der står og retter fejl hele tiden, fordi at fejl er gjort til en integreret del af dets desgin... Det er naturligvis ikke lovligt.

At kunne lave software, der svarer til tiden, er vigtigt, for eksempel indenfor microcontrolere. Her kan være vigtigt, at både kunne udvikle interrupt styret software, der har garanteret svartid, og software, der svarer eksakt til tiden. I nogle tilfælde, kan dette medføre at der tælles cycles, og tages hensyn til processorens hardware, timere ol. Det kan også kræve, at man har en teoretisk baggrund, så man kan prioritere interrupts, og finde ud af hvordan en løsning skal løses. Det er vigtigt, at kunne håndtere problemer, hvis en microcontroler pludseligt hænger, eller hopper til en forkert addresse, hvis ram eller registre muterer osv. Og, for enhver skyld, kunne lave hardware og software, så det med at første løsningsmetode er at genstarte, ikke er brugbart.

Også ved protokoller, ses at sikkerhed måske mangler - man har ikke tænkt sig grundigt om, og det kan betyde at opstartsrækkefølgen måske betyder noget. Igen, er det et eksempel på, at softwarefolk skal lære at tænke i sikkerhed.

Mange softwarefolk, starter med at beslutte hvilket programmeringssprog der skal anvendes. I mange tilfælde, besluttes det udfra religiøse årsager, der reelt mere beskriver, hvad de er gode til, end hvad der faktisk er egnet for opgaven. I stedet for, at bare kunne remse et sprogs fordele op, er meget vigtigt, at også have begreb om dets ulemper - da disse måske er dem, der reelt gør at sproget IKKE bør bruges. Ulemperne, er altså oftest mere vigtige end fordelene.
Programmører, bør måske ligefrem eksamineres i deres yndlingsprogrammringssprogs ulemper, så de ved hvad der er fordele og ulemper, og specielt kender sprogenes og hardwarens ulemper, så de kan vælge den rette måde at løse en opgave. Måske er det ikke den velkendte PC med Linux platform, der er den rette.

Jeg synes, at vi har brug for softwarefolk, der er mere tæt på jorden, end de klasiske PC softwarefolk. Det betyder ikke, at man kan have nogle "upålidelige" kodere, til at skrive nogle PC-programmer, eller java koder, der giver mulighed for at en PC kan bruges til at logge på et indstrument. Men, hvis man gør det, skal sikkerheden overvejes. Det skal overvejes, om man - hvis PC'en ikke virker - så har mulighed for at logge på med en anden PC. Og om at programmet virker, med et andet operativsystem, således at man også har denne mulighed, hvis man ikke kan få adgang. Og endeligt, om det er sikkert nok, at man ikke kan være 100% sikker. PC'er, behøver ikke altid at være udelukket. Visse steder kan de bruges. Men ofte, kun steder, hvor man har en reserve PC, måske med et andet operativsystem, til at stå parat til at løse situationen, i en snæver vending. Og så skal det naturligvis kunne accepteres, den tid, at det tager. Måske sammenholdt med, hvor stor sandsynligheden er, for at problemet opstår.

Det som jeg synes, er at vi skal uddanne danske ingeniører, til at tænke i sikkerhed. Man skal kunne bevise at sin software svarer til tiden, og man skal kunne dokumentere, at man har tænkt på fejlsituationerne. Ikke kun i softwaren, men også hvis computeren fejler, operativsystemet fejler, netværket fejler, og andet opstår, som der ikke er udenfor sit program.

I forbindelse med svartider, er det meget vigtigt at have begreb om algorithmer og deres kompleksitet. Om ram forbrug, og at kunne bevise der ikke er memory leaks. At kunne sikre, der ikke swappes ud på en harddisk, og ellers bevise - trods det - at svartiden er med garanti indenfor de fastsatte grænser. Worst case, er worst case, og ikke "average" worst case, eller andre selvopfundne begreber.

Indenfor softwareområdet, er teknisk dokumentation, såsom at dokumentere hvor lang tid at en operation tager, meget sjældent gjort. Ofte bruges applikationer og software fra 3. part, der ikke leverer sådanne data. Det er vigtigt, at softwarefolk forstår, at de så ikke kan bruge sådanne applikationer, med mindre de selv står inde for deres svartid, og det er jo teknisk set umuligt, da at producenten ikke står inde for det. Det, som kan måles er "average" worst case svartider, og de har intet med worst case at gøre. Tingene, skal være designet til at fungere - ikke "gættes" at fungere. Dette kan i nogle tilfælde, også medføre der skal anvendes sprog, og automatiske metoder, til at kunne lave den type dokumentationer.

Når vi så har fået indøvet evnen, til at kunne lave kvalitet, så kan vi begynde at se på "detaljer" som programmering af FPGA'er, microcontrolere osv. Jeg synes, at det er en god idé, at have nogle øvelser med microcontrolere, og programmering - specielt i maskinkode - fordi man så får lidt jordnær forståelse for, hvad der foregår internt i en computer.

Elektronik, komponenter, og hvad der "slider" på komponenter, synes jeg også er vigtigt at have kendskab til, for at kunne udvikle elektronik af høj sikkerhed. Men der er ingen tvivl om, at mange typer opgaver flyttes til digital elektronik, og programmering, og at det er vigtige områder at beherske. Skal man udvikle elektronik, er det dog meget vigtigt, at også have komponentforståelse.

Jeg ved ikke rigtigt, hvad jeg skal mene om den traditionelle undervisning i software og software design. I elektronikmæssigt sammenhæng, synes jeg stadigt, at softwarefolk ofte mangler sans for, at når de laver noget, skal det bygges på komponenter der fungerer - og som ikke bare "statistisk" set fungerer godt. De mangler ofte dokumentationer for resourceforbrug, ram forbrug, beviser for at der ikke er memory leaks, og beviser for, hvor stor svartid som er. Dette er nødvendigt, i næsten alle hardwarenære sammenhæng - og også i mange andre - da traditionen tro, så vil et program der ikke kan bevises svarer indenfor rimelig tid, hellerikke komme med et svar, uanset funktionen er bevisbar. Vi ser ofte, at der er tidsmæssige problemer på PC'er, såsom musen rykker, software staller og trækker andet med osv. Og der kan være ting der er designet forkert, og medfører andre tråde staller. Alle disse problemer, må ikke forekomme. Det er nødvendigt, at softwarefolk, lærer at være mere kritiske, og ikke accepterer alt som "godt", uanset det tydeligvis fejler, og er ubrugeligt.

Hvad nytter det, at softwarefolk lærer - og består alt om design - når de ikke er kritiske nok, til er erkende en "halv" gif, som en fejl? Eller en svartid på over 20 sekunder, hvor tråden ikke måtte være blokeret, og skulle svare til tiden? Softwarefolk, skal have optrænet deres kritiske sans. Det tror jeg, er mere vigtigt, end alverdens software design fag. Når de så har optrænet kritisk sans, kan de måske også bedre bruge de metoder de lærer. Eller, kritisere dem, hvis de ikke er brugbare.

Metoden, at få ting til at fungere på, er at bygge det på noget som fungerer. Kan dette ikke garanteres, så stopper man, og starter forfra. Ikke noget med, at bare "erkende" at vi jo ikke kan finde alle fejl. Så er det forfra og forfra og om igen. Indtil, at man har en sokkel, som kan holde. Det er lykkedes indnenfor alle andre ingeniørvidenskaber end software. Fordi, at man har vidst, at soklen skal kunne holde. Man farer ikke bare derudaf, før at problemerne er løste. I startet, bygges systematisk op, og i nogle tilfælde, tager det mange år, fordi at man netop skal have noget der dur.

Så kan vi så have noget upålidelig smart-software, der bruges i PC sammenhæng, og hvor pålidelighed ikke betyder en dyt. Men, egentligt, er denne software stort set urelevant, for ingeniøren. Ingeniører, har brug for ting der dur - uanset, vi så skal nøjes med grøn skærm, og en grænseflade fra 70'erne.


15. feb 2010 kl 20:58

Jens Dalsgaard Nielsen

elektronikken længe leve ?

Jeg er langt hen ad vejen enig :-) Ting i elektronikken foregår "inside a chip" - om det er en fpga, avr, pic, arm7. Og som gammel kerne hacker helt enig med at der er andet end W7 og linux her i verden.

Men en chip uden forbindelse til omverden er helt på sin egen slagmark. Der er potemtialfri kontakter 4-20mA loops, I2C, diverse fieldbusses. Alt ialt tilpasning af den ydre verden til "computeren" og styring af omverden fra selvsamme.

Er det der vi står idag ? og det man skal lære ?

Hvad med kredsløbsdesign (vi har pt 7. semester studerende der laver op til 6 lags print - godt gået synes jeg). Hvordan skal de lære det ?

@Jens Madsen - enig i en del ting, men vi prioriterer nu højere kvalietet end "bare at det funker", og giver altså ikke mange points for at sige det pænt. Eksamen skal ikke teste ikke det foran øjnene, men det mellem ørene.


15. feb 2010 kl 21:31

Jens Madsen

Re: elektronikken længe leve ?

@Jens Madsen - enig i en del ting, men vi prioriterer nu højere kvalietet end "bare at det funker", og giver altså ikke mange points for at sige det pænt. Eksamen skal ikke teste ikke det foran øjnene, men det mellem ørene.
Specielt indenfor software, føler jeg at kvalitet er et problem - det er egentligt det, jeg synes man skal gøre lidt ved. Selvom de studerende tjekkes for, at de har "noget mellem ørene", så giver det måske også gevindst, at optræne dem i at kunne se problemet udfra et kritisk synspunkt, i stedet for at være 100% godtroende.

Jeg kan huske i sin tid, at vi fik nogle opgaver, hvor at MTBF skulle udregnes, og opgaven lagde helt op til, at det blev gjort udfra formlerne omkring metastabilitet. Dette gjorde, at vi fik en fejlrate på éen ud af en milion år. Enhver, kan nok gætte sig til, at der måske har været større problemer. Her synes jeg, at det er vigtigt, at man ikke "bare" tror på et sådant tal, uanset det er udregnet med bogens formler. Men, hvad er så årsagen til, at det fejler? Det synes jeg, at man også godt må kunne komme med bud på, og at lære noget om. Visse ting, er måske oplagt - såsom at kloden er gået under. Men, der kan naturligvis også være elektroniske aspekter, der gør at elektronikken fejler før. Ihvertfald, må man ikke som hverken ingeniør, eller studerende, tage et sådant million årstal som gode vare, da det er oplagt forkert, uanset den gode bogs formler, og mange eksempler.


15. feb 2010 kl 21:48

Lars Juul

Re: elektronikken længe leve ?

Et eksempel fra hverdagen:

I handelsflåden bruger man dampgeneratorer på flere hundrede kW. En bekendt var påmønstret mens processorkortet for en sådan gik i udu. Resultatet var at varmelegemet ikke slukkede, da vandtilførslen stoppede, og damptrykket fik kedlen til at eksplodere, hvilket kunne have kostet liv og førlighed, hvis der var mennesker i nærheden.

En softwareløsning er per definition sårbar, hvis der ikke skal mere end et blip fra det ydre rum, en EM-puls fra en kraftig elmotor eller et dyk i forsyningsspændingen til at få en processor til at tro den er Napoleon Bonaparte.

Det ovenstående problem kunne naturligvis løses med lidt simpelt relælogik der sikrer mod "tørkogning", og blev det også efterfølgende.

Med andre ord, studendikose indfald som at sløjfe undervisning i lineære kredsløb, fordi "det kan man løse i software" er da den sikre vej mod suboptimale løsninger.

IMO, så kan folk med begreb på lineære kredsløb og forstærkere som oftest også beherske FPGA programmering, plus, de kan fortælle dog hvorfor der kan måles spikes på din 2.5Gb/s FPGA output buffer, når den er i høj tilstand, men ikke når den er lav. Plus, hvad man skal gøre for at få dem væk.


15. feb 2010 kl 22:08

Lasse Hasling Pedersen

Re: elektronikken længe leve ?

Jeg tror at "elektronik-verden" er bedst tjent med lige dele tænkere/teoretikere og lige dele praktikere, man kan ikke KUN klare sig med "den ene slags" alene, ude i erhvervslivet, hvad enten det er i DK eller Østen.

I en verden som i dag, gælder det om at få opgraderet folk hvad enten om de er praktikere, teoretikere eller bare vil køre deres egen vej, ja så skal der også være tilbud til dem.

Hvis jeg skal komme med et bud på hvad der bl.a. skal gøres for at fremme elektronikken i DK og at nyuddannede har et C.V. der er up-to-date.

* Så skal der bl.a. som nævnt ovenfor, implementeres mere praktik i undervisningen, da dette, efter min mening giver det største afkast på lang sigt. Det kan så være en kombination af SW og HW så man får det hele med og ikke kun lærer den ene side af sagen. Om emnerne så er PIC eller FPGA, C# eller Assemblerkode, ja det skal vel være op til hvad den studerende interesserer sig for... jeg tror at alle emnerne er lige efterspurgte;

* Der skal undervises i emner, som er efterspurgt af erhvervslivet;

* Etableres projektsamarbejder mellem de forskellige uddannelses institutioner - store som små uddannelser;

* Sikres samarbejde med eksterne vejledere fra erhvervslivet ved afslutningsprojekter;

* Og til sidst skal undervisnings institutionerne holdes i ørerne så det er muligt at se, at elever får, hvad de bliver lovet og ikke bliver spist af med det uddannelsesstedet lige havde kapacitet til at udbyde.
De forskellige organisationer, såsom IDA, Teknisk Landsforbund osv, kunne jo bl.a. via deres medlemmer, muligvis gå ind og kontrollere uddannelserne i ny og næ. Så ville man stå bedre hvis noget skulle ændres og forbedres...

Ja, så tror jeg at man ville være på vej i den rigtige retning.


15. feb 2010 kl 22:09

Jens Madsen

Re: Re: elektronikken længe leve ?

Med andre ord, studendikose indfald som at sløjfe undervisning i lineære kredsløb, fordi "det kan man løse i software" er da den sikre vej mod suboptimale løsninger.

IMO, så kan folk med begreb på lineære kredsløb og forstærkere som oftest også beherske FPGA programmering, plus, de kan fortælle dog hvorfor der kan måles spikes på din 2.5Gb/s FPGA output buffer, når den er i høj tilstand, men ikke når den er lav. Plus, hvad man skal gøre for at få dem væk.
Jeg er helt enig. Og i mange tilfælde, vil jeg foretrække hardwarefolk til at programmere, fordi de trods alt ikke så nemt falder i den med, at alt bare kan lægges i software.

Det betyder dog ikke, at jeg mener man skal betragte hardware som sikkert, og software som usikkert. Et relæ, kan også fejle. Løsningen er, at man overvejer, hvad der går galt - når det går galt - og hvad som skal ske.

En af de ting, som jeg gerne vil have at softwarefolk lærer lidt om, er "ok signaler". At man lærer, at skrive software, der kan stå inde for svarets korrekthed, og giver ok signaler ud, der indikerer at softwaren fungerer som den skal. Det giver nemligt hardwaren mulighed for at reagere, når softwaren ikke dur - fordi at udgangen ikke "blinker" eller skifter. I så fald, skal man have en plan for, hvad der skal ske. I nogle tilfælde, måske at springe en sikring. Eller, at trække et relæ, eller noget andet hardware. Det kan også være en genstart, og hvis at elektronikken stadigt ikke svarer ok, så der opstår et længere ophold, så medføre noget mere drastisk, såsom et relæ trækkes, eller en sikring springer.

Skal softwaren sende ok signaler ud, er dog vigtigt, at det gøres til tiden. Og at, der reelt er garanteret at tingene fungerer, når ok signalet kommer.

For mange programmører, betyder pålidelighed og sikkerhed ikke stort. De laver måske brugerapplikationer på en PC, hvor computeren bare genstartes. Fungerer det ikke, så accepteres, der bruges et par dage, på at reetablere computerens data, og eventuelt købe nyt software.

Men for ingeniører, betyder pålidelighed noget.
Det er vigtigt, for en ingeniør, at kunne stå inde for kvalitet, og det skal vi arbejde på, at vi kan. Måske fejler den enkelte ingeniør - ingen mennesker er perfekte - men vi skal have metoder, således at det enkelte menneskes fejl, intet betyder, og opdages.


15. feb 2010 kl 22:27

Jens Madsen

Re: Re: Re: elektronikken længe leve ?

* Der skal undervises i emner, som er efterspurgt af erhvervslivet;
Her er jeg ikke helt enig. Jeg synes gerne, at undervisningen må gå foran erhvervslivet, og undervise i det, som erhvervslivet efterspørger i fremtiden. Erhvervslivet, skal ikke styre undervisningens behov - men undervisningen og forskningen, styre erhvervslivets behov.

Ser du på de kvaliteter, som erhvervslivet lægger vægt på, så er de typisk i retning af, at du skal beherske office, at du skal kende bestemte værktøjer, og at du skal have kendskab til bestemte store virksomheders softwarepakker og metoder. I mange tilfælde, områder der er direkte belastende i undervisningsmæssig sammenhæng, fordi at undervise i det, vil være et undervise i noget forkert. Skulle man undervise i erhvervslivets "produkter", vil man oftest være tvunget til, at undervise i hvor forkert det er designet.

I de tilfælde, at man underviser i enten erhvervslivets ting, eller programmeringssprog, så synes jeg netop, at sprogets fejl, ulemper, og manglende kunnen, er det væsentlige at kunne.


15. feb 2010 kl 23:05

Lasse Hasling Pedersen

Re: Re: Re: Re: elektronikken længe leve ?

@Jens Madsen

Helt enig mht. at det er undervisningen og forskningen der skal styre erhvervslivets behov... Set fra ingeniøruddannelsens side.

Men hvad med teknolog og tekniker uddannelserne?

Som disse uddannelser er skruet sammen lige nu er det nok ikke der at man skal satse på at få de vildeste forskningsresultater, til gengæld skal man nok heller ikke undervurdere de praktisk mindede uddannelser, eller i hvertfald de elever der går der. Husk på at de IKKE har de samme muligheder som på ingeniør uddannelserne mht. forskning og projektarbejde, på trods af at eleverne nok rigtig gerne ville... de praktisk mindede uddannelser er simpelthen nedprioriterede som det ser ud lige nu.

Jeg tror helt sikkert at disse uddannelser kunne give nogle gode afkast både forskningsmæssigt og inden for ny udvikling til erhvervslivet, hvis bare de fik lov...


16. feb 2010 kl 08:55

Jens Dalsgaard Nielsen

hvad må vi ?

Jeg tror at man de fleste steder egentlig har ret brede rammer for hvad man må. Selvfølgelig skal studienævn og kolleger være med på "legen" ved studierevision. Jeg er desværre ikke helt inde i hvordan der er på teknikerudd, men der er der måske fag konsulenter mm der skal ind over.

MEN

det er irrelevant lige nu. Ideerne og forandringerne skal formuleres og fremføres i kaffestuen før det næste slag evt skal slås.

Så sagt på en pæn måde - lad os nu ikke gå i tudefjæs mode inden vi overhovedet er kommet igang. Og lad os ikke klare alle uddannelsers problemer på een gang - vil vi det hele på een gang når vi intet :-|



16. feb 2010 kl 09:44

Jan Haugsted

Re: Re: Software

"For mange år siden, lavede man radiomodtagere med spoler og kondensatorer."

Hold da op, hvilken ensidighed, Jens Madsen!

Jeg har lavet radiomodtagere hele mit liv på den måde og gør det stadig med stor succes, og jeg kan forsikre dig for, at intet software kunne have erstattet det!
(men jeg bruger også software til at styre alle spolerne)



16. feb 2010 kl 11:29

Thomas Sørensen

Re: Re: Re: Re: elektronikken længe leve ?

* Der skal undervises i emner, som er efterspurgt af erhvervslivet;
Her er jeg ikke helt enig. Jeg synes gerne, at undervisningen må gå foran erhvervslivet, og undervise i det, som erhvervslivet efterspørger i fremtiden. quote]

Det kan godt være, at jeg er naiv, men hvordan skal de tekniske universiteter, som udelukkende/fortrinsvist beskæftiger teknikere, overhovedet kunne forudsige erhvervslivets fremtidige behov, når virksomhederne dårligt selv kan sige hvad behovert er. Det er trods alt virksomhedernes kunder, som skaber behovet og dermed efterspørgslen. Den nærmeste - selv om dette som sagt ofte er utopisk -til at kende dette behov er givet virksomhederne, men ikke de tekniske universiteter


16. feb 2010 kl 14:54

Jens Madsen

Re: Re: Re: Re: Re: elektronikken længe leve ?

"For mange år siden, lavede man radiomodtagere med spoler og kondensatorer."

Hold da op, hvilken ensidighed, Jens Madsen!

Jeg har lavet radiomodtagere hele mit liv på den måde og gør det stadig med stor succes, og jeg kan forsikre dig for, at intet software kunne have erstattet det!
(men jeg bruger også software til at styre alle spolerne)
Det er korrekt, at vi for HF delene, ikke helt undgår spoler. Men HF delen bliver mindre, signalet blandes ned til en lavere frekvens, og MF samt LF signalerne håndteres digitalt. Hvis der endeligt forekommer spoler og kondensatorer, så justeres de af en microcontroler, så kondensatorens værdi indstilles til modtagefrekvensen optimalt. Antallet af komponenter udover en chip, er derfor minimalt, og samtidigt er kvaliteten høj. Selv PLL'en, kan lægges i chippen, og styres med RC forsinkelser, og et eksternt krystal, hvis man har tilstrækkeligt styr på sine ting.

Ved lavere frekvenser såsom langbølgesendere, mener jeg at nogen har gjort trikket, med at sætte antennen på indgangen til en A/D konverter, og så lave noget software der kunne extrahere signalerne.

Sendere laves også på den måde. Sæt en ledning, på den røde ledning til monitoren, og hent et program på nettet. Voila, du har en lille DVB sender til målebrug.


16. feb 2010 kl 18:51

Casper Lyhne

Fejl detektering

Jeg er i øjeblikket 2 semesters studerende på min kandidat på AAU inde for kontrol. Min Bachelor baggrund er den de dengang kaldte datateknik (netværk, hardware nær software og lidt elektronik). Datateknik og elektronik har (stort set) de samme muligheder mht. kandidaten, og jeg studerer derfor faktisk hovedsageligt med elektro folk.

Vi har i øjeblikket netop et kursus i automatisk fejl detektering. Så jeg synes måske ikke at den del af kritikken er helt på sin plads. I hvert fald ikke i forhold til AAU. Derudover vil jeg gerne rose AAU for at lære de studerende C som noget af det første i stedet for hvad man gør nogle steder: Java.

En ting jeg til gengæld har savnet gennem min studietid er et programmeringskurus hvor der vægt på design patterns. Altså hvordan designer vi den og den type system. Realtids systemer osv osv. Der er jo folk der har gjort sig en masse bitre erfaringer og kommet frem til nogle gode løsninger før i tiden. Det ville virkelig højne sikkerheden for de systemer der skal være sikre, og andre parametre for andre systemer som er optimeret til dem.

Derudover synes jeg at det er beklageligt at vi ikke lærer et sprog som C++. Jeg er glad for sproget til rigtig mange ting. Det er ekstremt kraftfuldt til PC hvor der findes nogle herlige libraries til det (boost, std lib), som gør at man virkelig kan realisere nogle designs der er noget ved. Det piner mig at høre at en elektronik mand har siddet og implementeret en linked list selv i C. Derudover er det faktisk også ganske udmærket til embedded programmering hvis man da lige holder sig fra de allermest vilde funktionaliteter og generelt lige undersøger hvad de funktionaliteter kræver.

Jeg holder altså på at meget af den crappy programmering vi ser sker pga dårlig C kode. F.eks. bare manglen på exceptions gør fejl detektering noget sværere. (jeg ved godt at exception handling er tungt)

Nu vil nogen sikkert sige: "brug Java, C++ er noget rod!" Ja, Java har sin beretigelse, og ja C++ kan være noget rod, hvis man gør det til noget rod. Men Java duer ikke inde for hård realtidssystemer. Og hvis man alligevel er inde i at tænke i pointers fra C så kan man da lige så godt lære C++.

Jeg er ikke religiøs mht. programmeringssprog, men C++ spænder bredt og er ret effektivt for det meste. Et godt ingeniør sprog. Python er fedt til småting og prototyping f.eks. Java er godt til multiplatform ting osv osv.


16. feb 2010 kl 19:28

Jens Madsen

Re: Fejl detektering

Da jeg gik på DTU, var der kursus i fejlrettende koder. Men derfra, er langt til at lave robust elektronik, og at overveje de typer fejl der kan ske, som en del af sit design. Specielt, mener jeg ikke, at et eneste kursus på DTU omhandlede hvordan man skulle lave test for om elektronikken og softwaren fungerede som den skulle, og anvende dette, til at signalere til hardwaren, at alt var ok. Når omverdenen ved, at elektronikken fejler, så har den mulighed for at tage action på det, og kan enten automatisk genstarte (f.eks. med watch-dog), eller hvis signalet stadigt ikke skifter, så have hardware, der slukker ned på acceptabel måde, eller springer de nødvendige sikringer. Det kan være vigtigt, at have uafhængige programmører til at lave verifikationen og programmet, således at man også får sikkerhed for, at der ikke er softwarefejl. Er der en softwarefejl, springer sikringen - og så skal der nok ske noget.

Problemer, som "slid" af komponenter, blev kun omtalt ganske lidt - blandt andet, at strømme i lytte kunne medføre elektrolytten fordampede. Ellers husker jeg ikke meget. EMP, og det der var værre - blev hellerikke omtalt.

Den største katastrofe, synes jeg dog, var eksempelvis MTBF beregninger, hvor at de studerende næsten kunne få det indtryk, at "nu kunne de lave hospitalselektronik", og tilmed bevise, at det kun lavede fejl en gang, ude af en million år. Så er der noget der er gået helt galt.

Ser vi på den elektronik vi omgives af, uanset om det er windows eller linux baserede systemer, så er der også gjort meget lidt ud af at lave pålidelige systemer. Senest har man lige udskiftet styringen af elsektoren til Windows. Må man det? Vi kan tage eksemplet med routere og netværk. Mange CISCO routere, skal "genstartes" hvis der er sket en fejl. Dette viser, at de ikke har indbygget nogen tjek, der undersøger om alt fungerer, og eventuelt automatisk søger at rette fejlen, herunder ved en indbygget genstart, når det går galt. Det skæge er, at hardwaren har oftest indbygget disse features, men softwarefolk forstår ikke at bruge dem. Og så er der jo igen, gået noget helt galt, i deres uddannelse. En CISCO router, skal naturligvis fungere, og det er helt uacceptabelt, at man med jævne mellemrum skal genstarte, uanset om det skyldes støj, eller er andre gode forståelige forklaringer. Hvis, at programmet på en måde løber løbsk, skal det også tages højde for det.

Dertil kommer protokollerne. Ofte, skal ting opstartes i bestemt rækkefølge. For ellers kan det jo ikke finde dit og dat. Noget siger mig, at man bliver nød til at eksaminere eleverne i logik, for at undgå den type fejl.

Det er simpelthen galt overalt. Så uanset, de måske underviser i det på AUC, så mangler det at være rutine i at overveje fejl, og tage højde for dem i sit design, i det meste af verden. En af de gængse er, at man hiver et kabel ud, og sætter det i igen. Virker det nu?


16. feb 2010 kl 19:45

Jens Madsen

Re: Re: Fejl detektering

Jeg er ikke religiøs mht. programmeringssprog, men C++ spænder bredt og er ret effektivt for det meste. Et godt ingeniør sprog.
Nu mangler vi så bare, at du også kan se det negative ved C++. Det kan nemt være mere vigtigt at kunne se, end hvad sproget kan.


16. feb 2010 kl 21:31

avatar

Torben Nielsen

Software eller generelle kompetancer

Det fremtidige behov for kompetancer kan ikke planlægges for den enkelte - af hverken erhvervsliv eller universiteter. Det afhænger af den enkeltes interesser og kompetancer, deres nuværende jobfunktion, samt den branche de arbejder indenfor.

Som kommentar til de studerende i tråden, vil jeg sige, at det det gælder om er, at være dedikeret på de udfordringer der kommer gennem arbejdslivet. Personligt har jeg arbejdet indenfor medico, fødevareindstri, medievirksomhed og nu energisektoren. Som Msc fra DTU har jeg aggeret som polyteknikker - den tidligere betegnelse for civilingeniører.

Via tilvalg og konstant afsøgning af jobmulighederne, har jeg fået en væsentlig del af mine job-ambitioner opfyldt - indenfor vidt forskellige brancher. Herved har jeg altid haft spændende og ufordrene jobs - med "on the job training" som den gennemgående faktor for jobsucces.

Personligt har jeg oplevet en efterspørgsel efter en kompetance der kan koble den analoge ydre verden sammen med den digitale - det vil der fortsat være brug for.


16. feb 2010 kl 22:09

Jens Dalsgaard Nielsen

Re: Software eller generelle kompetancer

Personligt har jeg oplevet en efterspørgsel efter en kompetance der kan koble den analoge ydre verden sammen med den digitale - det vil der fortsat være brug for.

Det tror jeg er godt observeret. Et kontrollerende system uden ordentlig forbindelse til det man vil kontrollere er ikke meget bevendt. Men skal vi stadig aflæse 4-20 mA strømsløjfer, lære at konstruere halvleder temperaturmålere vha diode strækninger (gjorde selv i 19xx - xx kan oplyses ;-).
Eller skal man blot smide en i2c sensor ind i kampen mod verden ? det er nemt, virker og man har flyttet problemet over på kommunikation.

Selvom det er sjovt at bygge en audioforstærker kan man diskutere det langtsigtede udkomme af det.

Mere vigtigt er nok at lære at beskytte sine ind og udgange og det vil kræve kendskab til hvorledes "verden" gebærder sig. En H-bro kan sagtens få tørre tæsk af det den føder.

Så tre trins analoge forstærker på transistorer er vel helt yt ? :-)


16. feb 2010 kl 22:52

Claus Waldersdorff Knudsen

Pensumplan


Det var et godt initiativ at spørge ud i verden, så her er mit lille bidrag, formet af nuværende såvel som af tidligere job.


Først lidt om hvad jeg laver idag, her godt 25 år efter diplomet.
Jeg er ansat i en mindre virksomhed, der lever af at fremstille og sælge flowmetre og -controllere af vidt forskellig udførelse, med hele verden som markedsplads.
Fælles for dem alle er, at der en eller anden form for elektronik, og når bølgerne går højt, måske endda en applikation der kører på en PC til konfigurering, styring og dataopsamling.

Som chef-arkitekt, -designer, -udvikler, -fejlretter, -forsker etc., skal jeg i det daglige tage stilling til hvad, hvordan, hvorfor og hvorfor ikke indenfor discipliner som transducerteknik, materialekendskab, FPGA, mikrokontrollere, analog elektronik, effektelektronik, DSP, C, C , Delphi, fysiske systemer...
Altså en temmelig blandet landhandel af ting jeg bør kunne.

Fælles for de faglige områder er dog, at de helt elementære ting skal være på plads:
Ohms lov, dynamiske systemer, anvendt matematik, sikkerhed, robusthed indenfor embeddede systemer, for blot at nævne nogle få emner.

Lad mig give et lille eksempel: For at en FPGA skal kunne spille (godt) sammen med omverdenen, er det ikke nok at man kan noget Verilog eller VHDL. Man skal vide hvordan signalerne kommer ind og ud af lakridsen, helt nede på det allerlaveste niveau: Man skal kunne sin Ohms lov i alle dens afskygninger, man skal kunne sin transistorteknik (BJT, FET etc), man skal kunne sin high speed signal teknik og transmissionlinieteknik. Kan man ikke de elementære ting aner man ikke hvorfor det (måske) virker - og endnu værre, man aner ikke hvad man skal kikke efter hvis det ikke virker.

Så for at kunne virke som elektronikingeniør indenfor udvikling, er det nødvendigt at lære alt det man også lærte i "gamle dage". Jeg mener ikke at man kan tage grundlæggende elementer ud og erstatte dem med "noget mere moderne". Man kan ikke lave en halv elektronikingeniør!

Og her er så det grundlæggende, efter min mening:
* Ohms lov
* Anvendt matematik som med Laplace, Fourier, statistik
* Ohms lov
* Komponent- og materialekendskab
* Analog elektronik, med transistorer, FETter etc.
* Power elektronik
* Digital elektronik, grundlæggende og senere med CPLD, FPGA, VHDL/Verilog
* Ohms lov (*)
* Filterteknik, passive, aktive og digitale
* Dynamiske systemer, både rene analoge og også "computeriserede" med anvendelse af mikrocontrollere og/eller DSP
* Datakommunikation, protokoller
* Embeddede systemer
* Grundlæggende programmeringsteknik, helst sproguafhængigt (Det handler ikke om at man kan sine C libraries. Hvis man ikke har lært at tænke struktureret, vil der kun blive genereret klytkode, og det uanset hvilket sprog der anvendes)
* High speed digital design og transmissionlinieteknik
* Transducerteknik, hvordan kommer vi fra noget fysisk til noget elektronisk

Derudover er der discipliner som økonomi, ledelse, kommunikation...

Oven på den basisviden kan man så specialisere sig efter ens egne interesser, og ikke så meget efter underviserens interesser. Emnet/-erne skal naturligvis ligge indenfor rammerne af uddannelsen. Det kræver måske lidt mere af både den studerende og af underviseren.

Og voila, så har man en uddannelse der tager mindst 14 semestre ;-) så indbygget i uddannelsen skal der være et incitament til at "lære at lære". Med andre ord, underviseren skal være mere passiv, og samtidig stille det krav til den studerende, at det er den studerende der er hovedansvarlig for egen læring, ikke institutionen eller underviseren. Det giver den ballast der skal til for senere at kunne videruddanne sig på eget initiativ og uden en hjælper i form af en underviser.


(*) Ja, jeg ved godt jeg gentager mig selv; men jeg har desværre set ingeniørkollegaer, der enten ikke har lært Ohms lov eller har fortrængt den. De var helt med på at E = R * I; men når talen falder på e = Z * i, blev de fjerne i blikket :-)

Ups, det blev til et længere indlæg. Meget pardon!


-Claus


16. feb 2010 kl 23:09

avatar

Torben Nielsen

Re: Re: Software eller generelle kompetancer

Mere vigtigt er nok at lære at beskytte sine ind og udgange og det vil kræve kendskab til hvorledes "verden" gebærder sig. En H-bro kan sagtens få tørre tæsk af det den føder.

Hej Jens

Mit point er lidt mere bred - det gælder om at skabe støjfrie, "high definition" analoge signaler til den digitale signalbehanling - ellers kommer der - crap in crap out.

Phase locked loop detection, bølgelængdeoptimering til lysspektroskopi, belysningsgeometrier til VIA applikationer, og identifikation af de essentielle risikofaktorer, samt succesinitiativer ved projekter med andre kulturer - er nogle af de erfaringer jeg har opsamlet.

PS: Jeg har også konstrueret den perfekte audio power-forstærker - for 27 år siden - de spiller fortsat til Frederikssund Festival 5 - 7 august 2010.

mvh

Torben Nielsen
2128 6303


16. feb 2010 kl 23:32

Casper Lyhne

Re: Re: Re: Fejl detektering

Der er masser af ting ved C++ som ikke er godt. Det kan, som jeg også nævnte, være noget rod. Det er ikke det mest elegante sprog og man bliver nødt til at vide hvad der foregår under hjelmen før man kan overskue konsekvenserne af sin kode. Desuden ryger læsbarheden let da man kan overloade operatorer og alt muligt andet snask. Igen, jeg er ikke religiøs med C++. Jeg synes bare det er den naturlige efterfølger til C og det er et godt sprog som ingeniør. Og som vi er inde på i tråden her så giver det en meget bedre mulighed for systematisk fejldetektering.


17. feb 2010 kl 01:45

Jens Madsen

Re: Re: Re: Re: Fejl detektering

Og her er så det grundlæggende, efter min mening:
* Ohms lov
* Anvendt matematik som med Laplace, Fourier, statistik
* Ohms lov
* Komponent- og materialekendskab
* Analog elektronik, med transistorer, FETter etc.
* Power elektronik
* Digital elektronik, grundlæggende og senere med CPLD, FPGA, VHDL/Verilog
* Ohms lov (*)
* Filterteknik, passive, aktive og digitale
* Dynamiske systemer, både rene analoge og også "computeriserede" med anvendelse af mikrocontrollere og/eller DSP
* Datakommunikation, protokoller
* Embeddede systemer
* Grundlæggende programmeringsteknik, helst sproguafhængigt (Det handler ikke om at man kan sine C libraries. Hvis man ikke har lært at tænke struktureret, vil der kun blive genereret klytkode, og det uanset hvilket sprog der anvendes)
* High speed digital design og transmissionlinieteknik
* Transducerteknik, hvordan kommer vi fra noget fysisk til noget elektronisk

Derudover er der discipliner som økonomi, ledelse, kommunikation...

Ja, det var så det grundlæggende. Men ser du på, hvad der undervises i idag, så mener jeg at f.eks. områder som signalintegritet på DTU er gået ud. Herunder high-speed digital elektronik og transmissionsteknik. Komponent, og materialekendskab, har jeg ikke set eksempel på undervisning i på DTU, bortset fra på M-linien. Dette er områder, der kan betyde meget for en konstruktions pålidelighed og stabilitet - og disse er tilsyneladene nedprioriteret. Pålidelighed, betyder intet.

Indenfor HW, synes jeg ikke at vi har så store problemer. Problemet, er at man ofte sætter softwarefolk, til at programmere hardware og embeddede systemer - og de tænker "stort", vil gerne have en masse "features", og opnår noget ustabilt, der ikke fungerer. Bare det, at bruge et operativsystem som Windows til misionkritisk software, synes jeg gør, at der er noget som bør laves på en anden måde, i softwareundervisning. Jeg så gerne, at vi i fremtiden ikke behøvede, at være bange for at sætte os ind i en bil, eller i et tog, hvor der anvendes software i styreelektronikken. Idag er mange bange for det - og endnu værre - der er ofte grund til det. Ja, processoren kan hænge. Men, værre - der er ikke taget højde for det.

Jeg vil gerne have, at softwarefolk forstår, at man ikke bare skriver noget til f.eks. et display eller en skærm, og så "forventer" at det står der. Der kan være sket en afbrydelse, nogle kan have fjernet ledningen og sat den på igen, eller der kan være sket andet, så dataene ikke står på displayet. Skal man være sikker på, at de er der, så skal det tjekkes. F.eks. med jævne mellemrum, og kun når det tjekkes, er man sikker.

Det er ikke fordi, at hardwaren er upålideligt, og ikke er lavet godt. Men fordi, at det altså kan gå ting galt, f.eks. en ledning der fjernes af en teknikker, og sættes på igen. Eller en skruetrækker, eller noget andet, der kortslutter. Så går det ikke, at serveren skal genstartes. Og at alt måske skal startes op forfra, fordi det skal gøres i korrekt rækkefølge. Det er manglende omtanke, der ofte er problemet. Ikke mangel på kunnen.

Selvom der bliver undervist i store O funktioner, og ram forbrug, så har langt de fleste programmer memory leaks, og uendelige svartider (eller hang-ups). Måske kan "bevises" at de - når der svares - så svares korrekt. Men svaret kommer aldrigt. Der er ingen data for, hvor lang tid at noget tager, og om det bliver færdig indenfor endelig tid. Det er ganske svært, at f.eks. give et ok signal, der siger at alt er ok, hvis man ikke kan få en garanti for, hvor hurtigt at signalet gives. Jeg vil påstå, at noget skal der gøres indenfor software. Idag, er det ligeved, at man må bide i det sure æble som ingeniør, og undlade at bruge elektronik, hvori der indgår software. På trods af, at systemer med microcontrolere, faktisk giver større sikkerhed, hvis de bruges korrekt. Løsningen er ikke at sløjfe software, og at sløjfe elektronik og microcontrolere, men at gøre noget effektivt ved undervisningen. Tingene skal fungere, og de må finde nogle metoder, så de kan stå inde for at det er 100%. Hvis det ikke fungerer, så skal det kunne detekteres, så man ikke har noget der hænger. Det skal overvejes, hvad der så skal ske, og det er uacceptabelt, at en skærm står, med en fastfrossen fejlbesked. I princippet, er det kun at tjekke tingene er korrekt, og ellers, tage action på det. Hvis CPU'en ikke kører, eller ikke kører korrekt, så opdages det af hardwaren, og det tager højde for det. Måske, ved at genstarte, og herefter lytte til om det så kører korrekt - eller hvis det ikke er nok, så gå kraftigere til værks. Selvom elektronikken er enorm stabil, og der ikke er støj eller andet - så er det uinteressant. Når der tages højde for fejl, så er det for at fange det som aldrigt kommer, og det skal gøres. Det skal logges, og kunne ses, at der er opstået en fejl. Er det kritisk, skal programmørerne også tjekkes, således det ikke er de samme der laver koden, og verifikationskoden, der tjekker det er korrekt. Som oftest, betyder det, at koden skal udvikles og skrives mindst to gange, eller flere. Der findes også analytiske metoder, der kan hjælpe til at softwaren fungerer, og kan analysere, hvor langsomt den er - og om den f.eks. giver et deterministisk og ens svar, eller om den giver et tilfældigt og kaotisk svar.

Som det ser ud idag, har jeg svært ved at se at man nemt kommer ud af DTU, og i stand til at lave en pålidelig konstruktion. Vi er vandt til, at hardware har fungeret pålideligt i mange år, fordi man hårdt har arbejdet på, at sikre tingene fungerede. Det er svært idag. De fleste, har ikke lært om EMC. De kender ikke til signalintegritet.
De har ikke lært om transmissionslinier. Mange, har ikke lært effektelektronik. De lærer måske, at programmere FPGA'er i VHDL - og de gør det, som softwarefolk gør det, så det for FPGA programmørerne, bare er et nyt "C#" eller Java.

Jeg er virkeligt bange for, at hvis man ikke satser på, at undervise i at lave ting som fungerer, så vil vi om få år, ikke have teknologi der fungerer.

Vi kan også se, hvordan man - tilsyneladende uden problemer - har kunnet få lavet mastercard/dankort, så at pinkode kan undgås, bare ved at sende en fast kode ud. Igen, er det manglende omtanke. Men, det viser også en tendens i samfundet, der går ud på, at ødelægge det som fungerer. Tingene skal ikke fungerer, fordi teknologi skal smadres.

Om man så ikke "tør" lave elektronik der virker, og software der virker, ved jeg ikke. Måske, er man bange for det vil kunne misbruges af en diktator. Men, hvorfor ikke bare lukke ingeniøruddannelserne?

Hvis vi vil uddanne ingeniører, så skal vi sikre os, at de kan lave noget, som fungerer. Og det gælder også dem, der laver software. Ellers, synes jeg, at vi skal lukke ingeniøruddannelserne, og flytte udviklingen til Kina. De vil kunne.


17. feb 2010 kl 06:13

Jens Madsen

Re: Re: Re: Re: Re: Fejl detektering

Jeg synes bare det er den naturlige efterfølger til C og det er et godt sprog som ingeniør.
Hvorfor er det godt - når du selv kunne have designet et sprog der er bedre? Er det godt, fordi det ikke er godt, og derfor kan bruges til at der er fejl at opdage? Er det ikke først godt, når du ikke selv kunne have designet et sprog, der er bedre, og som ikke vil give problemer? Er det ikke et minimum, at man kan forvente af et sprog, at man ikke selv kunne have designet det bedre? Det er vigtigt, at man ikke æder noget råt, som man med et halvt øje kan se er dårligt. Og dermed, også kunne gøre bedre selv. Så kan det aldrigt være godt. Det er måske eneste mulighed man får, fordi at nogen ikke ønsker, at man skal have adgang til noget godt. Der er altid masser af mennesker, som har masser af værktøjer og tools at tilbyde, der kun er designet til at tage din tid.

Det er vigtigt, at man kan se fejlene. At man selv kan gøre det. At man kan finde ud af, hvad der burde være gjort på en anden måde - og hvorfor. Samme, hvis du lærer design patterns. Måske er det du lærer praktisk - men en joke? Du skal kunne vurdere det. Du skal have kritisk sans, og det er ikke godt, så længe at du kan se det er dårligt, og gøre noget bedre selv.


17. feb 2010 kl 10:19

Casper Lyhne

Re: Re: Re: Re: Re: Re: Fejl detektering

Erhm ... for lige at tage det fra en ende af. 1) C++ er ofte det bedste til formålet, dvs mindst ringe, og dermed godt, lige gyldigt om jeg kan finde fejl i det. 2) Nej et sprog kan godt have problemer og stadig være godt. 3) Nej det er ikke et minimums krav. I så fald ville der ikke findes gode sprog. 4) Resten af det afsnit er sort snak for mig. Dømt ud fra tidspunktet ser det også ud til at være skrevet i søvne.

næste afsnit: 1) Ja det er vigtigt at kunne se fejlene, men hvad er din pointe? 2) Forstår ikke den med design patterns. En joke? 3) Ja, men design pattern != design. Man skal jo selv designe, men efter et godt pattern.


17. feb 2010 kl 11:58

Jens Madsen

Re: Re: Re: Re: Re: Re: Re: Fejl detektering

Erhm ... for lige at tage det fra en ende af. 1) C++ er ofte det bedste til formålet, dvs mindst ringe, og dermed godt, lige gyldigt om jeg kan finde fejl i det. 2) Nej et sprog kan godt have problemer og stadig være godt. 3) Nej det er ikke et minimums krav. I så fald ville der ikke findes gode sprog. 4) Resten af det afsnit er sort snak for mig. Dømt ud fra tidspunktet ser det også ud til at være skrevet i søvne.

næste afsnit: 1) Ja det er vigtigt at kunne se fejlene, men hvad er din pointe? 2) Forstår ikke den med design patterns. En joke? 3) Ja, men design pattern != design. Man skal jo selv designe, men efter et godt pattern.

Det er ikke uden grund, at C++ er dømt ude i mange sammenhæng. Jeg benægter ikke, at C++ er et brugbart sprog - men jeg vil formulere det sådan, at C++ er måske det bedste tilgængelige sprog til formålet - det betyder ikke, at det er et godt sprog.

Problemet med mange, er at de er så dygtige til at lære noget. Og de opsuger denne information, og tager til sig. Umiddelbart, er det meget godt - men hvis de havde gået den modsatte vej, og selv fundet ud af tingene først, så vil de måske have sagt at det var noget møj. Mange "blændes" af det de lærer. Bruger du derimod det du har lært, efter du selv har fundet ud af tingene - og dermed kan se, hvor de er kommet til andet end dig, så har du måske mulighed for at få rettet dine egne fejl, men også en anden baggrund, for at vurdere det, og se deres eventuelle fejl.

I mange tilfælde, er det meget sværre at se fejlene, end at bare "lære" et programmeringssprog. Jeg kender det selv, fra da jeg var studerende. En af mine studiekammarater brokkede sig altid. Det var trals at høre på. Og jeg må indrømme, at ofte kunne jeg ikke se fejlene umiddelbart, og jeg tvivlede på at de var der. Det var jo dygtige mennesker. Jeg husker engang jeg sagde noget i retning af, at det er jo Borland der har lavet det, og min erfaring var, at de nu tænkte sig meget grundigt om. Efter at have tænkt over problemet, måtte jeg dog indrømme, at der var noget, der kunne gøres bedre der. Man sluger tingene råt.

Jeg har bevidst gjort det gennem uddannelsen, fordi at opgaverne var lavet til det. Jeg husker tydeligt opgaven med MTBF hvor jeg svarede de millioner år, der var lagt op til i opgaven - uden kommentarer.

Efter uddannelsen, var opgaven ikke mere at lære - men at forstå.

I nogen grad, kan man fremme ens kritiske sans, ved at tvinge sig til det. Jeg husker en rapport jeg engang læste - og i første omgang, synes jeg den var meget fin. Så fik jeg den tanke, at han sikkert havde lagt eksakt en fejl ind per side. Så nu søgte jeg på alle siderne, med henblik på at finde éen fejl på hver side - og fandt den. Så det var ikke korrekt, og i nogle tilfælde, var det endog slemme fejl. De var gået totalt forbi øjet, hvis man ikke havde besluttet sig for, at være forudindstillet på, at det ikke var i orden.

Jeg er næsten sikker på, at fejl som den på dankortet skyldes det samme. Man antager da, at folk ved hvad de gør. Derfor, er det også ofte dømt til at mislykkedes, at skulle tjekke andre. Det er bedre, at lave det dobbelt, og sammenligne herefter, f.eks. run-time. Og så, naturligvis, ikke lade sig påvirke af samme fejl, eller bruge samme kode. Hvis du får givet den kode, som du skal tjekke - så blændes du af den, og ser ofte ikke fejl.
Og - ser du fejl - så ser du måske forkert.

Der er langt flere fejl, der rettes forkert, end som rettes korrekt.

Har man derimod to uafhængige koder, der begge skal fungere, og sammenligner disse, så er større sandsynlighed for at opnå et ordentligt tjek.

Jeg er ikke imod undervisning i design patterns - men jeg ønskede at gøre opmærksom på, at man ikke skulle lade sit øje "forblinde" fordi man har lært det - og derved måske begår samme fejl som de. Hvis de gør fejl.

Det skal ikke forstås sådan, at jeg mener det er dårligt at undervise i - for skulle du selv gøre det vil du sikkert også gøre nogen fejl. Og dem, vil du kunne undgå, ved at bruge hvad andre har lært. Men jeg ønsker en kritisk indfaldsvinkel og tilgang til alt. Det er nødvendigt.

Det betyder ikke, at man ikke kan være flink - for jo mere kritisk man er, desto mere flink, tvinges man også til at være... Ellers, er der jo ikke nogen chancer.

Men jeg ser gerne, at man ikke som udgangspunkt har den holdning at fejlene jo ingen betydning har - i stedet, skal man forstå hvilken betydning de har.

Jeg er 100% sikker på, at du ikke har en liste over alle C++'s fejl, mangler, og hvad der er dårligt, eller kunne laves bedre. Derfor, mener jeg, at du vurdere for hurtigt, når du siger det er godt. Måske er pascal, delphi, fortran, ada, java, eller andet meget bedre. Der er intet, som kan begrunde, at C++ er et godt sprog for ingeniører.

På DTU nægtede man i mange år, at undervise i C++, og elektro/datalogi retningen, var sidste retning, der begyndte at undervise i C++. Jeg havde programmering, da sproget var Pascal. Og det var med fuld fornøjelse,når læren havde historier om studerende, der var blevet bedt om at lave en succ(x) funktion, og så ikke kun havde returneret med x+1, men også lagt éen til selveste x - og hvilke uoverskuelige ting, at dette kunne medføre i et program. Ja, og så hele problematikken om, hvorvidt at det resultat der blev returneret, så var før, eller efter, at der var lagt éen til...


17. feb 2010 kl 12:27

Jens Dalsgaard Nielsen

elektronik og sprog

@JensM, Casper mfl

Det er vel sådan med programmeringssprog at de har alle gode som dårlige sider. Sproget i sig selv er ingen garanti for noget som helst. Det er alene programmøren/designeren/ingeniøren der står til ansvar for det.
Så kan man finde C++, C#, C, D, (B kan nok ikke findes mere), python,pascal frem. Nogle har garbage collection, andre laver ikke affald osv osv. Hvad med OS'et nedenunder ? Nok mindst lige så væsentligt.

MEN

istedet for at pindehugge et programmeringssprog + og - sider hvad skal vi så på det som koden kører på ?

- bygge m6800,avr,msp
- bygge fpga
- bruge COSTS (arm7/9,pc,atom,...)
- eller bare køre det på køkken PCen

Jeg mener at fpga som skal interfaces til eksterne komponenter (ram, canbus,i2c,...) er vejen frem. opencores.org er et godt sted at starte.


17. feb 2010 kl 13:51

Jens Madsen

Re: elektronik og sprog

Jeg mener at fpga som skal interfaces til eksterne komponenter (ram, canbus,i2c,...) er vejen frem. opencores.org er et godt sted at starte.
Intels kinesiske udviklingsafdeling satser netop på, at kombinere Intel processorer og FPGA'er, på éen chip. Til mange embeddede applikationer, kan jeg ikke udelukke, at det er en god sammensætning. I PC sammenhæng, ser jeg dog ikke så stor gevindst.

I mange embeddede sammenhæng, skal vi kunne styre signaler til tiden - og hverken før, eller efter. I nogle tilfælde, kan det ske ved at vi på en microcontroler, lægger eksakt-tids problemerne på som øverste interrupt prioritet, og så realtids problematikker under. I andre, vil vi have noget hardware, hvor vi ved inputs tidsstempler hvornår de skifter, og gemmer det, så processoren kan læse og bearbejde det - og på outputs, også sætter tidsstempel på, hvornår data skal skifte. Med en realtidskerne, er så muligt at opnå eksakt timing. Sådanne features, kan det være en mulighed at lægge ind i en FPGA. Og ligeledes, den del af logikken der skal arbejde ved høj klokfrekvens.

Skal jeg fremhæve et programmeringssprog, så vil det nok i højere grad være VHDL, fremfor C++. Det skyldes, at det er noget helt andet. Som eksempel, har man testvektorer som del af VHDL. Man har analyseværktøjer, der kan reorganisere hardwaren som genereres, og der findes værktøjer, der undersøger fejl-coverage for testvektorer. VHDL er et "rigtigt" sprog for ingeniører. Hvis du lægger en VHDL simulator ind på din microcontroler, kan du også kode den i VHDL - og samtidigt, har du bedre styring på timing, end i C++, da timing er en del af VHDL. Og det gør måske også koden mere overskueligt, at såvel indmaden, som det i FPGA'en, kodes i samme sprog. Med tiden, vil vi måske få VHDL compilere (det kunne måske anbefales til Intels nye I86/FPGA chips), der selv opdeler FPGA kode, og processor kode, og finder ud af at dele det op, så det er sikkert. Man specificerer så bare det hele i VHDL, og den laver selv I86 koden, i den del, der vælges at lægge i processor.

VHDL, har jo så til gengæld andre ulemper - men jeg synes, at det er et godt ingeniør sprog...

Som du er inde på, betyder OS'et nedenunder også meget. Et windows OS, eller Linux, er ikke altid godt. Et af disse operativsystemers væsentligste fejl, er at de ikke umiddelbart er realtids operativsystemer, og det at garantere et svar til tiden, er nødvendigt i mange sammenhæng. Har vi en maskine, eller andet udstyr, skal vi måske være sikker på, at det fungerer, og at hvis der sker en fejl, at det så opdages indenfor ganske få millisekunder. Så har vi måske et skiftende OK signal, hvor det sikres at en programmør ikke alene selv kan få signalet til at skifte, og at signalet ikke kan stå og skifte, hvis der er fejl i softwaren. Et sådant OK signal, kræver reelt et realtids operativsystem, hvis vi skal kunne stå inde for, at signalet skifter med den valgte minimumsfrekvens.

Endeligt, kan det være væsentligt, at have ordentligt teknisk dokumentation på operativsystemet, så vi ved hvor lang tid en system operation tager, og at den ikke indeholder en kompleksitetsbombe. Og have styr på, at der ikke pludseligt swappes, eller gøres andet, så vi ikke giver svar til tiden. Eller - for nogle sprog - at en "opryder" pludseligt går igang, så vi ikke har overblik over hvor stor forsinkelsen er. I mange ingeniørsammenhæng, betyder tiden noget, og derfor må man vælge operativsystemer der håndterer tidsproblematik.

Selve processoren, betyder ikke så meget. Men, i nogle tilfælde, er det en fordel, at dens timing er overskuelig. Mange, advancerede processorer, kan have særdeles uoverskuelig timing, på grund af cache, og måske af andre årsager. Det er oftest vigtgit, at kunne stå inde for en svartid, og være sikker på, at en målt tid, stemmer overens med virkeligheden, eller bedre.

I nogle tilfælde, kan FPGA'en som du nævner, også være relevant at indeholde hardwareinterface komponenter, såsom I2C. Men, i nogle tilfælde, kan de også lægges i software, og en CPU, der har mulighed for at skifte mellem tasks hurtigt og effektivt, og måske laves til at køre VHDL kode, vil kunne aflaste en VHDL chip. Det væsentlige er, at den laves så den kan klare de lidt langsommere VHDL tasks, og at automatisk software, direkte kan integrere VHDL koden i chippen.

Det er korrekt, at alle sprog, har fordele og ulemper. Men jeg tror ikke, at mange egentligt overvejer hvad ulemperne og fordelene eksakt er - og får alle med. Hvis de gjorde det, vil de lave sprog, der var noget anderledes end de fleste tilgængelige sprog.

Vi har mange sprog, og de har mange fordele. Ønsker du en fordel, kræver det et sprog. Andre sprog, har andre fordele. Ingen, har "sanset" at lave et sprog, der faktisk mesterer alle fordelene i et. Det skyldes sandsynligvis i højere grad et manglende overblik over sprogenes fordele og ulemper, end at det er umuligt. Og netop dette manglende overblik, synes jeg er et problem.

Når vi vælger en CPU, og operativsystem - hvis vi vælger et - så findes mange faktorer vi kan vælge ud fra. I ingeniørsammenhæng, er det ofte nødvendigt at have overblik over timing. Ofte, kan vi ikke vælge et operativsystem, fordi det er for sløvt, til at starte op - og vi har måske valgt, at hvis der sker en fejl og begge vores programmer giver uoverensstemmelser eller ikke svarer, så at genstarte i håb om det løser problemet. Hvis der stadigt ikke svares at alt er ok, går vi videre og springer måske sikringer, eller lukker udstyr ned. Det er nødvendigt, at hardwarefolket springer hovedsikringen, når softwarefolkets kode ikke dur.

Realtidsproblematik, overskuelighed, hastighed ved genstart, isolation mellem software, ram, osv. kontrol af resourceforbrug osv. er vigtige parametre for et operativsystem. Som det er idag, kender jeg ikke rigtigt nogle operativsystmer, som jeg synes lever op til kravene, og foretrækker derfor at kode uden operativsystem, og så have biblioteker, der klarer operativsystemets opgaver. Det er naturligvis en nødløsning.


17. feb 2010 kl 14:24

Jens Dalsgaard Nielsen

Re: Re: elektronik og sprog

Hvis man vil se hvad der er på dyreste hylde i supermarkedet til realtidsopgaver så prøv at google på IEC 61508 og SIL level III. Navne som Green Hills og Windriver dukker op. Jeg vi tro at deres OS'er sidder i F16,..., ISS og andre systemer hvor man har krav om verificebar kvalitet og responsegenskaber. DO-178B er også en forkortelse man kan google efter :-)

Et godt sted at starte er http://en.wikipedia.org/wiki/D...178B


17. feb 2010 kl 14:35

Per Hygum Due

750.000 asiatiske ingeniører klar årligt

Ca. 750.000 nyuddannede asiatiske ingeniører er klar hvert år.
500.000 fra Kina og 250.000 fra Indien.

I antal er de mange flere end danske ingeniører, lavere løn og længere arbejdstid (sikkert også).

Hård konkurrence for danskerne.

Da de er mange i antal kan de dække bredt over mange delfagområder indenfor elektronik og software.

Danske ingeniører skal helst kunne noget unikt for at kunne forsvare en højere timeløn.

Vi kan prøve at holde kvalifikationerne i front med kort ingeniørgrunduddannelse og efteruddannelse i arbejdstiden hele ingeniørarbejdslivet igennem. Den samme ide kan asiatiske ingeniører også få. Man må antage at Kina og Indien også følger med i hvilke ideer der udveksles på internettet.

Det er svært at se, hvad vi kan blive unikke på, så arbejsgivere vil betale højere timeløn for at få danske ingeniører til at løse opgaverne.


17. feb 2010 kl 17:38

Jens Madsen

Re: 750.000 asiatiske ingeniører klar årligt

Det er svært at se, hvad vi kan blive unikke på, så arbejsgivere vil betale højere timeløn for at få danske ingeniører til at løse opgaverne.

Der er den mulighed, at danskerne skal arbejde med de ting, som en dansk virksomhed ikke ønske at outsource. Det kan være for at f.eks. sikre kvaliteten. Og udføre overordnet analyse og design, samt kravsspecifikationer.
Et godt sted at starte er http://en.wikipedia.org/wiki/D...178B

Umiddelbart, synes jeg det ser mere fornuftigt ud, end mange af de metoder der tales om, under softwareudvikling - som jeg tror, mere har til hensigt at reducere udviklingsomkostninger. Jeg har dog ikke læst det igennem. Men, blandt ting som jeg bemærker er: 1. Hvad sker, hvis en programmør lægger en bagdør ind - opdages dette af systemet. Vil han tvinges til, at angive koden til denne, for at kunne få den igennem verificeringen, og vise hvordan bagdøren åbnes? Sættes eksempelvis krav til, at der automatisk tjekkes, at enhver linie, og enhver branch har været gennemført, ved de testvektorer at der er brugt, og er en komponents testvektorer til rådighed, for dem der bruger komponenten, så de også ved selvsyn kan stå inde for at det de bruger virker? Er der flere "skjulte" testvektorer, der har til formål at tjekke med ikke offentlige test vektorer? Hvis en programmør gør fejl - enten bevidst eller ubevidst - opdages det så? Antages, at en programmør lægger en fejl ind et tilfældigt sted i programmet - vil dette så opdages, af en anden programørs kode? Antages, at en programmør aktierer en bagdør i sin egen kode, vil eksekveringen så udelukkes, af andre personers kode? Vil dette ske, på en kontroleret måde? Hvis en komponent fejler, hvis der opstår en kortslutning, hvis der opstår fugt eller lign. - vil disse fejl så detekteres, og har man overvejet konsekvensen heraf? Har man gået hver enkelt komponent igennem, for at tjekke såvel resultat af afbrydelser, som kortslutninger, dårlige forbindelser, vand, olie, eller døde mus, der har "lagt" sig på kortet? Har man overvejet, om der er så meget styr på processen, at det vil være muligt at tage højde for, hvis en programmør lægger en fejl, eller noget "terror" ind, der har til formål at ødelægge virksomheden, måske efter et stykke tid, eller ved at udføre nogle normale ting i bestemt rækkefølge, der aktiverer en "fejl" (som f.eks. udløser et orlovs misil i tiltænkt, men gal retning). Kan en programmør "få magt" over virksomheden indefra, ved at lægge en uskyldig fejl ind i softwaren? Det kan måske også være bitfejl ved skift til sommer/vintertid, på et bestemt årstal, eller noget andet, der kan se sandsynligt ud som fejl, og ikke opdages. Eller, en meget lav fejlrate, der dog udløser fejl "til tiden". Hvordan, er det sikret, at flere vil skulle arbejde sammen om en sådan fejl, således man kan stå inde for at fejlen må skyldes ordrer, eller specifikationer, eller et usynligt ulovligt samarbejde, der viser det er tale om terror på grund af de har besluttet "fejlen" og "metoden" sammen?

Det er også meget almindelige, at fejl i systemet, såsom en skærm der går ned, en ledning der bides over, en strømforsyning der brænder af osv. ikke er overvejet. Tager man højde for dette? Er der en alternativ vej i systemet og redundans, hvis det betyder noget? Er redundansen tilstrækkelig? Har man metoder, så fejlene opdages, og at fejlene indikeres straks, så der kan tages højde for disse, og/eller at elektronikken måske selv tager højde herfor?

I mange tilfælde, hjælper det, at have mere end éen person til samme arbejde, således deres kode tjekker hinandens. At have regler og rutiner for, hvordan specifikationer, dokumentation, og test skal udføres. At sætte krav til hvordan softwaren skal testes og dokumenteres af udvikleren selv, og hvordan den kan testes ved at holde den op med testvektorer, baseret på specifikationer.

Jeg ser gerne, at man satser lidt på, at ingeniørerne uddannes til at kunne lave kvalitetselektronik. Udviklingsomkostninger er ikke et større problem, og hvis de er, så må man jo gå til "kina"... Eventuelt, med dele af en opgave, der forholdsvis nemt kan specificeres, testes, og hvor man kan lave test programmer som kineserne skal verificere deres ting med, for at få deres resultat godkendt, og tjekket, at det svarer til specifikationen.


17. feb 2010 kl 18:11

Frithiof Andreas Jensen

Re: 750.000 asiatiske ingeniører klar årligt

Det er svært at se, hvad vi kan blive unikke på, så arbejsgivere vil betale højere timeløn for at få danske ingeniører til at løse opgaverne

Det løser sig: Eftersom "globaliseringen" nu for alvor begynder at koste statskasserne penge vil der blive grebet ind med handelshindringer og toldmure.

USA og Kina er i gang: Kina med exportrestriktioner på "rare earths", Phosfor og Koks, USA lidt forsigtigt med kylling og bildæk. En hurtig default i et 1-ste verdens land (Grækenland, Island, måske Tjekkiet eller England) vil for alvor sætte gang i "lokaliseringen".

Vi skal M.A.O se mere på hvad vores eget behov er end hvad andre lande har gang i.


17. feb 2010 kl 18:52

Jens Madsen

Re: Re: 750.000 asiatiske ingeniører klar årligt

USA og Kina er i gang: Kina med exportrestriktioner på "rare earths", Phosfor og Koks, USA lidt forsigtigt med kylling og bildæk. En hurtig default i et 1-ste verdens land (Grækenland, Island, måske Tjekkiet eller England) vil for alvor sætte gang i "lokaliseringen"..
Nu er det jo ikke sådan, at import er en ulempe - måske eksporterer vi også, til det pågældende land, og har begge gavn af vores gensidige handel - så længe der er rimelig balance. Vi har måske endog mest gavn af det, hvis vi får "mest for pengene" ved handlen.

I forbindelse med "kvalitetsingeniører", forestiller jeg mig ikke, at man slavisk skal til at undervise i DO-178B specifikationer og lignende. Men mere, at man anvender principperne i undervisningen. Hvis de studerende eksempelvis får en opgave, så kan man give dem testvektorer, som de skal prøve programmerne, eller hardwaren af med, således det kan vises at de svarer til det ønskede resultat. De studerende, ved dermed også, om deres opgave er i orden. Man kan have test programmer og lign. der undersøger f.eks. fejl coverage, strømforbrug, hastighed og timing specifikationer mv. og lade de studerende udføre sådanne tests, og lade det være en del af besvarelsen, således de studerende kan "bevise" at deres chip eller hardware måske er mere strømbesparende, hurtigere, eller hvad de nu kan bevise med programmet.

Det gør det også nemmere for læren, at rette en opgave, hvis de studerende selv kommer med papirerne der står "godkendt" på, og så skal læren bare underskrive. Forstået sådan, at de har udført de pågældende tests mv. og har dokumentation for resultatet, og for at det er korrekt. Læren, kan måske også have sine egne tests, der ikke har offentlige svar - og de kan måske også udføres af de studerende, og vedlægges dokumentationen.

Man kan også oplære eleverne til, at tænke på ting som et display der tages fra/til, en ledning der tages fra/til, gentagne tænd/sluk, at verificere resultatet så tæt på den fysiske verden som mulig, f.eks. resultatet der står på en skærm ol. At bruge ok koder, således at manglende koder, automatisk lukker et system kontroleret. Og måske, at lære dem, at kunne håndtere programmer, hvor en IP pointer muterer, rammen muterer og lign. Måske lære dem, hvordan de designer elektronik, hvor forsinkelsen i komponenterne ikke har betydning for funktionen, og at de dermed undgår at skulle justere lodningernes størrelse, eller modstande og kapaciteter, transistorstørrelser osv. på en chip, for at få skifteregistre og dataflipflops til at skifte i korrekt retning - og metoder såsom flerfase klokning ol. der er uafhængigt af komponent forsinkelsen i stedet for metoder, som ved skifteregistre, hvor små forsinkelser i klok, kan medføre forkert funktion uanset frekvensen bare er et par hertz.

Altså, at bruge "specifikationerne" for pålideligt elektronik, og lade de studerende indgå, som del af dette, i stedet for at bare undervise slavisk i paragraffer som der står i standarder. De skal gerne optrænes i metoderne, uanset om de kender standarderne.

I nogle tilfælde, vil det også medføre, at de studerendes arbejde kan anvendes, f.eks. i sattelitter eller andre opgaver universitetet beskæftiger sig med, fordi man har automatiske metoders "garanti" for, at det de har lavet opfylder kravene, og er korrekt.


17. feb 2010 kl 19:24

Jens Dalsgaard Nielsen

Re: Re: Re: 750.000 asiatiske ingeniører klar årligt

Altså, at bruge "specifikationerne" for pålideligt elektronik, og lade de studerende indgå, som del af dette, i stedet for at bare undervise slavisk i paragraffer som der står i standarder. De skal gerne optrænes i metoderne, uanset om de kender standarderne.

@Jens - Når man læser dine ellers udmærkede og meget dækkende indlæg kan man tro at lige omkring hvad der undervises i rundt omkring idag er på "gætte niveau". I et tidligere indlæg var du ikke bekendt med OS/RT standarder og jeg smed en link til DO-178 og IEC 61508 og nævnede SIL hvor især SIl level III er ret interessant. Herefter skyder du mig nærmest i foden med at vi underviser slavisk i disse standarder,men at vi åbenbart ikke lærer dem at forholde sig ritisk til den slags ting - har du en reference til det ? eller er det rent gætteri. Ved du overhovedet hvad vi lærer dem ? og især på hvilken måde.

Den slags statements mudrer tit en diskussion - også her, og ødelægger ens indtryk af en ellers interessant disussion.

Du er meget velkommen til at kigge forbi en dag og få syn for sagen :-)

Hvis du har energi til det, ville det være fedt hvis du kom med en lidt mere struktureret tematiseret opstilling af et uddannelses indhold - det vil vi være mange der gerne ville se på.

mvh

PS: USAs industris største eksport regulativ problem er ITAR indenfor hightech. Det koster dem desværre kassen.


17. feb 2010 kl 19:41

Jens Madsen

Re: Re: Re: Re: 750.000 asiatiske ingeniører klar årligt

Jeg kender intet til undervisningen på AUC - da jeg selv har gået på DTU/DTH. Dette var tilbage i 1988. Dengang, lærte vi ikke væsentligt om dette. Såvel DTU som AUC kan meget nemt være forbedret på dette område - men det er ikke mit indtryk om DTU. Blandt andet, så undervises ikke mere i signal integrity.

AUC, tror jeg dog nok altid har haft en mere praktisk indfaldsvinkel end DTU, og undervisningen kan derfor nemt være på et højere niveau, med hensyn til udvikling af elektronik. DTU's valgfrie struktur, kan i nogle tilfælde også medføre, at det er svært at få en uddannelse med konsistens, og hvor at man har været igennem de nødvendige områder.

Men der, hvor jeg synes problemet er størst, er når vi når til erhvervslivet. Så vil en kontakt der slukkes, som regel medfører at alt, skal lukkes ned, og opstartes i bestemt rækkefølge - måske flere gange. Imens jeg har været arbejdsløs, har jeg været på en skole - og der var det nærmest "standard procedure", hver gang at en CISCO accesspoint, eller router/switch fejlede. Til trods for, at de kostede et femcifret antal kroner for en switch...

Jeg tror at du bedre kan vurdere, hvad fremtidens studerende behøver end jeg kan - min baggrund, er at jeg har været arbejdsløs siden uddannelsen, og ikke kunnet opnå at få job. Måske burde jeg ikke blande mig - men jeg håber ikke, at det gør noget.


17. feb 2010 kl 19:53

Jens Dalsgaard Nielsen

Re: Re: Re: Re: Re: 750.000 asiatiske ingeniører klar årligt

Jeg tror at du bedre kan vurdere, hvad fremtidens studerende behøver end jeg kan - min baggrund, er at jeg har været arbejdsløs siden uddannelsen, og ikke kunnet opnå at få job. Måske burde jeg ikke blande mig - men jeg håber ikke, at det gør noget.

Debat er hvad der skal til.

Jeg kan kun se verden fra min pind - nærmest lidt en øjet - derfor et fromt ønske om inspiration udefra. Ellers kommer vi ikke videre.

Mht bevistløst at "power circle" et apparat ved fejl - ja så kan vi hurtigt blive enige om at det gør man bare ikke.


18. feb 2010 kl 16:06

Per Hygum Due

Graduates in engineering list

Graduates by broad field of education in tertiary education

Graduates in engineering, manufacturing and construction. Tertiary. Total

2007:

428803 Russian Federation
361270 China (2004, source 2)
189417 Japan
189247 United States
170000 India (2005, source 2)
159559 Republic of Korea
113475 Ukraine
106205 Iran, Islamic Republic of
067587 Mexico
056454 Turkey
055322 Italy
054883 United Kingdom
052522 Indonesia
049529 Viet Nam
046906 Spain
046328 Poland
046042 Brazil
029728 Romania
025758 Belarus
025193 Colombia
015190 Algeria
015099 Chile
012445 Czech Republic
010345 Sweden
009991 Switzerland
009498 Uzbekistan
009476 Netherlands
008638 Finland
008079 Hong Kong (China), SAR
007400 Greece
007375 Morocco
007198 Austria
007079 Bulgaria
006820 Slovakia
006455 Serbia
006453 Lithuania
006423 Denmark

SOURCE:

1) http://stats.uis.unesco.org/un...aspx
2) http://www.issues.org/23.3/wad...html


Ny i debatten? Opret en brugerkonto

  • Seneste nyt
  • Mest læste
  • Debatterede
 

Nyhedsbrev

Tilmeld dig vores nyhedsbrev.