Programmering

Det er altid meget svært, at give gode retningslinjer for, hvilke sider på nettet, der er gode. Det kan fx være at de ikke længere bliver opdateret eller indeholder forældet kode.

Med ovenstående i betragtning vil jeg derfor ikke linke til særligt mange websteder. De sider, jeg linker til er nøje udvalgt, og nogle jeg kan stå inde for.

Foruden links til websider, ønsker jeg også at angive nogle gode titler på bøger, som jeg har læst. En god bog er i min optik den bedste start på, at lære programmering. Næst efter en kurateret undervisning. Og ikke mindst så er det når man selv har fingrene nede i maskineriet, at ens udvikling for alvor sættes i gang. Selvfølgelig!

Editors

Python IDLE

https://python.org

Siden hvor du kan downloade Python IDLE.

iPython

https://ipython.org/

iPython er på mange måder lidt bedre at arbejde i end Python shell.

Anaconda

https://anaconda.org/

Anaconda bruger vi en del på fortsætter-holdene. Det er en super god platform, som indeholder masser af gode editors og relevante moduler. Bl.a. indeholder den Spyder, som er lidt af et monster ift. videnskabelig programmering. Den indeholder rigtig mange moduler, så den er lige til at gå til.

Jupyter

https://jupyter.org/

Vi benytter editoren på nogle af de øvede hold. Særligt inden for matematiske og analytiske discipliner samt inden for kunstig intelligens.

Geany

https://www.geany.org/

Letvægts editor, som slet ikke har nær så mange moduler som Spyder(Anaconda).

Bøger

Python For Kids

No Starch Press. ISBN-13: 978-1-59327-407-8

Python for Kids er en rigtig god begynder-bog. Den indeholder mange gode eksempler og tager dig fra begynder til at kunne forstå funktioner. Uanset om man læser på uni, gymnasiet, eller er på et af mine hold, vil jeg til enhver tid anbefale dette mesterværk af en Python bog!

Python Crash Course

No Starch Press. ISBN-13: 9781593279288

Har man læst Python for Kids, så er denne bog fin at fortsætte med. Dels fordi den er skrevet på samme forlag som Python for Kids, hvorfor den følger samme redaktionelle linje som Python for Kids. Dvs at sproget ikke er så akademisk og tørt, som man andre programmeringsbøger kan være.

Bogen dykker dybere ned i Python, og kapitlerne er længere. Jeg ved at den også bruges på Københavns Universitet, som introduktionsbog.

Computing With Python – an introduction to Python for science and engineering

Pearson Education Ltd. ISBN:-978-0-273-78643-6

Bogen er blevet brugt som indføring i scientific computing på bl.a. Lunds universitet i faget “Beräkningsprogrammering”. Den er også blevet brugt på universiteterne i Trondheim og Stavanger.

Man skal ikke begynde med bogen, men den er i min optik den bedste bog, hvis man ønsker indføring i videnskabelige principper. Der er mange gode eksempler på matematiske løsninger.

Bemærk at bogen ikke er blevet opdateret siden 2014. Koderne er derfor skrevet i Python 2 og ikke Python 3. Jeg har netop genlæst bogen i februar 2020, og der er så små forskelle, at jeg stadig vil sige, at det er en virkelig god bog.

Resourcer

How to Think like a Computer Scientist

http://www.openbookproject.net/thinkcs/python/english3e/

En lidt gammel Python bog, som jeg husker som ret god. Koderne er skrevet til Python 2, men fungere fint til Python 3.

QuantEcon Lectures

https://quantecon.org/lectures/

Det er lidt atypisk, at anbefale en bog om programmering til finansielt brug. Men det er en rigtig god resource, da den indeholder meger brugbar information, som kan benyttes til alle slags projekter.

Geeks for Geeks

https://www.geeksforgeeks.org/

Meget omfattende webside med en række artikler og ressourcer inden for programmering.

Matematik for spiludviklere

Javidx aka The one lone coder, har lavet en god video om den vigtigste matematik, vi skal kunne inden for spiludvikling.

NASA/JPL – The power of 10 rules

https://en.wikipedia.org/wiki/The_Power_of_10:_Rules_for_Developing_Safety-Critical_Code

Man starter ofte et projekt med at skrive en guideline. Den indeholder blandt andet regler for projektet og hvilke programmeringssprog man skal benytte etc. Der er masser af tykke bøger om netop dette emne, men ingen er lige så præcise som Gerard J. Holzmann’s 10 regler.

Free Code Camp – learn to code at home

https://www.freecodecamp.org/learn/

Stor og omfattende site, der tager udgangspunkt i begynderen, som ønsker at lære kurateret programmering. Er man til undervisning på en skærm, så er her et rigtig godt og frit produkt.

Math for Programmers

https://akuli.github.io/math-tutorial/

En webside med en masse forskellige ressourcer om matematik. Den er meget praktisk anlagt, men der findes også rigtig mange ret svære formler. Nogle af formlerne er omsat og skrevet i Python.

Computer Science Algortihms

https://www.khanacademy.org/computing/computer-science/algorithms

Super fedt undervisningsprojekt om de mest velkendte algoritmer.

Free Programming Books

https://github.com/EbookFoundation/free-programming-books/blob/master/free-programming-books.md#python

Wow!! Her er en masse bøger, at gå på opdagelse i. Siden tæller ikke kun Python, men også sprog som C++, C#, Java, JavaScrip osv. Mit råd er dog altid, at man aldrig skal gå i gang med mere end et programmeringssprog, og holde sig til det i mindst et par år før man prøver noget nyt. I bund og grund er alle programmeringssprog stort set ens med nogle variationer.

GitHub

https://github.com/

Super god side, hvor du kan se koder. Du kan måske også selv registrere dig derinde. Jeg kender ikke aldersgrænsen.

ImageNet

http://image-net.org/index

Database med billeder, som kan bruger til forskning. Dvs. at vi også sagtens kan bruge dem til vores projekter.

Pygments

https://pygments.org/

Siden highligther dine koder. Det er denne side, jeg benytter, når jeg lægger koder op på pythons.io.

AI

KU Science AI

https://ai.ku.dk/

Nok mest hvis man har stor interesse for kunstig intelligens, er Københavns Universitets Science website god. Her er spændende artikler, som er spændende. Og ikke mindst afholder de af og til spændende, gratis workshops om AI.

How to Build a Neural Network

https://stevenmiller888.github.io/mind-how-to-build-a-neural-network/

Steven Miller har lavet en super god og illustrativ side om, hvordan man bygger neurale netværk, som er principper vi har kigget lidt på, på fortsætterholdet.

Stanfords Deep Learning Tutorial

http://ufldl.stanford.edu/tutorial/

En virkelig spændende, og meget matematisk, side om deep learning.

CogniMates

http://cognimates.me/home/

Fin lille side, der introducere os til kunstig intelligens.

Machine Learning for Kids

https://machinelearningforkids.co.uk/

Ligeså fin side som CogniMates.

Data

Da data er en væsentlig del af data science og kunstig intelligens, er det nødvendigt at fodrer vores projekter med data. Disse er i min verden, de bedste og gratis ressourcer. Kaggle må siges at være den portal, som indeholder den største andel af tilgængelig data. Dog skal man altid lave lidt research på sine data inden man for alvor kan tage dem troværdigt.

Kaggle

https://www.kaggle.com/

Find dataset til dine projekter.

Papers With Code: The latest in machine learning

https://paperswithcode.com/

En rigtig guldgruppe med data og research papirer.

COCO – Common Objects in Context

https://paperswithcode.com/

Her er masser af gode data til computervisions-modeller.

IMF Data

https://www.imf.org/en/Data

International data over en række livsvilkår, som IMF har invisteret i. Data er gratis.

Data Portals

https://dataportals.org/

Åben data over landes befolkninger.

Open Data Monitor

https://opendatamonitor.eu/frontend/web/index.php?r=dashboard%2Findex

Åben data over EU projekter. Danmark er det desværre ikke godt repræsenteret herinde, idet vi er ret lukkede omkring data.

Quandl

https://www.quandl.com/

Finansielle data.

Andet

CodeShrew

https://shrew.app/

Kan du lide Turtle Grafik, er Code Shrew et fint supplement til din undervisning.

Code.org

https://code.org/

Selvom det er ved at være længe siden, at jeg selv har brugt code.org, er det en god side, som opdateres.

Project Euler

https://projecteuler.net/

Udfordre dig selv med nogle meget hårde programmeringsøvelser. Det er en fordel at kende til algoritmer.

Advent of Code

https://adventofcode.com

Advent of Code er helt klart en sjov og udfordrende konkurrence for programmører. Eksmplerne kan tilgås på alle tider af året.

Måske kan du slå min rekord for 2019? Et godt råd: start med kalenderen for 2015 og øv dig på algoritmer.

Esolang

https://esolangs.org/wiki/Main_Page

Esolang er en virkelig sjov side, hvor du kan gå på opdagelse i alle mulige forskellige programmeringssprog. Mange af sprogene er aldrig blevet brugt og er virkelig mærkelige, spændende, fascinerende og interessante på hver deres måde.