Programmering med C: Grundkurs, 7,5hp - Några kommentarer

Permalänk

Programmering med C: Grundkurs, 7,5hp - Några kommentarer

Hej!

Jag har skrivit in mig på en C programmeringskurs i Malmö Högskola. Jag antar att många här har läst denna kurs.
Enligt kursbeskriven så ska man få en introduktion till just C++ när man kommer till objektorienterad programmering.

Enligt kursen så omfattar den av programmeringsspråket C och objektorientering. Alt detta på 7.5 hp. Det betyder att man både lär sig C och C++ på 7.5 hp. Känns lite mycket för så lite poäng.
Då undrar jag vad ni tycker om denna kurs?

Permalänk
Medlem

Har du läst på universitetet innan? Du kan räkna med rejält högre tempo jämfört med gymnasiet.

Läste en kurs i maskinorienterad programmering, ingick både assembler och C/C++ i den.

Permalänk
Skrivet av gothxx:

Har du läst på universitetet innan? Du kan räkna med rejält högre tempo jämfört med gymnasiet.

Läste en kurs i maskinorienterad programmering, ingick både assembler och C/C++ i den.

Jag tar examen snart En månad kvar.
Faktiskt så tycker jag att universitet är slappare än gymnasiet.

Permalänk
Hedersmedlem
Skrivet av heretic16:

Det betyder att man både lär sig C och C++ på 7.5 hp.

I ordet "lär" ligger det en ocean av tolkningsfrihet. Att lära sig tillräckliga grunder för att skriva "Hello, world" och en OOP-baserad abstrakt nöjespark eller liknande får säkert plats på 7.5 hp. Betyder det att man "kan" C++ sedan? Varför läser människor i så fall utbildningar på 5 år på universitetsnivå i dessa ämnen? Varför kan de efter att ha arbetat med dessa ämnen i flera år fortfarande kallas "juniora" utvecklare?

Ingen blir "fullärd" av en introduktionskurs, men all inlärning måste börja någonstans. I mina ögon är det skillnad på att veta nyckelorden för ett språk (vilket kan gå väldigt snabbt att lära sig, speciellt om man har ett par språk innanför rocken) och att kunna skriva kod som andra inom samma område anser håller vettig kvalitet, eller för den delen bara att kunna läsa icke-trivial kod skriven enligt språkets konventioner. Det är nyttigt att inse skillnaden mellan detta gör att man hela tiden ska utmana sig vidare och utvecklas, snarare än att tänka att man är "kan" ett språk bara man kan få koden att kompilera.

Visa signatur

Nu med kortare användarnamn, men fortfarande bedövande långa inlägg.

Permalänk
Skrivet av phz:

I ordet "lär" ligger det en ocean av tolkningsfrihet. Att lära sig tillräckliga grunder för att skriva "Hello, world" och en OOP-baserad abstrakt nöjespark eller liknande får säkert plats på 7.5 hp. Betyder det att man "kan" C++ sedan? Varför läser människor i så fall utbildningar på 5 år på universitetsnivå i dessa ämnen? Varför kan de efter att ha arbetat med dessa ämnen i flera år fortfarande kallas "juniora" utvecklare?

Ingen blir "fullärd" av en introduktionskurs, men all inlärning måste börja någonstans. I mina ögon är det skillnad på att veta nyckelorden för ett språk (vilket kan gå väldigt snabbt att lära sig, speciellt om man har ett par språk innanför rocken) och att kunna skriva kod som andra inom samma område anser håller vettig kvalitet, eller för den delen bara att kunna läsa icke-trivial kod skriven enligt språkets konventioner. Det är nyttigt att inse skillnaden mellan detta gör att man hela tiden ska utmana sig vidare och utvecklas, snarare än att tänka att man är "kan" ett språk bara man kan få koden att kompilera.

Jag vet att man inte blir fullärd igenom bara en kurs, eller en utbildning.
I denna tråd är jag bara ute efter några kommentarer från dem som har gått kursen.

Permalänk
Medlem

Jag har inte gått kursen eftersom jag lärde mig C i mitten/slutet av 70-talet. Med C i ryggen har du Java och Pascal som i en liten ask. C++ kanske är lite knöligt och sannorlikt överspelat av C# i dot-net.
// hälsn. >30 år i träsket.

Permalänk
Skrivet av lassep1l1s:

Jag har inte gått kursen eftersom jag lärde mig C i mitten/slutet av 70-talet. Med C i ryggen har du Java och Pascal som i en liten ask. C++ kanske är lite knöligt och sannorlikt överspelat av C# i dot-net.
// hälsn. >30 år i träsket.

Oj! En veteranare!

Jag har tittat i C++ böcker och i C böcker. Vilken ENORM skillnad det är på språket, trots samma syntax.
C++ känns så brutalt overkill, kommer man verkligen använda allt?

Permalänk
Datavetare
Skrivet av heretic16:

Oj! En veteranare!

Jag har tittat i C++ böcker och i C böcker. Vilken ENORM skillnad det är på språket, trots samma syntax.
C++ känns så brutalt overkill, kommer man verkligen använda allt?

Det är rätt stor skillnad i syntax om du jämför modern C++ med C. Modern C++ är den version som kom 2011 där man gjorde flera stora uppdateringar till språket, på flera sätt har C++ blivit mer lik C#/Java men grundtanken i C++ är fortfarande att allt som kan påverka prestanda negativt är opt-in.

Kommer du använda allt i C++? Knappast, men en annan av tankarna med C++ är att inte tvinga in folk i en viss modell. Är OOP rätt sätt så finns stöd för det, men allt behöver inte vara klasser (som i t.ex. C#/Java) och i många fall är OOP långt ifrån bästa sättet att modellera programmet. Tror rätt få använder var enda finess i C# eller ens Java (som ändå är enklare än både C# och C++ rent språkmässigt).

Visst är det sant att man kan göra samma sak i C som i C++ (jobbar själv som C-programmerare för tillfället, undervisat OOP med C++ under 90-talets mitt), men gör man saker där t.ex. closures är vettigt så är det lättare att använda sådant i C++11, C har överhuvudtaget inget i språket för att hantera closures men finns flera sätt att åstadkomma samma sak rent logiskt.

C och C++ har divergerat, sedan 1999 års C-standard är inte längre all C-kod giltig C++. I 2011 års standarder av båda språken närmar man sig lite igen på biblioteksnivå, men inte på språknivå. Är dock inte så svårt att hålla sig till den delmängd av C som ändå är giltig C++, gör själv ofta det då det gör det enklare att skriva unit-tester i C++ för C kod (där är ett fall där just closures och ibland även OOP är användbart).

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Skrivet av Yoshman:

Det är rätt stor skillnad i syntax om du jämför modern C++ med C. Modern C++ är den version som kom 2011 där man gjorde flera stora uppdateringar till språket, på flera sätt har C++ blivit mer lik C#/Java men grundtanken i C++ är fortfarande att allt som kan påverka prestanda negativt är opt-in.

Det har jag märkt. Minns att i C++11 så fanns det något som heter for( int i = 0 : 10) som gör exakt samma sak som for(int i = 0; i<10; i++).
Det känns som att C++11 är mer som "Vi har lagt in extra bara".

Citat:

Kommer du använda allt i C++? Knappast, men en annan av tankarna med C++ är att inte tvinga in folk i en viss modell. Är OOP rätt sätt så finns stöd för det, men allt behöver inte vara klasser (som i t.ex. C#/Java) och i många fall är OOP långt ifrån bästa sättet att modellera programmet. Tror rätt få använder var enda finess i C# eller ens Java (som ändå är enklare än både C# och C++ rent språkmässigt).

Jag har skrivit in mig på en C kurs för att jag tycker C språket är renare, enklare, mindre och man kan göra exakt lika mycket som i C jämfört med C++, samt att jag behöver inte hela C++ för att skapa ett program. Jag kan skapa ett program utan just dessa ++.

Jag valde även kursen också för att jag ska programmera i Arduino, använda Simulink och då är det väldigt viktigt att man kan just C för Simulink har en toolbox som heter Code Generator som gör om reglerteknik/matematik till C-kod.

Citat:

Visst är det sant att man kan göra samma sak i C som i C++ (jobbar själv som C-programmerare för tillfället, undervisat OOP med C++ under 90-talets mitt), men gör man saker där t.ex. closures är vettigt så är det lättare att använda sådant i C++11, C har överhuvudtaget inget i språket för att hantera closures men finns flera sätt att åstadkomma samma sak rent logiskt.

Det enda jag saknar inom C är färdiga klasser. Det skulle faktiskt lyfta upp C ett steg. Men jag har hört att man kan programmera OOP i C då OOP är bara en teknik, och inget som finns färdigt.

Nu har jag bara programmerat lite i C och har koll på vad saker och ting är i C. Men kan du förklara för mig vad man ska använda för att programmera OOP i C? Visst ska man ha funktioner i en struct och det ska motsvara en klass?

Citat:

C och C++ har divergerat, sedan 1999 års C-standard är inte längre all C-kod giltig C++. I 2011 års standarder av båda språken närmar man sig lite igen på biblioteksnivå, men inte på språknivå. Är dock inte så svårt att hålla sig till den delmängd av C som ändå är giltig C++, gör själv ofta det då det gör det enklare att skriva unit-tester i C++ för C kod (där är ett fall där just closures och ibland även OOP är användbart).

Jag har sett att både C11 och C++11 har fått något nytt bibliotek som kallas för Thread.

Tror du C kommer att överleva? Eller kommer det vara så att C dör ut och allt C ersätts med C++? Typ att GCC, Linux blir skrivet i C++ istället för C.
Jag

Permalänk
Medlem
Skrivet av heretic16:

Nu har jag bara programmerat lite i C och har koll på vad saker och ting är i C. Men kan du förklara för mig vad man ska använda för att programmera OOP i C? Visst ska man ha funktioner i en struct och det ska motsvara en klass?

http://www.sweclockers.com/forum/10-programmering-och-digital...
http://www.sweclockers.com/forum/10-programmering-och-digital...

Läser du ens svaren du får i alla dina trådar?

Permalänk
Datavetare
Skrivet av heretic16:

Det har jag märkt. Minns att i C++11 så fanns det något som heter for( int i = 0 : 10) som gör exakt samma sak som for(int i = 0; i<10; i++).
Det känns som att C++11 är mer som "Vi har lagt in extra bara".

Det du tänker på är nog detta i C++11

vector<int> arrayOfInts{1,2,4,7,11}; // iterate through all integers for (auto anInt: arrayOfInts) { cout << anInt << endl; }

C++11 har även lambda-uttryck, som även kan vara closures. C har inget i språket som liknar detta, men går att uppnå samma logiska effekt

vector<int> ints{1,2,4,7,11}; // in-place transform of members of 'ints' using a lambda that capture a local variable int intShift = 3; transform(begin(ints), end(ints), begin(ints), [=](int anInt){ return anInt << intShift; });

Skrivet av heretic16:

Jag har sett att både C11 och C++11 har fått något nytt bibliotek som kallas för Thread.

Tror du C kommer att överleva? Eller kommer det vara så att C dör ut och allt C ersätts med C++? Typ att GCC, Linux blir skrivet i C++ istället för C.

De senaste åren har C och Java varit överlägset största språk enligt Tiobe index. Det är inte förvånande då världen är idag byggd på dessa två språk.

C är grunden för alla stora operativsystem som används idag. C är också överlägset vanligaste språk för inbyggda system, var en C++ trend i slutet av 90-talet men den kom helt av sig. Antalet programmerare som jobbar med någon form av inbyggt system är helt enormt, just i Sverige är det inte fullt lika vanligt som det är i världen i stort.

Java är för molnet vad C är för operativsystem. I princip alla stora ramverk här kör ovanpå en JVM, finns andra språk men de är alla nischspelare sett till totalt marknadsandel.

C++ klarar sig nog också då de flesta program vi kör på skrivbordet är i grunden C++ applikationer. Om C/Java någonsin försvinner kommer det med stor sannolikhet hända långt efter språk som C++ upphört att existera.

Edit: glömde kommentera "thread". Detta var bl.a vad jag menade med att C och C++ närmare sig lite på biblioteksnivå, C++11 fick en lång rad nya funktioner kring att programmera system med flera CPU-kärnor och de funktioner som är vettiga även för C dyker upp där med samma semantik.

Just trådning är trevligt, men inte jätteupphetsande. Det riktigt intressanta i C11 och C++11 i.m.h.o är atomic. Detta är inte bara "atomära operationer" som man hittar i t.ex. Java/C#, här har man tagit det flera steg längre och låter programmeraren exakt beskriva vilken typ av synkronisering man vill ha.

Modellen Java/C# är enklare och den passar x86 rätt bra, men kör man på ARM, PowerPC m.fl. blir det i många fall långt mer ineffektivt än nödvändigt. C/C++ 11 gör det möjligt att beskriva kravet man har på sin atomära semantik, kompilatorn kan då anpassa sig till mer effektiva sätt beroende på CPU-arkitektur. D.v.s.. som programmerare slipper man känna till exakta detaljer om CPU-arkitektur men kan ändå skriva extremt effektiva program bara man har generell förståelse för minneskonsistensmodeller.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Skrivet av Yoshman:

Det du tänker på är nog detta i C++11

vector<int> arrayOfInts{1,2,4,7,11}; // iterate through all integers for (auto anInt: arrayOfInts) { cout << anInt << endl; }

C++11 har även lambda-uttryck, som även kan vara closures. C har inget i språket som liknar detta, men går att uppnå samma logiska effekt

vector<int> ints{1,2,4,7,11}; // in-place transform of members of 'ints' using a lambda that capture a local variable int intShift = 3; transform(begin(ints), end(ints), begin(ints), [=](int anInt){ return anInt << intShift; });

De senaste åren har C och Java varit överlägset största språk enligt Tiobe index. Det är inte förvånande då världen är idag byggd på dessa två språk.

C är grunden för alla stora operativsystem som används idag. C är också överlägset vanligaste språk för inbyggda system, var en C++ trend i slutet av 90-talet men den kom helt av sig. Antalet programmerare som jobbar med någon form av inbyggt system är helt enormt, just i Sverige är det inte fullt lika vanligt som det är i världen i stort.

Java är för molnet vad C är för operativsystem. I princip alla stora ramverk här kör ovanpå en JVM, finns andra språk men de är alla nischspelare sett till totalt marknadsandel.

C++ klarar sig nog också då de flesta program vi kör på skrivbordet är i grunden C++ applikationer. Om C/Java någonsin försvinner kommer det med stor sannolikhet hända långt efter språk som C++ upphört att existera.

Edit: glömde kommentera "thread". Detta var bl.a vad jag menade med att C och C++ närmare sig lite på biblioteksnivå, C++11 fick en lång rad nya funktioner kring att programmera system med flera CPU-kärnor och de funktioner som är vettiga även för C dyker upp där med samma semantik.

Just trådning är trevligt, men inte jätteupphetsande. Det riktigt intressanta i C11 och C++11 i.m.h.o är atomic. Detta är inte bara "atomära operationer" som man hittar i t.ex. Java/C#, här har man tagit det flera steg längre och låter programmeraren exakt beskriva vilken typ av synkronisering man vill ha.

Modellen Java/C# är enklare och den passar x86 rätt bra, men kör man på ARM, PowerPC m.fl. blir det i många fall långt mer ineffektivt än nödvändigt. C/C++ 11 gör det möjligt att beskriva kravet man har på sin atomära semantik, kompilatorn kan då anpassa sig till mer effektiva sätt beroende på CPU-arkitektur. D.v.s.. som programmerare slipper man känna till exakta detaljer om CPU-arkitektur men kan ändå skriva extremt effektiva program bara man har generell förståelse för minneskonsistensmodeller.

Jag tycker C++ ser riktigt rörigt ut. Jag lånade hem boken "Vägen till C" som är bara på 269 sidor, jämfört med "C++ direkt" som är på 656 sidor.
Varför har inte C färdiga klasser? Måste finnas en anledning.

Permalänk
Datavetare
Skrivet av heretic16:

Jag tycker C++ ser riktigt rörigt ut. Jag lånade hem boken "Vägen till C" som är bara på 269 sidor, jämfört med "C++ direkt" som är på 656 sidor.
Varför har inte C färdiga klasser? Måste finnas en anledning.

C är har relativt få språkrelaterade konstruktioner, jämfört med de flesta moderna språk har C ett väldigt litet standardbibliotek. Detta taget tillsammans gör att det inte är speciellt svårt att lära sig hela ANSI-C.

Klasser, eller OOP, är ju bara ett sätt att organisera sitt data och strukturera sitt program. OOP kom efter C, så inte så konstigt att klasser inte fanns från start. Det är full möjligt använda sig av OOP i C, fullt lika smidigt som C++, Java eller C# men inte speciellt svårt heller. Sedan används C allt oftare för att programmera parallella system (det mesta i C11 är just för detta), OOP och parallellprogrammering är två riktigt usla kombinationer (parallellprogrammering kräver i princip att man har direkt explicit access till data).

C++ har jämfört med t.ex. Java/.NET ett rätt litet standardbibliotek men C++ är ett rätt komplicerat språk sett till hur många språkfinesser det har. Det har en del stora nackdelar, vissa säger att det inte är ett problem för man behöver ju inte använda allt. Sanning för C++ är nog att ytterst få faktiskt känner till alla språkliga finesser och det i sig är ett jätteproblem för det betyder att man kan få problem att läsa det andra skrivet då de kanske inte lärt sig samma delmängd som dig!

Rätt säker att både Java och C är så populära just p.g.a. att de är relativt enkla språk, något som gör det lättare att jobba med dem i projekt med många inblandade. Däremot ser man rätt ofta att folk "bashar" Java för det saknar finess X, Y & Z som minsann finns i massor av andra språk, de missar då att språk som har massor med finesser resulterar i att olika personer endast kan och därmed använder delmängder av språken som blir ett problem när olika utvecklares delmängder inte överlappar...

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Skrivet av Yoshman:

C är har relativt få språkrelaterade konstruktioner, jämfört med de flesta moderna språk har C ett väldigt litet standardbibliotek. Detta taget tillsammans gör att det inte är speciellt svårt att lära sig hela ANSI-C.

Klasser, eller OOP, är ju bara ett sätt att organisera sitt data och strukturera sitt program. OOP kom efter C, så inte så konstigt att klasser inte fanns från start. Det är full möjligt använda sig av OOP i C, fullt lika smidigt som C++, Java eller C# men inte speciellt svårt heller. Sedan används C allt oftare för att programmera parallella system (det mesta i C11 är just för detta), OOP och parallellprogrammering är två riktigt usla kombinationer (parallellprogrammering kräver i princip att man har direkt explicit access till data).

C++ har jämfört med t.ex. Java/.NET ett rätt litet standardbibliotek men C++ är ett rätt komplicerat språk sett till hur många språkfinesser det har. Det har en del stora nackdelar, vissa säger att det inte är ett problem för man behöver ju inte använda allt. Sanning för C++ är nog att ytterst få faktiskt känner till alla språkliga finesser och det i sig är ett jätteproblem för det betyder att man kan få problem att läsa det andra skrivet då de kanske inte lärt sig samma delmängd som dig!

Rätt säker att både Java och C är så populära just p.g.a. att de är relativt enkla språk, något som gör det lättare att jobba med dem i projekt med många inblandade. Däremot ser man rätt ofta att folk "bashar" Java för det saknar finess X, Y & Z som minsann finns i massor av andra språk, de missar då att språk som har massor med finesser resulterar i att olika personer endast kan och därmed använder delmängder av språken som blir ett problem när olika utvecklares delmängder inte överlappar...

Du kan mycket du

Är parallellprogrammering att man har typ olika TASK som körs vid olika tidpunkter eller vid olika kommandon? Typ om _1TASK = 1, s ska den köras? Tänk typ en whileloop med if-satser i.

Jag valde C för dels för att den är liten och enkel, men dels för att jag programmerar reglerteknik med den. Både Arduino och Simulink använder sig av C. Men Simulink så kan man omvandla reglerteknik(matematik) till C-kod. Och den C-koden är en mycket hög klass på.

Jag ska också lära mig MATLAB. Detta har med mitt jobb att göra. Är maskiningenjör som satsar på en magister inom reglerteknik.

Java låter också häftigt, men Java känns mer relevant för mig om jag är mjukvaruutvecklare. Nu är jag inte det.

Om du har tid och lust så får du gärna visa mig ett enkelt exempel på klassisk OOP när man använder C.
Jag har läst en PDF om just OOP med ANSI-C men det såg så rörigt ut. PDF:en var från 1993 också. Jag tycker C11 är det absolut renaste C någonsin. C99 tyckte jag var hemsk. När man hade (void) som argument i main() funktionen. Samt arvg[] eller vad det kallas.

Permalänk
Datavetare

Parallellprogrammering är multitrådad programmering där du kör på flera CPU-kärnor och det är ett självändamål att använda CPU-kärnorna så effektivt som möjligt.

Finns flera sätt att göra beroende på vad målet är, här ett en rätt simpel variant

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #define DOG_CAP 100 #define METHOD_CALL(obj, method) obj->ops->method(obj) struct dog; struct dog_ops { const char * (*breed_get)(struct dog *); const char * (*name_get)(struct dog *); }; typedef struct dog { struct dog_ops * ops; char * name; } dog_t; dog_t *dog_new(struct dog_ops * ops, const char * name) { dog_t * d = calloc(1, sizeof *d); d->ops = ops; d->name = strdup(name); return d; } const char * dog_name_get(dog_t * dog) { return dog->name; } const char *gs_breed_get() { return "giant schnauzer"; } struct dog_ops giant_schnauzer_ops = { gs_breed_get, dog_name_get }; dog_t *giant_schnauzer_new(const char * name) { return dog_new(&giant_schnauzer_ops, name); } const char *ms_breed_get() { return "miniature schnauzer"; } struct dog_ops miniature_schnauzer_ops = { ms_breed_get, dog_name_get }; dog_t *miniature_schnauzer_new(const char * name) { return dog_new(&miniature_schnauzer_ops, name); } void print_all_dogs(dog_t *dogs[], int cnt) { int c; for (c = 0; c < cnt; c++) { dog_t * dog = dogs[c]; printf("Breed: %-20s Name: %s\n", METHOD_CALL(dog, breed_get), METHOD_CALL(dog, name_get)); } } int main(int argc, char *argv[]) { dog_t *dogs[DOG_CAP]; int opt; int cnt = 0; while (0 < (opt = getopt(argc, argv, "g:m:"))) { switch (opt) { case 'g': dogs[cnt++] = giant_schnauzer_new(optarg); break; case 'm': dogs[cnt++] = miniature_schnauzer_new(optarg); break; } } print_all_dogs(dogs, cnt); return EXIT_SUCCESS; }

Dold text
Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk

Häftigt! Så det är därför färdiga klasser inte är så bra kombinerat i C då?

Så du använde bara structs och pekare och funktioner för att skapa en klass ?

Permalänk
Medlem

Om man nu vill programmera objektorienterat, varför skulle man då välja C istället för C++?
Känns som en nackdel att inte kunna använda inbyggda stödet man får i C++ i sådan fall.
Men tycker ändå att det absolut är värt att lära sig C, men då inte med avsikt att köra objektorienterat.

Permalänk
Inaktiv
Skrivet av heretic16:

Jag tar examen snart En månad kvar.
Faktiskt så tycker jag att universitet är slappare än gymnasiet.

Det beror väl på vad man är van vid och vilket tempo som resten av dina kurser håller.

I praktiken kan 7,5hp vara hur enkelt eller svårt som helst har jag märkt. Vissa av mina kurser på 9hp motsvarar mer pluggtid än vad jag lade på en hel termin på gymnasiet, känns det som. Var dock ett tag sedan så kan inte lova att det stämmer.

Skickades från m.sweclockers.com

Permalänk

Jag läste C i början av min utbildning på Uppsala Universitet och fick stor nytta av det trots att jag inte skriver mycket C kod för hand precis som jag kan assembler men inte skriver i assembler. Högre språk kan optimeras lättare och reducerar risker men utan förståelse för hur datorer fungerar så blir den högre koden långsam. C använder jag bara som portabel assembler till mitt eget programmerings språk som har minnesskydd och sophantering. Att använda klasser i C++ känns bakåtvänt då abstraktion utan minnes skydd bara gör det svårare att förstå varför sakerna kraschar hela tiden.

Permalänk
Skrivet av ronnylov:

Om man nu vill programmera objektorienterat, varför skulle man då välja C istället för C++?
Känns som en nackdel att inte kunna använda inbyggda stödet man får i C++ i sådan fall.
Men tycker ändå att det absolut är värt att lära sig C, men då inte med avsikt att köra objektorienterat.

För C++ känns rörigt och C känns mer rent och det finns språk som är bättre än C++ inom alla hörn och kanter.
Som jag vet så skapade Bjarne Storstrup C++ som för till för att skapa program(inte "appar" som töntar säger) så som CAD, grafik, spel med mera. Till skillnad från C som skapades för just att styra hårdvara.

Men i dagens läge känns det mer värt att utveckla spel och stora program i .NET eller Java. Så Java och .NET har enligt mig mer fördelar att lära sig än just C++

Permalänk
Inaktiv

Angående kursen en helt vanlig standardkurs som matte A, engelska A etc. Det finns inte att säga så mycket om denna, de som har läst på just denna skola med den lärare du kommer få kan säga något om hur bra standardkursen är jämtemot andra skolor.

Får man fråga vad du läser eftersom du har läste reglerteknik/matematik och använt simylink utan att ens ha läst C innan? Läste ni annat språk som java eller?

Permalänk
Skrivet av anon159643:

Angående kursen en helt vanlig standardkurs som matte A, engelska A etc. Det finns inte att säga så mycket om denna, de som har läst på just denna skola med den lärare du kommer få kan säga något om hur bra standardkursen är jämtemot andra skolor.

Får man fråga vad du läser eftersom du har läste reglerteknik/matematik utan att ens ha läst C innan? Läste ni annat språk som java eller?

Jag läser maskinteknik högskole och satsar på en magister inom maskinteknik med spetsen reglerteknik
Jag skulle gärna vilja ta en master inom maskin, men det finns inte. Bara civil. Därför blir det en magister som spetskompetens.

Permalänk
Inaktiv
Skrivet av heretic16:

Jag läser maskinteknik högskole och satsar på en magister inom maskinteknik med spetsen reglerteknik

Ok, ja då är C ett bra val. På min skola läste de flesta maskiningenjörer C i sin ordinarieutbildning.

Angående reglerteknik så tänker jag på riktig avancerad matematik tillsammans med avancerad algoritmprogrammering men det finns nog olika områden. -Riktig avancerad jämfört emot vad jag kan, många arbetskamrater kommer dock från en motsvarande utbildning på chalmers (Z-programmet).

Permalänk
Skrivet av anon159643:

Ok, ja då är C ett bra val. På min skola läste de flesta maskiningenjörer C i sin ordinarieutbildning.

Angående reglerteknik så tänker jag på riktig avancerad matematik tillsammans med avancerad algoritmprogrammering men det finns nog olika områden. -Riktig avancerad jämfört emot vad jag kan, många arbetskamrater kommer dock från en motsvarande utbildning på chalmers (Z-programmet).

Jo, C är vanligt på maskin när det kommer till civilnivån. Högskolenivån är mer praktisk och mindre bred. Civilnivån är inte heller spetsig som en magister och master är.

Jag menar reglerteknik som täcker områderna som klassiska reglertekniskboken "Modern Reglerteknik" av Bertil Thomas har skrivit. Det är en bok som tillämpar reglerteknik, både digital och analog, med hjälp av linjär algebra och envariabelanalys.

Umeå Universitet har robotik och reglerteknikprogrammet, men då är jag inne på nytt spår, dvs mer mot dator & elektronik.