Programmering som inkluderar avancerad matematik och logik (Gymnasiearbete)

Permalänk

Programmering som inkluderar avancerad matematik och logik (Gymnasiearbete)

Hej!

Jag funderar på att göra ett projektarbete med en kompis som går ut på att vi ska programmera något. Vi är båda helt nybörjare när det gäller programmering. Ett krav från skolan är dock att det innehåller avancerad logik och matematik i koderna.

Mina frågor till er är:

Vilka program behövs för att programmera? (kostnad?)

Vad snackar vi för typ av program som inkluderar avancerad logik eller matematik? (Behöver såklart inte vara hela programmet utan kan vara små fragment här och där.)

Är det över huvud taget möjligt för två nybörjare att under 200 h göra ett program som innehåller ovanstående?

Är tacksam även om ni bara kan svara på en av frågorna ovan.

Permalänk
Medlem

Vad ni behöver för program för att programmera beror lite på vad ni väljer för spår. Egentligen klarar ni er med Notepad och en kompilator, fast det är kanske inte så roligt Mitt tips är att skaffa en IDE för ett språk ni väljer. I IDEn är det sedan lättare att komma igång och en trevlig arbetsplats helt enkelt.
Så välj ett språk, mitt råd är att köra på antingen .NET eller Java.

IDE för .NET är Visual Studio. Denna kostar baserat på featureset men finns som en gratis version (Express) baserat på vilken typ av projekt man vill göra. (Windows Phone, Windows, Windows 8 etc). Finns att ladda ned här;
http://www.microsoft.com/visualstudio/eng/downloads#d-2012-ex...

För Java är det antingen Eclipse eller NetBeans som gäller. Eclipse om ni vänder er mot Android. NetBeans om ni vänder er mot applikationer då den har ett mycket bättre grafiskt läge för att bygga gränssnitt i. Men det är en smaksak. Båda kan även användas för andra språk än Java, som t.ex. PHP.
http://eclipse.org/
https://netbeans.org/

Är det görbart? Ja. Har ni koll på matten så är det ganska så lätt att omsätta i programmering. Finns jättebra inbyggda matte-bibliotek, men som sagt, då skall ni veta matten

Sen vad avancerad logik eller matte är, ja, hur långt är ett snöre? Känns som om er handledare får ge er några pointers på vilken nivå ni skall lägga er.

Permalänk
Medlem

Vet inte om det är världens mest spännande projektarbete, men något ni skulle lära er -förbannat- mycket på hade varit att sätta upp som mål att klara av att programmera svar på t.ex de 50 första frågorna på http://projecteuler.net/
(samt erkänna de fall där man inte lyckades komma på en lösning.)

Och i projektet gå igenom lösningarna och förklara hur man tänkt. För en programmeringsintresserad finns här underlag för sjuka mängder diskussion.

Visa signatur

Speldator :[I] AMD 5600X - 16GB fläskigt ram - AMD 580RX - AOC 32" Wide
HTPC : i5 3450S - 8GB G.Skill - Streacom F8

Permalänk
Medlem

Avancerad logik och matematik på gymnasiet? Vad är det för lallar lärare du har.

Permalänk
Medlem

Man kan ju koda en 3d motor, inkluderar logik och matematik. Kan ju rendera en 3d scen som resultat.

Visa signatur

Dator: (Kommer senare)

Permalänk
Medlem
Skrivet av FerbieHerp:

Hej!

Jag funderar på att göra ett projektarbete med en kompis som går ut på att vi ska programmera något. Vi är båda helt nybörjare när det gäller programmering. Ett krav från skolan är dock att det innehåller avancerad logik och matematik i koderna.

Man brukar säga "koden", inte "koderna". Ex: Här är koden jag skrev.

Skrivet av FerbieHerp:

Mina frågor till er är:

Vilka program behövs för att programmera? (kostnad?)

En texteditor och en kompilator. Det kostar inget.

Skrivet av FerbieHerp:

Vad snackar vi för typ av program som inkluderar avancerad logik eller matematik? (Behöver såklart inte vara hela programmet utan kan vara små fragment här och där.)

Skolan borde förklara de menar med "avancerad logik eller matematik".

Skrivet av FerbieHerp:

Är det över huvud taget möjligt för två nybörjare att under 200 h göra ett program som innehåller ovanstående?

I vanliga fall så behöver man inte lära sig nått helt nytt, d.v.s. som er programmering, när man gör ett projektarbete. Tänk också på att ni ska planera, skriva rapport, o.s.v., så det blir inte 200 h att jobba. Därför skulle jag säga att det är lite på gränsen. Men om ni spenderar lite mer än 200 h för att ni tycker det är kul så går det nog. Jag skulle säga att det krävs minst ca 50 h för att lära sig programmera på den nivå ni behöver, beroende på hur lätt ni har för att lära er det. Men då bör ni ta ett relativt enkelt språk, som Python.

Jag hade några förslag till gymnasieelever förut:
* Implementera en delmängd av Scheme (om ni använder ett annat språk själva), för att lära er om kompilatorer.
* Skriv en AI för schack eller nått annat spel (kanske 4-i-rad).
* Gör en raytracer (kolla google).
* Gör en konkordans. (Man har massa böcker, 100+ (går att ladda ner) som man gör ett index över, så att när man söker på ett ord så ser man alla förekomster av ordet i meningarna där de förekommer, ögonblickligen.)

Jag hade några fler förslag jag inte kommer ihåg nu. Dessa innhåller kanske inte ren matematik eller logik, men datalogi! De kanske är lite för ambitiösa, inte vet jag.

Permalänk
Medlem

Jag skulle föreslå att implementera en enkel klustringsalgoritm som k-means.
Den är enkel att förklara och innehåller, relativt till somlig gymnasieskolor, avancerad matematik samt en del logik.

Algoritmen kan sedan användas till att t.ex. segmentera en bild utifrån dess färger vill man ta det vidare så kan man använda algoritmen till att kvantisera färgpaletten i en bild (en form av komprimering).

Se t.ex. http://en.wikipedia.org/wiki/K-means_clustering

Det fascinerande är att endast detta krävs (P: programmering, M: matematik):
P: Loopa och räkna med arrayer/vektorer/listor i programmeringsspråket
P: For/While loop
M: Räkna ut avståndet mellan två punkter (på en linje, i ett plan, i rummet, generellt för godtyckligt n-dimensionellt rum) vanliga euklidiska avståndet duger.
M: Räkna ut mass-centrum (summa och division)

I t.ex. Python räcker det nog med ca 15 rader kod för en enkel implementation sedan blir det lite mer kod om man vill tillämpa algoritmen till något

Lycka till.

Visa signatur

weeeee

Permalänk

Uppskattar verkligen allas bidrag till min tråd! Får snacka lite med min projektkollega och om han har några synpunkter och återkommer sedan med ev. fler frågor?

Återigen tack så mycket!

Permalänk

Skriv ett program som kan faktorisera eller derivera polynom.
Eller något program som flyttar/roterar ett objekt enligt någon trigonometrisk formel.

Permalänk
Medlem

Om det är något som ska innefatta programmering, logik och matematik så skulle iallafall jag tycka att det naturliga vore just att skriva något datorprogram som löser någon typ av matematiska uppgifter. Då krävs det att ni har koll på just de områden du beskrev.

Vad "avancerad matematik" är, är ju lite relativt dock. Jämfört med grundskolan är gymnasiematten avancerad, men talar man matematik i allmänhet är knappast någon matematik man lär sig på universiteten på utbildningsprogrammen där att betrakta som speciellt avancerat. Jag associerar iallafall "avancerad matematik" till som något som ligger mycket nära forskningsfronten.

Men hursomhelst, även något som till ytan kan verka enkelt kan bli oerhört komplicerat i en seriös tillämpning där prestanda och noggrannhet är väldigt viktigt. Ta bara en sådan sak som Netwon-Raphsons metod. Matematiskt kan den beskrivas med en rad och den enklaste implementationen är inte mycket längre än så heller.
Ska man dock göra en så snabb och stabil version som möjligt så är det inte ovanligt att programmet blir många tusen rader långt.

Visa signatur

Namn : Jesper | Ålder : 45 | In-game namn : iller
Yrke : Matematisk modellerare (finansiell matematik), mjukvaruutvecklare för risksystem.
Utbildning : Doktor i matematik + en del mat-stat, numme och IT-relaterat.

Permalänk
Medlem

Microsoft Visual Studio Express är helt kostnadsfri och tänkt precis för personer som du. Med Visual Studio programmerar man med fördel i C++ eller C#, varvid jag rekomenderar det sistnämnda.

Permalänk
Medlem

Skriv några rekursiva matteformler, typ fibonacci! Då får ni inte lite logiskt programmering och mattematik!

Visa signatur

~. Citera så jag hittar tillbaka .~

Permalänk
Medlem
Skrivet av Ernesto:

Microsoft Visual Studio Express är helt kostnadsfri och tänkt precis för personer som du. Med Visual Studio programmerar man med fördel i C++ eller C#, varvid jag rekomenderar det sistnämnda.

Om man bara får välja på C++ och C# så skulle jag också välja C#. Men det är tur att det finns fler språk att välja på. Dessutom tycker jag det verkar väldigt baklänges att välja editor först, och sedan språk.

Permalänk
Avstängd

Det finns raytracers som är på typ 100 rader. Googla lite. Ni kanske kan göra nåt med en sån?

Permalänk
Avstängd

Bevisa att 0.999... = 1.

Visa signatur

Gigabyte GA-MA790FX-DQ6 | AMD Phenom 9950 @ 2,6 Ghz | Sapphire Radeon HD 4850 512MB GDDR3 | Samsung 400 GB | Corsair Dominator TWIN2X8500C5DF 4096MB | Tagan 400W

Permalänk
Medlem

Har absolut ingen erfarenhet av detta, men skulle det kanske vara värt att göra ett schackspel?

Visa signatur

Dator: ASUS Prime 470x PRO - AMD 5800X3D - MSI RTX 2070 ARMOR OC - EVGA SuperNova G3 650W - Fractal Design Define R5 - Noctua NH-D15 - ASUS Xonar DGX. Kringutrustning: Corsair M65 Pro - Qpad MK-90 - Sennheiser 350 SE. ASUS MG279Q.

Permalänk
Medlem
Skrivet av MoNkeY-05:

Vet inte om det är världens mest spännande projektarbete, men något ni skulle lära er -förbannat- mycket på hade varit att sätta upp som mål att klara av att programmera svar på t.ex de 50 första frågorna på http://projecteuler.net/
(samt erkänna de fall där man inte lyckades komma på en lösning.)

Och i projektet gå igenom lösningarna och förklara hur man tänkt. För en programmeringsintresserad finns här underlag för sjuka mängder diskussion.

Jag jobbade med Project Euler på mitt projektarbete i gymnasiet, väldigt lärorikt och riktigt kul dessutom i min åsikt!

Permalänk
Medlem

Jag skulle också rösta för något kring project euler. Rätt svårighetsgrad, passar perfekt in på era krav och project euler är VÄLDIGT nyttigt för en nybörjare.

Visa signatur

CPU: 2600K+H100 kylning, GPU: GTX470, RAM: 8GB DDR3, HDD: Force3 128GB, Mobo: Asrock P67,
Chassi: Antec P280, Skärmar: Acer 245HQ + Nån billig 60Hz 24".

Citera mig för garanterat svar.

Permalänk
Medlem
Skrivet av Jink:

Har absolut ingen erfarenhet av detta, men skulle det kanske vara värt att göra ett schackspel?

Med tanke på grabbarnas ålder och nivå är nog "fyra i rad" mer lämpat.

Permalänk
Medlem

Boken "Structure and Interpretation of Computer Programs" kanske kunde vara av intresse. MIT har lagt ut den gratis på internet nuförtiden. http://mitpress.mit.edu/sicp/full-text/book/book.html Den var tänkt som introduktionskurs för datavetare från början så kunskapskraven borde vara hanterbara för någons som snart gått ut gymmnasiet. Den hanterar många begrepp som borde vara passande. Är det okej att arbeta med project Euler kanske några kapitel i sicp också skulle vara okej. Det är dock inte en bok som man snabbt kör igenom på samma sätt som de flesta introduktionskurser i x prog. språk. (Det har den inte varit för mig ivart fall även om jag roar med den på kvällarna ibland)

Permalänk
Medlem
Skrivet av Crippa90:

Bevisa att 0.999... = 1.

Det skulle vara ett helt projektarbete? Och vad har det med programmering att göra?

Permalänk
Avstängd

Python med SciPy och NumPy.

Permalänk
Skrivet av Ernesto:

Microsoft Visual Studio Express är helt kostnadsfri och tänkt precis för personer som du. Med Visual Studio programmerar man med fördel i C++ eller C#, varvid jag rekomenderar det sistnämnda.

Skrivet av tufflax:

Om man bara får välja på C++ och C# så skulle jag också välja C#. Men det är tur att det finns fler språk att välja på. Dessutom tycker jag det verkar väldigt baklänges att välja editor först, och sedan språk.

Okej, vi har bestämt oss för att göra småprogram i Visual Studio Express 2012 för att lösa några av Euler's uppgifter men vi behöver ju lära oss C# innan vi kan göra det.

Hur lärde ni er C#? Har ni tips på några sidor på nätet som är enkla att förstå om man är nybörjare som vi? Alla tips välkomnas!